|
|
|
|
@ -11,8 +11,8 @@ on:
|
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
|
|
concurrency:
|
|
|
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
|
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref_name }}
|
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
|
contents: read
|
|
|
|
|
@ -38,16 +38,17 @@ jobs:
|
|
|
|
|
- name: Check formatting
|
|
|
|
|
run: make fmt-check
|
|
|
|
|
|
|
|
|
|
# Build
|
|
|
|
|
build:
|
|
|
|
|
name: Build
|
|
|
|
|
# Run Clippy lints independently from the test jobs.
|
|
|
|
|
clippy:
|
|
|
|
|
name: Clippy Lints
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- uses: actions/checkout@v5
|
|
|
|
|
|
|
|
|
|
- name: Install Rust toolchain
|
|
|
|
|
uses: dtolnay/rust-toolchain@nightly
|
|
|
|
|
with:
|
|
|
|
|
components: clippy
|
|
|
|
|
|
|
|
|
|
- name: Install protobuf compiler
|
|
|
|
|
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
|
|
|
|
|
@ -55,11 +56,13 @@ jobs:
|
|
|
|
|
- name: Cache Rust build artifacts
|
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make build-workspace
|
|
|
|
|
- name: Run Clippy
|
|
|
|
|
timeout-minutes: 60
|
|
|
|
|
run: make clippy-check
|
|
|
|
|
|
|
|
|
|
proto-freshness:
|
|
|
|
|
name: Proto Freshness
|
|
|
|
|
# Build
|
|
|
|
|
build:
|
|
|
|
|
name: Build
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
@ -74,12 +77,11 @@ jobs:
|
|
|
|
|
- name: Cache Rust build artifacts
|
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
|
|
|
|
|
- name: Check generated proto artifacts
|
|
|
|
|
run: make proto-freshness
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make build-workspace
|
|
|
|
|
|
|
|
|
|
# SQLx offline metadata
|
|
|
|
|
sqlx-offline:
|
|
|
|
|
name: SQLx Offline Check
|
|
|
|
|
proto-freshness:
|
|
|
|
|
name: Proto Freshness
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
@ -94,40 +96,13 @@ jobs:
|
|
|
|
|
- name: Cache Rust build artifacts
|
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
|
|
|
|
|
- name: Check SQLx offline metadata
|
|
|
|
|
run: make check-all-targets
|
|
|
|
|
- name: Check generated proto artifacts
|
|
|
|
|
run: make proto-freshness
|
|
|
|
|
|
|
|
|
|
feature-check:
|
|
|
|
|
name: Feature Check (${{ matrix.name }})
|
|
|
|
|
# SQLx offline metadata
|
|
|
|
|
sqlx-offline:
|
|
|
|
|
name: SQLx Offline Check
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
include:
|
|
|
|
|
- name: synctv-no-default-features
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --no-default-features
|
|
|
|
|
- name: synctv-tls-aws-lc-webpki
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --no-default-features --features tls-aws-lc,tls-webpki-roots
|
|
|
|
|
- name: synctv-tls-aws-lc-native
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --no-default-features --features tls-aws-lc,tls-native-roots
|
|
|
|
|
- name: synctv-tls-ring-webpki
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --no-default-features --features tls-ring,tls-webpki-roots
|
|
|
|
|
- name: synctv-tls-ring-native
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --no-default-features --features tls-ring,tls-native-roots
|
|
|
|
|
- name: synctv-production-default
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --features tls-native-roots
|
|
|
|
|
- name: synctv-openapi
|
|
|
|
|
target: feature-check
|
|
|
|
|
args: --features openapi
|
|
|
|
|
- name: key-crates-tls-ring-webpki
|
|
|
|
|
target: feature-check-key-crates-tls-ring-webpki
|
|
|
|
|
args: ""
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- uses: actions/checkout@v5
|
|
|
|
|
@ -141,10 +116,8 @@ jobs:
|
|
|
|
|
- name: Cache Rust build artifacts
|
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
|
|
|
|
|
- name: Run feature check
|
|
|
|
|
env:
|
|
|
|
|
FEATURE_CHECK_ARGS: ${{ matrix.args }}
|
|
|
|
|
run: make ${{ matrix.target }}
|
|
|
|
|
- name: Check SQLx offline metadata
|
|
|
|
|
run: make check-all-targets
|
|
|
|
|
|
|
|
|
|
# Test non-ignored cases
|
|
|
|
|
test-default:
|
|
|
|
|
@ -162,8 +135,6 @@ jobs:
|
|
|
|
|
|
|
|
|
|
- name: Install Rust toolchain
|
|
|
|
|
uses: dtolnay/rust-toolchain@nightly
|
|
|
|
|
with:
|
|
|
|
|
components: clippy
|
|
|
|
|
|
|
|
|
|
- name: Install cargo-nextest
|
|
|
|
|
uses: taiki-e/install-action@nextest
|
|
|
|
|
@ -187,10 +158,6 @@ jobs:
|
|
|
|
|
- name: Cache Rust build artifacts
|
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
|
|
|
|
|
- name: Run clippy
|
|
|
|
|
timeout-minutes: 60
|
|
|
|
|
run: make clippy-check
|
|
|
|
|
|
|
|
|
|
- name: Run non-ignored tests with nextest
|
|
|
|
|
timeout-minutes: 60
|
|
|
|
|
run: make nextest-default
|
|
|
|
|
|