name: CI on: workflow_dispatch: push: branches: [main] pull_request: branches: [main] types: - opened - reopened - synchronize - ready_for_review env: CARGO_TERM_COLOR: always jobs: style: name: Check style runs-on: ubuntu-latest if: github.event_name == 'push' || !github.event.pull_request.draft steps: - name: Checkout the repo uses: actions/checkout@v2 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: nightly components: rustfmt profile: minimal override: true - name: Cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: -- --check typos: name: Spell Check with Typos needs: [style] runs-on: ubuntu-latest if: github.event_name == 'push' || !github.event.pull_request.draft steps: - name: Checkout Actions Repository uses: actions/checkout@v2 - name: Check the spelling of the files in our repo uses: crate-ci/typos@master clippy: name: Run clippy needs: [style] runs-on: ubuntu-latest if: github.event_name == 'push' || !github.event.pull_request.draft steps: - name: Checkout the repo uses: actions/checkout@v2 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: nightly components: clippy profile: minimal override: true - name: Load cache uses: Swatinem/rust-cache@v1 - name: Clippy uses: actions-rs/cargo@v1 with: command: run args: -p xtask -- ci clippy test-features: name: linux / features-${{ matrix.name }} if: github.event_name == 'push' || !github.event.pull_request.draft runs-on: ubuntu-latest strategy: fail-fast: true matrix: name: - no-encryption - no-sled - no-encryption-and-sled - sled-cryptostore - rustls-tls - markdown - socks - sso-login steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true - name: Load cache uses: Swatinem/rust-cache@v1 - name: Test uses: actions-rs/cargo@v1 with: command: run args: -p xtask -- ci test-features ${{ matrix.name }} test-crypto-features: name: linux / crypto-crate features needs: [style] runs-on: ubuntu-latest if: github.event_name == 'push' || !github.event.pull_request.draft steps: - name: Checkout the repo uses: actions/checkout@v2 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true - name: Load cache uses: Swatinem/rust-cache@v1 - name: Clippy uses: actions-rs/cargo@v1 with: command: run args: -p xtask -- ci test-crypto test: name: ${{ matrix.name }} if: github.event_name == 'push' || !github.event.pull_request.draft runs-on: ${{ matrix.os || 'ubuntu-latest' }} strategy: fail-fast: true matrix: name: - linux / stable - linux / beta - macOS / stable include: - name: linux / stable - name: linux / beta rust: beta - name: macOS / stable os: macOS-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust || 'stable' }} profile: minimal override: true - name: Load cache uses: Swatinem/rust-cache@v1 - name: Test uses: actions-rs/cargo@v1 with: command: test