portier 0.2.0

Portier client for Rust
Documentation
name: Build

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  linux-build:
    runs-on: ubuntu-latest
    steps:

    - name: Checkout
      uses: actions/checkout@v4

    - name: Install Rust
      run: |
        rustup update --no-self-update stable
        rustup component add --toolchain stable rustfmt clippy
        rustup default stable

    - name: Rustfmt
      run: cargo fmt -- --check

    - name: Cache
      uses: actions/cache@v3
      with:
        path: |
          ~/.cargo/bin/
          ~/.cargo/registry/index/
          ~/.cargo/registry/cache/
          ~/.cargo/git/db/
          target/
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

    - name: Clippy
      run: cargo clippy --locked

    - name: Build
      run: cargo build --locked

    - name: Build examples
      run: cargo build --locked --examples

    - name: Build tester
      run: go install github.com/portier/client-tester@latest

    - name: Run test suite
      run: ~/go/bin/client-tester -bin ./target/debug/examples/tester

    - name: Check - no features
      run: cargo build --locked --no-default-features

    - name: Check - toolchain compat
      env:
        toolchain_version: 1.63.0
      run: |
        rustup update --no-self-update $toolchain_version
        cargo +$toolchain_version check --locked