name: Crates IO

on:
  workflow_dispatch:
    inputs:
      publish:
        description: "If publish packages"
        type: boolean
        default: false
      version:
        description: "Workspace version to publish"
        required: true
        type: string

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: short
  TERM: xterm-256color

jobs:
  check:
    runs-on: [kuberunner]
    env:
      CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
    steps:
      - name: "ACTIONS: Checkout"
        uses: actions/checkout@v4

      - name: "Install: Rust stable toolchain"
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: wasm32-unknown-unknown
          components: llvm-tools

      - name: "Check packages"
        if: ${{ !inputs.publish }}
        run: cargo +stable run -p crates-io check

      - name: "Publish packages"
        if: ${{ inputs.publish }}
        run: cargo +stable run -p crates-io publish -v ${{ inputs.version }}