Live video on the AT Protocol
at eli/docker-deployment-docs 138 lines 4.2 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: Log in to the Container registry 42 uses: docker/login-action@v2 43 with: 44 registry: ghcr.io 45 username: ${{ github.actor }} 46 password: ${{ github.token }} 47 48 - name: make node 49 run: | 50 sudo apt install podman -y 51 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" IN_CONTAINER_CMD="${{ matrix.cmd }}" 52 53 - name: Publish Test Report 54 if: matrix.name == 'linux-amd64' && (success() || failure()) 55 uses: mikepenz/action-junit-report@v5 56 with: 57 report_paths: "test.xml" 58 59 - name: Upload bin artifacts 60 if: matrix.name == 'windows-amd64' 61 uses: actions/upload-artifact@v4 62 with: 63 name: windows-bin-${{ github.event.pull_request.head.sha }} 64 path: ./bin/ 65 retention-days: 1 66 67 # windows-selftest: 68 # name: windows-selftest 69 # runs-on: windows-latest 70 # needs: linux 71 # steps: 72 # - name: Download bin artifacts 73 # uses: actions/download-artifact@v4 74 # with: 75 # name: windows-bin-${{ github.event.pull_request.head.sha }} 76 # path: ./bin/ 77 78 # - name: Run Windows executable 79 # shell: bash 80 # run: | 81 # set -euo pipefail 82 # set -x AQD_NO_UPDATE=true 83 # set -x STREAMPLACE_TEST_SERIES=true 84 # echo "running $PWD/bin/*.exe" 85 # ./bin/*.exe 86 # powershell -Command "Stop-Process -Name Streamplace" 87 # cd "$LOCALAPPDATA/streamplace_desktop" 88 # cd app-* 89 # ./Streamplace.exe -- --self-test 90 91 darwin: 92 name: ${{ matrix.name }} 93 runs-on: ${{ matrix.runs-on }} 94 strategy: 95 matrix: 96 include: 97 - name: darwin-arm64 98 runs-on: macos-15 99 cmd: make && make test && make check 100 xcode-version: "16.4" 101 - name: ios 102 runs-on: macos-15 103 cmd: make ios 104 xcode-version: "16.4" 105 - name: darwin-amd64 106 runs-on: macos-13 107 cmd: make 108 xcode-version: "15.2.0" 109 steps: 110 - name: Check out code 111 uses: actions/checkout@v4.1.7 112 with: 113 fetch-depth: 0 114 ref: ${{ github.event.pull_request.head.sha }} 115 116 - uses: actions/setup-node@v4 117 with: 118 node-version: 22 119 120 - uses: maxim-lobanov/setup-xcode@v1 121 with: 122 xcode-version: ${{ matrix.xcode-version }} 123 124 - name: Build Streamplace 125 env: 126 STREAMPLACE_TEST_COUNT: "1" 127 STREAMPLACE_IGNORE_LEAKS: "true" 128 NODE_OPTIONS: "--max_old_space_size=4096" 129 run: | 130 npm install -g corepack@latest \ 131 && corepack enable \ 132 && export GOTOOLCHAIN=go1.25.1 \ 133 && brew install go \ 134 && python -m pip install virtualenv \ 135 && python -m virtualenv ~/venv \ 136 && source ~/venv/bin/activate \ 137 && python -m pip install meson \ 138 && ${{ matrix.cmd }}