Live video on the AT Protocol
at next 144 lines 4.4 kB view raw
1name: build 2 3on: 4 pull_request: 5 push: 6 branches: 7 - next 8 9concurrency: 10 group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} 11 cancel-in-progress: true 12 13jobs: 14 linux: 15 name: ${{ matrix.name }} 16 runs-on: ubuntu-latest 17 strategy: 18 matrix: 19 include: 20 - name: linux-amd64 21 cmd: >- 22 make linux-amd64 && make static-test && make check && make 23 ci-lexicons 24 - name: linux-arm64 25 cmd: "make linux-arm64" 26 - name: windows-amd64 27 cmd: "make windows-amd64 && make desktop-windows-amd64" 28 - name: android 29 cmd: "make app && make android-release" 30 steps: 31 - name: Maximize build space 32 run: | 33 sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL 34 35 - name: Check out code 36 uses: actions/checkout@v4.1.7 37 with: 38 fetch-depth: 0 39 ref: ${{ github.event.pull_request.head.sha }} 40 41 - name: mise check 42 if: matrix.name == 'linux-amd64' 43 uses: jdx/mise-action@v2 44 with: 45 install: true 46 47 - name: Log in to the Container registry 48 uses: docker/login-action@v2 49 with: 50 registry: ghcr.io 51 username: ${{ github.actor }} 52 password: ${{ github.token }} 53 54 - name: make node 55 run: | 56 sudo apt install podman -y 57 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 }}" 58 59 - name: Publish Test Report 60 if: matrix.name == 'linux-amd64' && (success() || failure()) 61 uses: mikepenz/action-junit-report@v5 62 with: 63 report_paths: "test.xml" 64 65 - name: Upload bin artifacts 66 if: matrix.name == 'windows-amd64' 67 uses: actions/upload-artifact@v4 68 with: 69 name: windows-bin-${{ github.event.pull_request.head.sha }} 70 path: ./bin/ 71 retention-days: 1 72 73 # windows-selftest: 74 # name: windows-selftest 75 # runs-on: windows-latest 76 # needs: linux 77 # steps: 78 # - name: Download bin artifacts 79 # uses: actions/download-artifact@v4 80 # with: 81 # name: windows-bin-${{ github.event.pull_request.head.sha }} 82 # path: ./bin/ 83 84 # - name: Run Windows executable 85 # shell: bash 86 # run: | 87 # set -euo pipefail 88 # set -x AQD_NO_UPDATE=true 89 # set -x STREAMPLACE_TEST_SERIES=true 90 # echo "running $PWD/bin/*.exe" 91 # ./bin/*.exe 92 # powershell -Command "Stop-Process -Name Streamplace" 93 # cd "$LOCALAPPDATA/streamplace_desktop" 94 # cd app-* 95 # ./Streamplace.exe -- --self-test 96 97 darwin: 98 name: ${{ matrix.name }} 99 runs-on: ${{ matrix.runs-on }} 100 strategy: 101 matrix: 102 include: 103 - name: darwin-arm64 104 runs-on: macos-15 105 cmd: make && make test && make check 106 xcode-version: "16.4" 107 - name: ios 108 runs-on: macos-15 109 cmd: make ios 110 xcode-version: "16.4" 111 - name: darwin-amd64 112 runs-on: macos-15-intel 113 cmd: make 114 xcode-version: "16.4" 115 steps: 116 - name: Check out code 117 uses: actions/checkout@v4.1.7 118 with: 119 fetch-depth: 0 120 ref: ${{ github.event.pull_request.head.sha }} 121 122 - uses: actions/setup-node@v4 123 with: 124 node-version: 22 125 126 - uses: maxim-lobanov/setup-xcode@v1 127 with: 128 xcode-version: ${{ matrix.xcode-version }} 129 130 - name: Build Streamplace 131 env: 132 STREAMPLACE_TEST_COUNT: "1" 133 STREAMPLACE_IGNORE_LEAKS: "true" 134 NODE_OPTIONS: "--max_old_space_size=4096" 135 run: | 136 npm install -g corepack@latest \ 137 && corepack enable \ 138 && export GOTOOLCHAIN=go1.25.1 \ 139 && brew install go \ 140 && python -m pip install virtualenv \ 141 && python -m virtualenv ~/venv \ 142 && source ~/venv/bin/activate \ 143 && python -m pip install meson \ 144 && ${{ matrix.cmd }}