Skip to content

Decouple kani version from kani-github-action version #136

Decouple kani version from kani-github-action version

Decouple kani version from kani-github-action version #136

Workflow file for this run

# Copyright Kani Contributors
# SPDX-License-Identifier: Apache-2.0 OR MIT
name: Kani Action Check
on: pull_request
jobs:
test-action:
runs-on: ubuntu-latest
name: Ensure that the Kani action continues to work
steps:
# To use this repository's private action,
# you must check out the repository
- name: Checkout
uses: actions/checkout@v3
- name: Run Kani with invalid version
id: set_error
uses: ./
with:
working-directory: tests/cargo-kani/simple-lib
kani-version: '0.1.10'
continue-on-error: true
- name: Ensure "Run Kani with invalid version" fails
id: get_error
run: |
# Check the outcome of "Run Kani with invalid version"
if [[ "${{ steps.set_error.outcome }}" == "failure" ]]; then
echo "Running Kani with invalid version "0.1.10" failed."
else
echo "::error::Running Kani with invalid version succeeded incorrectly or was skipped."
exit 1
fi
- name: Run Kani with older version
uses: ./ # Uses the action in the root directory
with:
working-directory: tests/cargo-kani/simple-lib
kani-version: '0.33.0'
- name: Test "Run Kani with older version"
run: |
installed_version=$(kani --version | awk '{print $2}')
expected_version='0.33.0'
if [[ "$installed_version" == "$expected_version" ]]; then
echo "The installed version ($installed_version) matches the expected version ($expected_version)."
else
echo "::error::The installed version ($installed_version) does not match the expected version ($expected_version)."
exit 1
fi
- name: Run Kani with latest version
uses: ./ # Uses the action in the root directory
with:
working-directory: tests/cargo-kani/simple-lib
- name: Test "Run Kani with latest version"
run: |
installed_version=$(kani --version | awk '{print $2}')
expected_version=$(cargo search kani-verifier | grep -m 1 "kani" | awk '{print $3}' | sed 's/"//g')
if [[ "$installed_version" == "$expected_version" ]]; then
echo "The installed version ($installed_version) matches the latest version ($expected_version)"
else
echo "::error::The installed version ($installed_version) does not match the latest version ($expected_version)."
exit 1
fi
- name: Test ProfProof within Kani Action
uses: ./
with:
working-directory: tests/cargo-kani/proptest-lib
args: --tests
enable-propproof: true