name: build on: pull_request: push: branches: - next concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: linux: name: ${{ matrix.name }} runs-on: ubuntu-latest strategy: matrix: include: - name: linux-amd64 cmd: >- make linux-amd64 && make static-test && make check && make ci-lexicons - name: linux-arm64 cmd: "make linux-arm64" - name: windows-amd64 cmd: "make windows-amd64 && make desktop-windows-amd64" - name: android cmd: "make app && make android-release" steps: - name: Maximize build space run: | sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL - name: Check out code uses: actions/checkout@v4.1.7 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - name: mise check if: matrix.name == 'linux-amd64' uses: jdx/mise-action@v2 with: install: true - name: Log in to the Container registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: make node run: | sudo apt install podman -y make in-container BUILDER_TARGET=builder-no-darwin DOCKER_BUILD_OPTS="--layers --cache-to ghcr.io/streamplace/streamplace --cache-from ghcr.io/streamplace/streamplace" DOCKER_OPTS="-e STREAMPLACE_IGNORE_LEAKS=true -e STREAMPLACE_TEST_COUNT=1 -e CI=true -e GITHUB_ACTION=true" IN_CONTAINER_CMD="${{ matrix.cmd }}" - name: Publish Test Report if: matrix.name == 'linux-amd64' && (success() || failure()) uses: mikepenz/action-junit-report@v5 with: report_paths: "test.xml" - name: Upload bin artifacts if: matrix.name == 'windows-amd64' uses: actions/upload-artifact@v4 with: name: windows-bin-${{ github.event.pull_request.head.sha }} path: ./bin/ retention-days: 1 # windows-selftest: # name: windows-selftest # runs-on: windows-latest # needs: linux # steps: # - name: Download bin artifacts # uses: actions/download-artifact@v4 # with: # name: windows-bin-${{ github.event.pull_request.head.sha }} # path: ./bin/ # - name: Run Windows executable # shell: bash # run: | # set -euo pipefail # set -x AQD_NO_UPDATE=true # set -x STREAMPLACE_TEST_SERIES=true # echo "running $PWD/bin/*.exe" # ./bin/*.exe # powershell -Command "Stop-Process -Name Streamplace" # cd "$LOCALAPPDATA/streamplace_desktop" # cd app-* # ./Streamplace.exe -- --self-test darwin: name: ${{ matrix.name }} runs-on: ${{ matrix.runs-on }} strategy: matrix: include: - name: darwin-arm64 runs-on: macos-15 cmd: make && make test && make check xcode-version: "16.4" - name: ios runs-on: macos-15 cmd: make ios xcode-version: "16.4" - name: darwin-amd64 runs-on: macos-15-intel cmd: make xcode-version: "16.4" steps: - name: Check out code uses: actions/checkout@v4.1.7 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - uses: actions/setup-node@v4 with: node-version: 22 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: ${{ matrix.xcode-version }} - name: Build Streamplace env: STREAMPLACE_TEST_COUNT: "1" STREAMPLACE_IGNORE_LEAKS: "true" NODE_OPTIONS: "--max_old_space_size=4096" run: | npm install -g corepack@latest \ && corepack enable \ && export GOTOOLCHAIN=go1.25.1 \ && brew install go \ && python -m pip install virtualenv \ && python -m virtualenv ~/venv \ && source ~/venv/bin/activate \ && python -m pip install meson \ && ${{ matrix.cmd }}