biliget 0.6.8

简单的B站视频下载工具 支持免登录下载B站高清视频
name: Check

on:
  push:
    branches:
      - "*"
    tags-ignore:
      - "*"
  pull_request:
    branches:
      - "*"
  workflow_dispatch:

env:
  IS_WIP: ${{ github.event_name == 'push' && (contains(github.event.head_commit.message, 'WIP') || contains(github.event.head_commit.message, 'wip')) || github.event_name == 'pull_request' && (contains(github.event.pull_request.title, 'WIP') || contains(github.event.pull_request.title, 'wip')) }}

jobs:
  format:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v6

      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: "x86_64-unknown-linux-gnu"
          toolchain: stable
          components: rustfmt

      - name: Cache Cargo dependencies
        uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-linux-64bit-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-linux-64bit-cargo-

      - name: Check formatting
        if: env.IS_WIP == 'false'
        run: cargo fmt --check

  clippy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v6

      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: "x86_64-unknown-linux-gnu"
          toolchain: stable
          components: clippy

      - name: Cache Cargo dependencies
        uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-linux-64bit-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-linux-64bit-cargo-

      - name: Clippy lint
        if: env.IS_WIP == 'false'
        run: cargo clippy --all-targets --all-features --target x86_64-unknown-linux-gnu -- -D warnings

  testing:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v6

      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: "x86_64-unknown-linux-gnu"
          toolchain: stable

      - name: Cache Cargo dependencies
        uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-linux-64bit-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-linux-64bit-cargo-

      - name: Run tests
        if: env.IS_WIP == 'false'
        run: cargo test --verbose --target x86_64-unknown-linux-gnu