name: 'Run Tests'
on:
pull_request:
push:
branches: [ master ]
permissions:
actions: read
contents: write
jobs:
tests:
env:
SCCACHE_GHA_ENABLED: 'true'
RUSTC_WRAPPER: 'sccache'
CARGO_INCREMENTAL: '0'
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup devenv
uses: andyl-technologies/github-actions/setup-devenv@master
- name: Setup Rust cache
uses: andyl-technologies/github-actions/rust-cache@master
with:
cache-all-crates: true
use-sccache: true
- name: Run tests
run: devenv test
test-miri:
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup devenv
uses: andyl-technologies/github-actions/setup-devenv@master
- name: Setup Rust cache
uses: andyl-technologies/github-actions/rust-cache@master
with:
cache-all-crates: true
- name: Run tests
run: devenv shell miri-test
coverage:
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup devenv
uses: andyl-technologies/github-actions/setup-devenv@master
- name: Setup Rust cache
uses: andyl-technologies/github-actions/rust-cache@master
- name: Run coverage tests
run: devenv shell wasm-trampoline-coverage
- name: Generate coverage report
uses: clearlyip/code-coverage-report-action@v5
id: code_coverage_report_action
if: ${{ github.actor != 'dependabot[bot]'}}
with:
filename: 'coverage.cobertura.xml'
artifact_download_workflow_names: '"Run Tests",cron'
- name: Add coverage PR comment
uses: marocchino/sticky-pull-request-comment@v2
if:
steps.code_coverage_report_action.outputs.file != '' &&
github.event_name == 'pull_request' && (success() || failure())
with:
recreate: true
path: code-coverage-results.md
check-publish:
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup devenv
uses: andyl-technologies/github-actions/setup-devenv@master
- name: Verify crate publishing
uses: katyo/publish-crates@v2
with:
dry-run: true
ignore-unpublished-changes: false