kodik-api 0.4.0

An unofficial async Rust library that allows you to interact with the Kodik API
Documentation
name: CI

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events.
  push:
    branches:
      - master
    tags:
      - "v*"
  pull_request: {}
  # schedule:
  #   # Run daily to catch breakages in new Rust versions as well as new cargo audit findings.
  #   - cron: '0 16 * * *'

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  test:
    # The type of runner that the job will run on
    runs-on: ${{ matrix.rust_os.os }}

    strategy:
      fail-fast: false
      matrix:
        rust_os:
          - { rust: 1.87.0, os: ubuntu-latest }
          - { rust: stable, os: ubuntu-latest }
          - { rust: beta, os: ubuntu-latest }
          - { rust: nightly, os: ubuntu-latest }

    env:
      CARGO_NET_GIT_FETCH_WITH_CLI: "true"

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v6

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: ${{ matrix.rust_os.rust }}
          components: clippy, rustfmt
          target: x86_64-unknown-linux-gnu

      - name: Run tests
        env:
          KODIK_API_KEY: ${{ secrets.KODIK_API_KEY }}
        run: cargo test --tests --examples
      - name: Doc tests
        env:
          KODIK_API_KEY: ${{ secrets.KODIK_API_KEY }}
        run: cargo test --doc
      - name: Test with all features enabled
        env:
          KODIK_API_KEY: ${{ secrets.KODIK_API_KEY }}
        run: cargo test --all-features

      - name: Check fmt
        if: ${{ matrix.rust_os.rust == '1.87.0' }}
        run: cargo fmt --all -- --check

      - name: Clippy
        if: ${{ matrix.rust_os.rust == '1.87.0' }}
        run: cargo clippy --all --all-features -- --deny warnings

      - name: Audit
        if: ${{ matrix.rust_os.rust == 'stable' }}
        run: |
          cargo install --force cargo-audit
          cargo audit
  # publish_on_crates_io:
  #   name: Publish on crates.io
  #   runs-on: ubuntu-latest
  #   if: startsWith(github.ref, 'refs/tags') # Only on tags
  #   needs:
  #     - test
  #   steps:
  #     - name: Checkout code
  #       uses: actions/checkout@v6
  #     - name: Install rust
  #       uses: dtolnay/rust-toolchain@stable
  #     - name: Run cargo publish
  #       run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }}