121 lines
3.7 KiB
YAML
121 lines
3.7 KiB
YAML
|
name: Builds
|
||
|
|
||
|
on: push
|
||
|
|
||
|
env:
|
||
|
LIBNAME: example
|
||
|
|
||
|
concurrency:
|
||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
|
||
|
cancel-in-progress: true
|
||
|
|
||
|
jobs:
|
||
|
build:
|
||
|
runs-on: ${{matrix.os}}
|
||
|
name: ${{matrix.name}}
|
||
|
strategy:
|
||
|
fail-fast: false
|
||
|
matrix:
|
||
|
include:
|
||
|
- identifier: windows-debug
|
||
|
os: windows-latest
|
||
|
name: 🏁 Windows Debug
|
||
|
target: template_debug
|
||
|
platform: windows
|
||
|
arch: x86_64
|
||
|
- identifier: windows-release
|
||
|
os: windows-latest
|
||
|
name: 🏁 Windows Release
|
||
|
target: template_release
|
||
|
platform: windows
|
||
|
arch: x86_64
|
||
|
- identifier: macos-debug
|
||
|
os: macos-latest
|
||
|
name: 🍎 macOS (universal) Debug
|
||
|
target: template_debug
|
||
|
platform: macos
|
||
|
arch: universal
|
||
|
- identifier: macos-release
|
||
|
os: macos-latest
|
||
|
name: 🍎 macOS (universal) Release
|
||
|
target: template_release
|
||
|
platform: macos
|
||
|
arch: universal
|
||
|
- identifier: linux-debug
|
||
|
os: ubuntu-latest
|
||
|
name: 🐧 Linux Debug
|
||
|
runner: ubuntu-20.04
|
||
|
target: template_debug
|
||
|
platform: linux
|
||
|
arch: x86_64
|
||
|
- identifier: linux-release
|
||
|
os: ubuntu-latest
|
||
|
name: 🐧 Linux Release
|
||
|
runner: ubuntu-20.04
|
||
|
target: template_release
|
||
|
platform: linux
|
||
|
arch: x86_64
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout project
|
||
|
uses: actions/checkout@v3
|
||
|
with:
|
||
|
submodules: recursive
|
||
|
|
||
|
- name: Set up Python
|
||
|
uses: actions/setup-python@v4
|
||
|
with:
|
||
|
python-version: '3.x'
|
||
|
|
||
|
- name: Set up SCons
|
||
|
shell: bash
|
||
|
run: |
|
||
|
python -c "import sys; print(sys.version)"
|
||
|
python -m pip install scons
|
||
|
scons --version
|
||
|
- name: Linux dependencies
|
||
|
if: ${{ matrix.platform == 'linux' }}
|
||
|
run: |
|
||
|
sudo apt-get update -qq
|
||
|
sudo apt-get install -qqq build-essential pkg-config
|
||
|
- name: Setup MinGW for Windows/MinGW build
|
||
|
if: ${{ matrix.platform == 'windows' }}
|
||
|
uses: egor-tensin/setup-mingw@v2
|
||
|
|
||
|
- name: Compile godot-cpp
|
||
|
shell: sh
|
||
|
run: |
|
||
|
scons target='${{ matrix.target }}' platform='${{ matrix.platform }}' arch='${{ matrix.arch }}'
|
||
|
working-directory: godot-cpp
|
||
|
|
||
|
- name: Compile Extension
|
||
|
shell: sh
|
||
|
run: |
|
||
|
scons target='${{ matrix.target }}' platform='${{ matrix.platform }}' arch='${{ matrix.arch }}'
|
||
|
- name: Delete compilation files
|
||
|
if: ${{ matrix.platform == 'windows' }}
|
||
|
run: |
|
||
|
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
|
||
|
- name: Upload artifact
|
||
|
uses: actions/upload-artifact@v3
|
||
|
with:
|
||
|
name: ${{ github.event.repository.name }}
|
||
|
path: |
|
||
|
${{ github.workspace }}/bin/*
|
||
|
- name: Archive Release
|
||
|
uses: thedoctor0/zip-release@0.7.1
|
||
|
with:
|
||
|
type: 'zip'
|
||
|
filename: '${{ env.LIBNAME }}.${{ matrix.platform }}.${{ matrix.arch }}.zip'
|
||
|
path: '${{ github.workspace }}/bin/'
|
||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
||
|
|
||
|
- name: Create and upload asset
|
||
|
if: success() && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
||
|
uses: ncipollo/release-action@v1
|
||
|
with:
|
||
|
allowUpdates: true
|
||
|
artifacts: "${{ env.LIBNAME }}.${{ matrix.platform }}.${{ matrix.arch }}.zip"
|
||
|
omitNameDuringUpdate: true
|
||
|
omitBodyDuringUpdate: true
|
||
|
token: ${{ secrets.GITHUB_TOKEN }}
|