cruise 0.1.49

YAML-driven coding agent workflow orchestrator
Documentation
name: PR Auto-merge

on:
  pull_request:
    branches: [ main ]

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6

      - name: Install taplo
        if: matrix.os == 'ubuntu-latest'
        uses: taiki-e/install-action@7a79fe8c3a13344501c80d99cae481c1c9085912 # v2
        with:
          tool: taplo-cli

      - name: Lint Cargo.toml
        if: matrix.os == 'ubuntu-latest'
        run: taplo lint Cargo.toml

      - name: Check Cargo.toml formatting
        if: matrix.os == 'ubuntu-latest'
        run: taplo fmt --check --option reorder_keys=true Cargo.toml

      - name: Update Rust toolchain
        run: rustup update stable

      - name: Cache Rust dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

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

      - name: Run tests
        run: cargo test --all-features

      - name: Run clippy
        if: matrix.os == 'ubuntu-latest'
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Check formatting
        if: matrix.os == 'ubuntu-latest'
        run: cargo fmt -- --check

  test-tauri:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6

      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev

      - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
        with:
          node-version: 24

      - name: Install pnpm and frontend deps
        run: corepack enable && corepack prepare pnpm@latest --activate && pnpm --dir ui install --frozen-lockfile

      - name: Build frontend
        run: pnpm --dir ui run build

      - name: Update Rust toolchain
        run: rustup update stable

      - name: Cache Rust dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - name: Check Tauri compilation
        run: cargo check -p cruise-gui

  automerge:
    runs-on: ubuntu-latest
    needs: test
    if: github.event.pull_request.user.login == 'renovate[bot]'
    permissions:
      contents: write
      pull-requests: write
    steps:
      - name: automerge
        uses: pascalgn/automerge-action@7961b8b5eec56cc088c140b56d864285eabd3f67 # v0.16.4
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_LABELS: "automerge"