audio streaming app plyr.fm
at ad04eddcd8f068607975125c4739c24f5599de30 63 lines 1.5 kB view raw
1name: transcoder integration tests 2 3on: 4 pull_request: 5 paths: 6 - "services/transcoder/**" 7 - "scripts/transcoder/**" 8 - "scripts/generate_audio_sample.py" 9 - ".github/workflows/test-transcoder.yml" 10 workflow_dispatch: 11 12permissions: 13 contents: read 14 15jobs: 16 test: 17 name: transcoder test matrix 18 runs-on: ubuntu-latest 19 timeout-minutes: 10 20 21 steps: 22 - uses: actions/checkout@v4 23 24 - name: install ffmpeg 25 run: | 26 sudo apt-get update 27 sudo apt-get install -y ffmpeg 28 29 - name: install rust toolchain 30 uses: dtolnay/rust-toolchain@stable 31 32 - name: cache cargo 33 uses: Swatinem/rust-cache@v2 34 with: 35 workspaces: services/transcoder 36 37 - name: build transcoder 38 working-directory: services/transcoder 39 run: cargo build --release 40 41 - name: install uv 42 uses: astral-sh/setup-uv@v5 43 44 - name: start transcoder 45 run: | 46 TRANSCODER_HOST=127.0.0.1 TRANSCODER_PORT=8082 \ 47 ./services/transcoder/target/release/transcoder & 48 49 # wait for health check 50 for i in {1..30}; do 51 if curl -s http://127.0.0.1:8082/health > /dev/null; then 52 echo "transcoder ready" 53 break 54 fi 55 sleep 0.5 56 done 57 58 - name: run test matrix 59 run: uv run scripts/transcoder/test-matrix.py -v 60 61 - name: stop transcoder 62 if: always() 63 run: pkill -f transcoder || true