Skip to content

Add PR template (#623) #1981

Add PR template (#623)

Add PR template (#623) #1981

Workflow file for this run

name: ci
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
build-and-lint:
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
env:
RUSTFLAGS: "-Dwarnings"
RUSTDOCFLAGS: "-Dwarnings"
steps:
- name: Checkout SSI Library
uses: actions/checkout@v4
with:
submodules: true
- name: Retrieve MSRV
id: msrv
run: echo "MSRV=$(cat Cargo.toml | grep -Po '(?<=rust-version = ")([\d\.]+)')" >> $GITHUB_OUTPUT
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.msrv.outputs.MSRV }}
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
- uses: taiki-e/install-action@v2
with:
tool: cargo-rdme
- uses: taiki-e/install-action@v2
with:
tool: cargo-deny
- name: Fmt
run: cargo fmt -- --check
- name: Build
run: cargo build --workspace
- name: Clippy
run: cargo clippy --workspace
- name: Test WASM compilation
run: |
rustup target add wasm32-unknown-unknown
cargo check --workspace --target wasm32-unknown-unknown
- name: Test examples
run: |
cargo test --examples
- name: Doc
run: cargo doc --no-deps --workspace --all-features
- name: cargo-rdme
run: cargo rdme --check --no-fail-on-warnings
- run: cargo deny check bans
- run: cargo deny check licenses
test-each-feature:
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
steps:
- name: Checkout SSI Library
uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
- name: Test each feature
run: cargo hack test --each-feature --workspace --clean-per-run --exclude ssi --exclude 'ssi-did-test' -- --test-threads=4
# Disabled until caching is fixed or cargo-semver-checks-actions works with our workspace
# semver:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: lukka/get-cmake@latest
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: "true"
# - uses: taiki-e/install-action@v2
# with:
# tool: cargo-semver-checks
# - name: Check semver
# run: cargo semver-checks --workspace --exclude ssi-cose # not yet published