Skip to content

build

build #372

Workflow file for this run

name: build
permissions:
contents: read
on:
push:
branches: ["main", "rel-*", "ci/*"]
tags:
- "**"
pull_request:
merge_group:
schedule:
- cron: "0 18 * * *"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
- ubuntu-24.04-arm
rustc:
- stable
include:
- os: ubuntu-latest
rustc: nightly
exclude: # and never use macos/windows for merge checks
- os: ${{ github.event_name == 'merge_group' && 'windows-latest' }}
- os: ${{ github.event_name == 'merge_group' && 'macos-latest' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
submodules: true
persist-credentials: false
- name: Install ${{ matrix.rustc }} toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rustc }}
- name: Build (debug)
run: cargo build --locked
- name: Run tests (debug)
run: cargo test --locked
- name: Check FFI header
run: git diff --exit-code -- upki-ffi/upki.h
- name: Build (release)
run: cargo build --locked --release
- name: Run tests (release)
run: cargo test --locked --release
- name: Run system tests (release)
run: cargo test --locked --release --test system_tests -- --ignored --nocapture
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
persist-credentials: false
- name: Install MSRV toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.85"
- name: Check MSRV
run: cargo check --locked --all-features