name: Build Release # Trigger whenever a release is created on: release: types: - created permissions: contents: write jobs: build: name: build runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04, macos-12, macos-14, windows-latest] defaults: run: shell: bash steps: - uses: actions/setup-python@v5 with: python-version: '3.x' - uses: actions/checkout@v1 with: submodules: true - name: install ninja (linux) run: sudo apt-get install ninja-build if: startsWith(matrix.os, 'ubuntu-') - name: install ninja (osx) run: brew install ninja if: matrix.os == 'macos-12' || matrix.os == 'macos-14' - name: install ninja (win) run: choco install ninja if: matrix.os == 'windows-latest' - name: mkdir run: mkdir -p out - name: cmake (unix) run: cmake -S . -B out -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install if: matrix.os != 'windows-latest' - name: cmake (win) # -G "Visual Studio 15 2017" run: cmake -S . -B out -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install if: matrix.os == 'windows-latest' - name: build run: cmake --build out --config Release --target install - name: strip run: find bin/ -type f -perm -u=x -exec strip {} + if: matrix.os != 'windows-latest' - uses: ./.github/actions/release-archive with: os: ${{ matrix.os }} upload_to_release: true build-wasi: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true - name: built-tools run: | docker run -di --name wasi-sdk -v $(pwd):/src --workdir /src ghcr.io/webassembly/wasi-sdk:wasi-sdk-20 bash docker exec wasi-sdk cmake -S . -B out -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DBUILD_TESTS=0 -DBUILD_LIBWASM=0 docker exec wasi-sdk cmake --build out --config Release --target install - uses: ./.github/actions/release-archive with: os: wasi upload_to_release: true