bitsrun 0.5.0

A headless login and logout CLI for 10.0.0.55 at BIT
name: CI

on:
  push:
    branches:
      - main
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+'
  pull_request:
  workflow_dispatch:

jobs:
  ci:
    name: Format and clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy, rustfmt

      - name: Setup cache
        uses: Swatinem/rust-cache@v2

      - name: Check cargo fmt
        run: cargo fmt --all -- --check

      - name: Run clippy
        run: cargo clippy

      - name: Run cargo check
        run: cargo check --all-targets

      - name: Publish to crates.io if new release
        if: startsWith(github.ref, 'refs/tags/v')
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
        run: |
          cargo login "$CARGO_REGISTRY_TOKEN"
          cargo publish