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 echo "running $PWD/bin/*.exe"
65 ./bin/*.exe
66 powershell -Command "Stop-Process -Name Streamplace"
67 cd "$LOCALAPPDATA/streamplace_desktop"
68 cd app-*
69 ./Streamplace.exe -- --self-test
70
71 darwin:
72 name: ${{ matrix.name }}
73 runs-on: ${{ matrix.runs-on }}
74 strategy:
75 matrix:
76 include:
77 - name: darwin-arm64
78 runs-on: macos-15
79 cmd: make && make test && make check
80 xcode-version: "16.1.0"
81 - name: ios
82 runs-on: macos-15
83 cmd: make ios
84 xcode-version: "16.1.0"
85 - name: darwin-amd64
86 runs-on: macos-13
87 cmd: make
88 xcode-version: "15.2.0"
89 steps:
90 - name: Check out code
91 uses: actions/checkout@v4.1.7
92 with:
93 fetch-depth: 0
94 ref: ${{ github.event.pull_request.head.sha }}
95
96 - uses: actions/setup-node@v4
97 with:
98 node-version: 22
99
100 - uses: maxim-lobanov/setup-xcode@v1
101 with:
102 xcode-version: ${{ matrix.xcode-version }}
103
104 - name: Build Streamplace
105 env:
106 STREAMPLACE_TEST_COUNT: "1"
107 STREAMPLACE_IGNORE_LEAKS: "true"
108 NODE_OPTIONS: "--max_old_space_size=4096"
109 run: |
110 export GOTOOLCHAIN=go1.24.2 \
111 && brew install go \
112 && python -m pip install virtualenv \
113 && python -m virtualenv ~/venv \
114 && source ~/venv/bin/activate \
115 && python -m pip install meson \
116 && ${{ matrix.cmd }}