Skip to content

CI

CI #682

Workflow file for this run

name: CI
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: "${{ github.ref != 'refs/heads/main' }}"
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
push:
branches:
- main
schedule:
- cron: 0 0 * * *
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: sccache
CC: sccache clang
CXX: sccache clang++
jobs:
test:
name: build-and-test
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9
timeout-minutes: 5
continue-on-error: true
- name: Build
run: make check
- name: Test
run: make test
lint:
name: All lint checks
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9
timeout-minutes: 5
continue-on-error: true
- name: Apt Dependencies
uses: nick-fields/retry@v3
with:
timeout_minutes: 5
max_attempts: 3
command: |
sudo apt-get install -y build-essential # required dep for cargo-spellcheck
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "18"
- name: Install Lint tools
run: make install-lint-tools-ci
env:
RUSTFLAGS: "-Cstrip=symbols"
- name: Lint
run: make lint-all
dependencies-check:
name: Check cargo dependencies
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0"
- name: Run dependencies checks
run: |
gem install toml-rb --no-document
ruby scripts/linters/find_unused_deps.rb
codecov:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9
timeout-minutes: 5
continue-on-error: true
- run: cargo llvm-cov --all-features --lcov --output-path lcov.info
env:
RUSTC_WRAPPER:
- uses: actions/upload-artifact@v6
with:
name: lcov.info
path: lcov.info
if-no-files-found: error
- name: Upload CodeCov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true