Live video on the AT Protocol
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 && (make test || make test) && make check && make ci-lexicons
23 - name: linux-arm64
24 cmd: "make app && make linux-arm64"
25 - name: windows-amd64
26 cmd: "make app && make windows-amd64 && make desktop-windows"
27 - name: android
28 cmd: "make app && make android-release"
29 steps:
30 - name: Check out code
31 uses: actions/checkout@v4.1.7
32 with:
33 fetch-depth: 0
34 ref: ${{ github.event.pull_request.head.sha }}
35
36 - name: make node
37 run: |
38 sudo apt install podman -y
39 make in-container DOCKER_OPTS="-e STREAMPLACE_IGNORE_LEAKS=true -e STREAMPLACE_TEST_COUNT=1 -e CI=true" IN_CONTAINER_CMD="${{ matrix.cmd }}"
40
41 - name: Upload bin artifacts
42 if: matrix.name == 'windows-amd64'
43 uses: actions/upload-artifact@v4
44 with:
45 name: windows-bin
46 path: ./bin/
47 retention-days: 1
48
49 windows-selftest:
50 name: windows-selftest
51 runs-on: windows-latest
52 needs: linux
53 steps:
54 - name: Download bin artifacts
55 uses: actions/download-artifact@v4
56 with:
57 name: windows-bin
58 path: ./bin/
59
60 - name: Run Windows executable
61 shell: bash
62 run: |
63 set -euo pipefail
64 set -x AQD_NO_UPDATE=true
65 echo "running $PWD/bin/*.exe"
66 ./bin/*.exe
67 powershell -Command "Stop-Process -Name Streamplace"
68 cd "$LOCALAPPDATA/streamplace_desktop"
69 cd app-*
70 ./Streamplace.exe -- --self-test
71
72 darwin:
73 name: ${{ matrix.name }}
74 runs-on: ${{ matrix.runs-on }}
75 strategy:
76 matrix:
77 include:
78 - name: darwin-arm64
79 runs-on: macos-15
80 cmd: make && make test && make check
81 xcode-version: "16.1.0"
82 - name: ios
83 runs-on: macos-15
84 cmd: make ios
85 xcode-version: "16.1.0"
86 - name: darwin-amd64
87 runs-on: macos-13
88 cmd: make
89 xcode-version: "15.2.0"
90 steps:
91 - name: Check out code
92 uses: actions/checkout@v4.1.7
93 with:
94 fetch-depth: 0
95 ref: ${{ github.event.pull_request.head.sha }}
96
97 - uses: actions/setup-node@v4
98 with:
99 node-version: 22
100
101 - uses: maxim-lobanov/setup-xcode@v1
102 with:
103 xcode-version: ${{ matrix.xcode-version }}
104
105 - name: Build Streamplace
106 env:
107 STREAMPLACE_TEST_COUNT: "1"
108 STREAMPLACE_IGNORE_LEAKS: "true"
109 NODE_OPTIONS: "--max_old_space_size=4096"
110 run: |
111 export GOTOOLCHAIN=go1.24.2 \
112 && brew install go \
113 && python -m pip install virtualenv \
114 && python -m virtualenv ~/venv \
115 && source ~/venv/bin/activate \
116 && python -m pip install meson \
117 && ${{ matrix.cmd }}