name: Downstream
on:
push:
branches: [main]
paths:
- 'src/**'
- 'Cargo.toml'
- 'rust-toolchain.toml'
- 'scripts/downstream_check.sh'
- 'scripts/downstream_select_tag.py'
- 'scripts/downstream_test_counts.py'
- '.github/workflows/downstream.yml'
pull_request:
branches: [main]
paths:
- 'src/**'
- 'Cargo.toml'
- 'rust-toolchain.toml'
- 'scripts/downstream_check.sh'
- 'scripts/downstream_select_tag.py'
- 'scripts/downstream_test_counts.py'
- '.github/workflows/downstream.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
downstream:
name: ALICE-SDF, ALICE-LOL and ALICE-TRT against this commit
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install Mesa software Vulkan (lavapipe) for the ALICE-TRT GPU tests
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1 vulkan-tools
vulkaninfo --summary || echo "vulkaninfo --summary failed (exit $?); the ALICE-TRT GPU probe decides"
- name: Fetch downstream repositories
env:
DOWNSTREAM_ROOT: ${{ runner.temp }}/downstream
KINEMATICS_REF: main
run: bash scripts/downstream_check.sh --fetch-only
- uses: Swatinem/rust-cache@v2
with:
shared-key: downstream
workspaces: |
${{ runner.temp }}/downstream/ALICE-SDF -> ${{ runner.temp }}/downstream/target/sdf
${{ runner.temp }}/downstream/ALICE-LOL -> ${{ runner.temp }}/downstream/target/lol
${{ runner.temp }}/downstream/ALICE-TRT -> ${{ runner.temp }}/downstream/target/trt
- name: Build and test downstream (fails on a requirement that rejects this version, a test binary with 0 tests, an unpatched alice-physics or no GPU adapter for ALICE-TRT)
env:
DOWNSTREAM_ROOT: ${{ runner.temp }}/downstream
DOWNSTREAM_TARGET_DIR: ${{ runner.temp }}/downstream/target
run: bash scripts/downstream_check.sh --no-fetch