Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .github/workflows/ci-pcf-sig-reference.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: CI / Rust (PCF-SIG Reference)

on:
push:
branches: [master]
pull_request:
branches: [master]

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"

defaults:
run:
working-directory: reference/PCF-SIG-v1.0

jobs:
fmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check

clippy:
name: clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: reference/PCF-SIG-v1.0
- run: cargo clippy --all-targets --all-features -- -D warnings

test:
name: test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: reference/PCF-SIG-v1.0
- run: cargo build --verbose
- run: cargo test --all-targets --verbose
- run: cargo test --doc --verbose

test-vector:
name: regenerate spec test vector
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: reference/PCF-SIG-v1.0
- name: Build and run the test-vector example
run: cargo run --example gen_testvector -- pcfsig_testvector.bin
- name: Inspect generated test vector
run: |
ls -l pcfsig_testvector.bin
test "$(wc -c < pcfsig_testvector.bin)" = "966"
- uses: actions/upload-artifact@v4
with:
name: pcf-sig-testvector
path: reference/PCF-SIG-v1.0/pcfsig_testvector.bin

coverage:
name: code coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
with:
workspaces: reference/PCF-SIG-v1.0
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate coverage report (lcov)
run: cargo llvm-cov --all-features --package pcf-sig --lcov --output-path lcov.info
- name: Print coverage summary
run: cargo llvm-cov report
- name: Enforce minimum library coverage
run: |
cargo llvm-cov report --summary-only \
--ignore-filename-regex 'bin/|examples/|error\.rs' \
--fail-under-lines 90 \
--fail-under-functions 90
- uses: actions/upload-artifact@v4
with:
name: pcf-sig-coverage-lcov
path: reference/PCF-SIG-v1.0/lcov.info
Loading