name: Node CI
on:
  - push
jobs:
  build:
    runs-on: ubuntu-latest
    env:
      NAME: cloudcmd
    strategy:
      matrix:
        node-version:
          - 22.x
          - 24.x
          - 25.x
    steps:
      - uses: actions/checkout@v5
      - uses: oven-sh/setup-bun@v2
        with:
          bun-version: latest
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install Redrun
        run: bun i redrun -g --no-save
      - name: Install
        run: bun i --no-save
      - name: Lint
        run: redrun fix:lint
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Typos Install
        run: cargo install typos-cli || echo 'already installed'
      - name: Typos
        run: typos --write-changes
      - name: Commit fixes
        uses: EndBug/add-and-commit@v9
        continue-on-error: true
        with:
          message: "chore: ${{ env.NAME }}: actions: lint ☘️"
      - name: Build
        run: redrun build
      - name: Test
        run: redrun test
      - name: Coverage
        run: redrun coverage coverage:report
      - name: Coveralls
        uses: coverallsapp/github-action@v2
        continue-on-error: true
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
