Release #7
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| source_release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Source release | |
| shell: bash | |
| working-directory: ../ | |
| run: | | |
| cmake -P bmx/release/source_release.cmake | |
| # actions/upload-artifact doesn't allow . and .. in paths | |
| - name: Move source artefacts into working directory | |
| shell: bash | |
| run: | | |
| mv ../source_release . | |
| - name: Upload source release | |
| uses: actions/upload-artifact@v7.0.1 | |
| with: | |
| name: source-release | |
| path: | | |
| source_release/*.zip | |
| source_release/*.tar.gz | |
| binary_release: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: windows | |
| os: windows-2022 | |
| - name: macos-xcode-universal | |
| os: macos-14 | |
| - name: ubuntu | |
| os: ubuntu-latest | |
| runs-on: ${{ matrix.os }} | |
| needs: source_release | |
| steps: | |
| - name: Install dependencies (ubuntu) | |
| if: ${{ contains(matrix.os, 'ubuntu') }} | |
| shell: bash | |
| run: | | |
| sudo apt-get -y update | |
| sudo apt-get -y install \ | |
| git \ | |
| pkg-config \ | |
| g++ \ | |
| gcc \ | |
| cmake \ | |
| uuid-dev \ | |
| libcurl4-openssl-dev | |
| - uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| if: ${{ contains(matrix.name, 'xcode') }} | |
| with: | |
| xcode-version: latest-stable | |
| - uses: actions/download-artifact@v8.0.1 | |
| with: | |
| name: source-release | |
| - name: Win64 binary release | |
| if: ${{ contains(matrix.name, 'windows') }} | |
| shell: bash | |
| run: | | |
| mkdir binary_release | |
| cd binary_release | |
| unzip -q ../bmx-*.zip | |
| cd bmx-* | |
| cmake -P release/win64_binary_release.cmake | |
| - name: MacOS Universal binary release | |
| if: ${{ contains(matrix.os, 'macos') }} | |
| shell: bash | |
| run: | | |
| mkdir binary_release | |
| cd binary_release | |
| unzip -q ../bmx-*.zip | |
| cd bmx-* | |
| cmake -P release/macos_universal_binary_release.cmake | |
| - name: Ubuntu binary build (build only, no artefacts) | |
| if: ${{ contains(matrix.os, 'ubuntu') }} | |
| shell: bash | |
| run: | | |
| mkdir binary_release | |
| cd binary_release | |
| tar -xzf ../bmx-*.tar.gz | |
| cd bmx-* | |
| cmake -P release/ubuntu_binary_release_build_only.cmake | |
| # actions/upload-artifact doesn't allow . and .. in paths | |
| - name: Move binary artefacts into binary_release directory | |
| if: ${{ !contains(matrix.os, 'ubuntu') }} | |
| shell: bash | |
| run: | | |
| mv binary_release/bmx-*/out/package/bmx-*.zip ./binary_release | |
| - name: Upload binary release | |
| if: ${{ !contains(matrix.os, 'ubuntu') }} | |
| uses: actions/upload-artifact@v7.0.1 | |
| with: | |
| name: binary-release-${{ matrix.name }} | |
| path: | | |
| binary_release/bmx-*.zip |