name: CI
on:
push:
branches: [ '*' ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
rustflags: ""
- run: cargo test --locked
golden:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
rustflags: ""
- uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.42'
multi-thread: true
- run: cargo test --locked --test rust_codegen_regression
smoke:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
perl-version: [ '5.30', '5.36', '5.42' ]
threaded: [ true, false ]
steps:
- uses: actions/checkout@v6
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
rustflags: ""
- uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ matrix.perl-version }}
multi-thread: ${{ matrix.threaded }}
- run: cargo build --locked
- name: Run smoke harness
env:
LIBPERL_APIDOC_CACHE_DIR: ${{ runner.temp }}/apidoc-${{ matrix.perl-version }}-${{ matrix.threaded }}
run: |
MODE=$([ "${{ matrix.threaded }}" = true ] && echo threaded || echo non-threaded)
perl scripts/multi-perl-smoke.pl \
--require ${{ matrix.perl-version }}-$MODE \
--out tmp/multi-perl/out/ci
- name: Upload artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: smoke-${{ matrix.perl-version }}-${{ matrix.threaded && 'threaded' || 'non-threaded' }}
path: tmp/multi-perl/out/ci/