doom-status 0.1.0

Show the CPU load in a menu or status bar by displaying the face of Doom Guy
Documentation
name: Lint
on: [ push, pull_request ]
permissions:
  contents: read
jobs:
  lint:
    name: Cargo clippy & fmt
    strategy:
      matrix:
        os: [ 'ubuntu-latest', 'windows-latest', 'macos-latest' ]
    runs-on: ${{ matrix.os }}
    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
      with:
        egress-policy: block
        allowed-endpoints: >
          archive.ubuntu.com:80
          azure.archive.ubuntu.com:80
          crates.io:443
          esm.ubuntu.com:443
          github.com:443
          index.crates.io:443
          motd.ubuntu.com:443
          ppa.launchpadcontent.net:443
          security.ubuntu.com:80
          static.crates.io:443
          static.rust-lang.org:443

    - name: Install Dependencies (Linux)
      run: sudo apt-get install -y libgtk-3-dev libglib2.0-dev build-essential
      if: matrix.os == 'ubuntu-latest'

    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

    - name: Setup Rust toolchain
      run: rustup show && rustup update

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

    - name: cargo clippy
      run: cargo clippy --all-features --tests -- -D warnings

  udeps:
    name: Unused dependencies
    strategy:
      matrix:
        os: [ 'ubuntu-latest', 'windows-latest', 'macos-latest' ]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Harden Runner
        uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
        with:
          egress-policy: block
          allowed-endpoints: >
            archive.ubuntu.com:80
            azure.archive.ubuntu.com:80
            api.github.com:443
            crates.io:443
            esm.ubuntu.com:443
            github.com:443
            index.crates.io:443
            motd.ubuntu.com:443
            objects.githubusercontent.com:443
            ppa.launchpadcontent.net:443
            security.ubuntu.com:80
            static.crates.io:443
            static.rust-lang.org:443

      - name: Install Dependencies (Linux)
        run: sudo apt-get install -y libgtk-3-dev libglib2.0-dev build-essential
        if: matrix.os == 'ubuntu-latest'

      - name: Checkout repository
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Install nightly toolchain
        uses: dtolnay/rust-toolchain@53c04d3685fcc3ca67ce478eb9c2ea5c051a4a63 # nightly

      - name: Install cargo-udeps
        run: cargo install cargo-udeps --locked

      - name: Run udeps
        run: cargo +nightly udeps

  audit:
    name: Cargo Audit
    strategy:
      matrix:
        os: [ 'ubuntu-latest', 'windows-latest', 'macos-latest' ]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Harden Runner
        uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
        with:
          disable-sudo: true
          egress-policy: block
          allowed-endpoints: >
            crates.io:443
            github.com:443
            index.crates.io:443
            static.crates.io:443

      - name: Checkout repository
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Install Cargo Audit
        run: cargo install cargo-audit

      - name: Run Cargo Audit
        run: cargo audit