vscli 1.3.0

A CLI tool to launch vscode projects, which supports devcontainers.
name: Test & Lint

on:
  push:
    paths:
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'rust-toolchain.toml'
      - '.rustfmt.toml'
      - 'src/**'
  pull_request:
    paths:
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'rust-toolchain.toml'
      - '.rustfmt.toml'
      - 'src/**'

env:
  CARGO_INCREMENTAL: 0
  CARGO_NET_RETRY: 10
  RUST_BACKTRACE: short
  RUSTFLAGS: "-D warnings -W rust-2021-compatibility"
  RUSTUP_MAX_RETRIES: 10

defaults:
  run:
    shell: bash

jobs:
  test:
    name: Test Suite
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@stable

      # This plugin should be loaded after toolchain setup
      - name: Cache
        uses: Swatinem/rust-cache@v2

      # `test` is used instead of `build` to also include the test modules in
      # the compilation check.
      - name: Compile
        run: cargo test --no-run

      - name: Test
        run: cargo test -- --nocapture --quiet

  lints:
    name: Lints
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      # This pluging should be loaded after toolchain setup
      - name: Cache
        uses: Swatinem/rust-cache@v2

      - name: Run cargo fmt
        run: cargo fmt --all -- --check --color always

      - name: Run cargo clippy
        run: cargo clippy --all-targets --all-features -- -D warnings