Files
olcrtc/.github/workflows/ci.yml
2026-05-07 15:57:58 +03:00

143 lines
3.2 KiB
YAML

name: CI
on:
push:
branches: [ "main", "master" ]
pull_request:
branches: [ "main", "master" ]
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Run tests
run: go test -count=1 ./...
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Run tests with coverage
run: go test -count=1 ./... --cover
real-e2e:
name: Real E2E (Providers x Transports)
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Install media tools
run: sudo apt-get update && sudo apt-get install -y ffmpeg
- name: Run real provider e2e matrix
run: |
go test -count=1 -v ./internal/e2e \
-run '^TestRealProviderTransportMatrix$' \
-olcrtc.real-e2e
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: golangci-lint
run: |
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
$(go env GOPATH)/bin/golangci-lint run --timeout=5m
build-cli:
name: Build CLI (Binaries)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Install Mage
run: go install github.com/magefile/mage@latest
- name: Build CLI (Cross)
run: mage cross
- name: Upload CLI Artifacts
uses: actions/upload-artifact@v4
with:
name: olcrtc-cli-binaries
path: build/
build-android:
name: Build Android (AAR)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Install gomobile
run: |
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
- name: Install Mage
run: go install github.com/magefile/mage@latest
- name: Build Mobile
run: mage mobile
- name: Upload Android Artifact
uses: actions/upload-artifact@v4
with:
name: olcrtc-android
path: build/olcrtc.aar