on: push: branches: - 'itch-edition' tags: - "v*.*.*" pull_request: branches: - itch-edition jobs: release: env: MACOSX_DEPLOYMENT_TARGET: 10.15 BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} PROD_MACOS_CERTIFICATE: '${{ secrets.PROD_MACOS_CERTIFICATE }}' PROD_MACOS_CERTIFICATE_PWD: '${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}' PROD_MACOS_CERTIFICATE_NAME: '${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}' PROD_MACOS_CI_KEYCHAIN_PWD: '${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}' PROD_MACOS_NOTARIZATION_APPLE_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}' PROD_MACOS_NOTARIZATION_TEAM_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}' PROD_MACOS_NOTARIZATION_PWD: '${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}' VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" DEBUG_FLAG: ${{ matrix.configuration == 'Debug' && 'true' || 'false' }} BUILD_OS: ${{ matrix.os.name }} strategy: fail-fast: false matrix: os: - name: macos deps: macos-universal version: 14 scons-script: './.github/workflows/scripts/mac/scons-build.sh' - name: ubuntu version: 22.04 scons-script: scons - name: windows version: 2019 scons-script: './.github/workflows/scripts/win/scons-build.bat' configuration: - Release - Debug runs-on: '${{ matrix.os.name }}-${{ matrix.os.version }}' steps: - name: checkout uses: actions/checkout@v4 with: submodules: true - name: Download dependency build uses: robinraju/release-downloader@v1 with: repository: NQNStudios/cboe-dependencies latest: true fileName: 'dependencies-${{ matrix.os.deps || matrix.os.name }}-${{ matrix.configuration }}.tar' extract: true out-file-path: 'deps' - name: Windows build dependencies run: 'vcpkg install libxml2 && pip install scons' if: ${{ matrix.os.name == 'windows' }} - name: Mac build dependencies run: brew install scons if: ${{ matrix.os.name == 'macos' }} - name: Linux build dependencies run: sudo apt-get update && sudo apt-get install scons libxml2-utils if: ${{ matrix.os.name == 'ubuntu' }} - name: Install TGUI run: 'sudo ./.github/workflows/scripts/linux/install-tgui.sh' if: ${{ matrix.os.name == 'ubuntu' }} - name: Build run: '${{ matrix.os.scons-script }} test=false debug=$DEBUG_FLAG' shell: bash - name: Download fix-rpaths.py script run: git clone https://gist.github.com/NQNStudios/7145bcf6621891f5176c8caa165d6b93 - name: Fix rpaths game run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/Blades of Exile.app"' - name: Fix rpaths scenario editor run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/BoE Scenario Editor.app"' - name: Fix rpaths character editor run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/BoE Character Editor.app"' - name: 'Tar unsigned files' run: 'tar -cvf cboe-${{ matrix.os.name }}-${{ matrix.configuration }}-unsigned.tar "Blades of Exile"' working-directory: '${{ github.workspace }}/build' - name: upload pre-signing artifact uses: actions/upload-artifact@v4 with: name: cboe-${{ matrix.os.name }}-${{ matrix.configuration }}-unsigned path: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}-${{ matrix.configuration }}-unsigned.tar' - name: Codesign and notarize run: './.github/workflows/scripts/mac/sign-apps.sh' if: ${{ matrix.os.name == 'macos' }} - name: 'Tar files' run: 'tar -cvf cboe-${{ matrix.os.name }}-${{ matrix.configuration }}.tar "Blades of Exile"' working-directory: '${{ github.workspace }}/build' - name: 'Upload Artifact' uses: actions/upload-artifact@v4 with: name: cboe-${{ matrix.os.name }}-${{ matrix.configuration }} path: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}-${{ matrix.configuration }}.tar' - name: Github release uses: softprops/action-gh-release@v2 with: files: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}-${{ matrix.configuration }}.tar' if: ${{ startsWith(github.ref, 'refs/tags/') }} - name: 'Itch.io release' run: './.github/workflows/scripts/butler_push.sh' shell: bash if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.configuration == 'Release' && matrix.os.name != 'macos' }}