akv-cli 0.10.1

The Azure Key Vault CLI (unofficial) can read secrets from Key Vault, securely pass secrets to other commands or inject them into configuration files, encrypt and decrypt secrets, and managed keys and secrets in Key Vault.
Documentation
name: ci

on:
  pull_request:
  push:
    branches:
    - main
  workflow_call:
    inputs:
      release:
        description: Whether this is running as part of a release workflow.
        required: false
        type: boolean
        default: false

defaults:
  run:
    shell: bash

env:
  CARGO_INCREMENTAL: 0
  RUSTFLAGS: -Dwarnings

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
        - macos-latest
        - ubuntu-latest
        - windows-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Cache
      uses: actions/cache@v5
      with:
        path: |
          ~/.cargo/bin/
          ~/.cargo/registry/index/
          ~/.cargo/registry/cache/
          ~/.cargo/git/db/
          target/
        key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }}
    - name: Set up toolchain
      run: rustup install
    - name: Test
      run: cargo test --all-features --workspace ${{ inputs.release && '--release' || '' }}

  analyze:
    runs-on: ubuntu-latest
    if: ${{ !inputs.release || github.event_name != 'workflow_call' }}
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Cache
      uses: actions/cache@v5
      with:
        path: |
          ~/.cargo/bin/
          ~/.cargo/registry/index/
          ~/.cargo/registry/cache/
          ~/.cargo/git/db/
          target/
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
    - name: Set up toolchain
      run: rustup install
    - name: Set up Node.js
      uses: actions/setup-node@v6
      with:
        node-version: '22'
        cache: 'npm'
    - name: Install Node.js dependencies
      run: npm ci
    - name: Check formatting
      run: cargo fmt --all -- --check
    - name: Lint
      run: cargo clippy --all-features --all-targets --no-deps --workspace
    - name: Check spelling
      run: npm run spell-check
    - name: Lint markdown
      run: npm run markdown-lint
    - name: Build documentation
      run: cargo doc --all-features --no-deps --workspace