Skip to content

Kani CI

Kani CI #9161

Workflow file for this run

# Copyright Kani Contributors
# SPDX-License-Identifier: Apache-2.0 OR MIT
name: Kani CI
on:
pull_request:
merge_group:
push:
# Not just any push, as that includes tags.
# We don't want to re-trigger this workflow when tagging an existing commit.
branches:
- '**'
env:
RUST_BACKTRACE: 1
jobs:
regression:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13, ubuntu-20.04, ubuntu-22.04, macos-14]
steps:
- name: Checkout Kani
uses: actions/checkout@v4
- name: Setup Kani Dependencies
uses: ./.github/actions/setup
with:
os: ${{ matrix.os }}
- name: Execute Kani regression
run: ./scripts/kani-regression.sh
benchcomp-tests:
runs-on: ubuntu-20.04
steps:
- name: Checkout Kani
uses: actions/checkout@v4
- name: Install benchcomp dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3-pip
pushd tools/benchcomp && pip3 install -r requirements.txt
- name: Setup Kani Dependencies
uses: ./.github/actions/setup
with:
os: ubuntu-20.04
- name: Build Kani using release mode
run: cargo build-dev -- --release
- name: Run benchcomp unit and regression tests
run: pushd tools/benchcomp && PATH=$(realpath ../../scripts):$PATH test/run
perf:
runs-on: ubuntu-20.04
steps:
- name: Checkout Kani
uses: actions/checkout@v4
- name: Setup Kani Dependencies
uses: ./.github/actions/setup
with:
os: ubuntu-20.04
- name: Execute Kani performance tests
run: ./scripts/kani-perf.sh
env:
RUST_TEST_THREADS: 1
documentation:
runs-on: ubuntu-20.04
permissions:
contents: write
steps:
- name: Checkout Kani
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install book dependencies
run: ./scripts/setup/ubuntu/install_doc_deps.sh
# On one OS only, build the documentation, too.
- name: Build Documentation
run: ./scripts/build-docs.sh
# When we're pushed to main branch, only then actually publish the docs.
- name: Publish Documentation
if: ${{ github.event_name == 'push' && startsWith('refs/heads/main', github.ref) }}
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: docs/book/
single-commit: true