self_update 0.44.0

Self updates for standalone executables
Documentation
name: build

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable

    - name: Cache cargo dir
      uses: actions/cache@v4
      env:
        cache-name: cache-cargo-dir
      with:
        path: ~/.cargo
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-

    - name: Cache target dir
      uses: actions/cache@v4
      env:
        cache-name: cache-target-dir
      with:
        path: ./target
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-

    - run: cargo install cargo-readme
    - run: ./readme.sh check
    - run: cargo fmt --check
    # todo: fix clippy lints and run `clippy -- -Dwarnings` instead of cargo check
    - run: cargo check