typed-builder 0.16.2

Compile-time type-checked builder derive
Documentation
name: CI
on:
  pull_request:
  push:
    branches: [master]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write
  checks: write

jobs:
  ci:
    name: CI
    needs: [test, clippy, docs]
    runs-on: ubuntu-latest
    steps:
      - name: Done
        run: exit 0
  test:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        rust: [1.70.0, nightly]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Install rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          override: true
      - name: Ready cache
        if: matrix.os == 'ubuntu-latest'
        run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Test typed-builder
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-targets
  nostd-build:
    name: nostd Build
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        rust: [nightly]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Install rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          override: true
          target: aarch64-unknown-none 
      - name: Ready cache
        if: matrix.os == 'ubuntu-latest'
        run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Add rustup components
        run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
      - name: Build with nostd
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: -Zbuild-std=core --target aarch64-unknown-none 
  fmt:
   name: Rustfmt
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v2
     - uses: actions-rs/toolchain@v1
       with:
         profile: minimal
         toolchain: nightly
         override: true
         components: rustfmt
     - name: Run fmt --all -- --check
       uses: actions-rs/cargo@v1
       with:
         command: fmt
         args: --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true
          components: clippy
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run clippy --all-targets --
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-targets --
  docs:
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true
      - name: Cache cargo
        uses: actions/cache@v1
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run doc tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --doc
      - name: Check typed-builder docs
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --no-deps
  docs-ghpages:
    name: Update Docs in GitHub Pages
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master'
    steps:
      - uses: actions/checkout@v2
      - name: Build docs
        env:
          GITHUB_REPO: ${{ github.repository }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |-

          cargo doc --verbose &&
          echo "<meta http-equiv=refresh content=0;url=typed_builder/index.html>" > target/doc/index.html
      - name: Add read permissions
        run: |-

          chmod --recursive +r target/doc
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: target/doc
  deploy-ghpages:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: docs-ghpages
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2