pontifex 1.1.2

An abstraction for building and interacting with AWS Nitro enclaves.
Documentation
name: CI

on:
    push:
        branches: [main]
    pull_request:

env:
    CARGO_TERM_COLOR: always

jobs:
    lint:
        name: Format, Clippy & Build
        runs-on: ubuntu-latest
        permissions:
            contents: read

        steps:
            - name: Checkout code
              uses: actions/checkout@v4

            - uses: dtolnay/rust-toolchain@stable
              with:
                components: clippy, rustfmt

            - name: Check code formatting
              run: cargo fmt -- --check

            - name: Run clippy
              run: cargo clippy --all-targets --all-features

            - name: Build
              run: cargo build

    test:
        name: Tests
        runs-on: ubuntu-latest
        permissions:
            contents: read

        steps:
            - name: Checkout code
              uses: actions/checkout@v4

            - uses: dtolnay/rust-toolchain@stable

            - name: Run tests
              run: |
                  cargo test --all-features

    deny:
        name: Cargo deny
        runs-on: ubuntu-latest
        permissions:
            contents: read
        strategy:
            matrix:
                checks:
                    - advisories
                    - bans licenses sources

        continue-on-error: ${{ matrix.checks == 'advisories' }}

        steps:
            - name: Checkout code
              uses: actions/checkout@v4

            - uses: EmbarkStudios/cargo-deny-action@v2
              with:
                  command: check ${{ matrix.checks }}
                  rust-version: stable
                  arguments: --all-features