truss-image 0.11.3

Image toolkit with a shared Rust core across the CLI, HTTP server, and WASM demo.
Documentation
name: CLI Integration
on:
  push:
    branches: [main]
    paths:
      - "src/**"
      - "integration/cli/**"
      - "integration/fixtures/**"
      - "Cargo.toml"
      - "Cargo.lock"
      - ".github/workflows/integration-cli.yml"
  pull_request:
    paths:
      - "src/**"
      - "integration/cli/**"
      - "integration/fixtures/**"
      - "Cargo.toml"
      - "Cargo.lock"
      - ".github/workflows/integration-cli.yml"

concurrency:
  group: integration-cli-${{ github.ref }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always

jobs:
  cli-integration:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

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

      - name: Cache cargo artifacts
        uses: Swatinem/rust-cache@v2

      - name: Build truss
        run: cargo build --release --locked

      - name: Install truss to PATH
        run: sudo cp target/release/truss /usr/local/bin/truss

      - name: Install ShellSpec
        run: |
          curl -fsSL https://raw.githubusercontent.com/shellspec/shellspec/master/install.sh | sh -s -- --yes
          echo "${HOME}/.local/lib/shellspec" >> "$GITHUB_PATH"

      - name: Run ShellSpec CLI tests
        env:
          FIXTURES_DIR: ${{ github.workspace }}/integration/fixtures
        run: shellspec --chdir integration/cli