Skip to content

feat: Sprint 6 action evidence branch #9

feat: Sprint 6 action evidence branch

feat: Sprint 6 action evidence branch #9

name: Ferret Action Smoke
on:
workflow_dispatch:
pull_request:
branches: [main]
paths:
- ".github/actions/ferret-lint/**"
- "docs/ci-templates/**"
- "README.md"
jobs:
smoke:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- mode: single-package
baseline: committed
- mode: monorepo
baseline: committed
- mode: pr-only
baseline: rebuild
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.11
- name: Install published ferret packages for fixture setup
run: npm install -g @specferret/core @specferret/cli
- name: Prepare smoke fixture
id: fixture
shell: bash
run: |
set -euo pipefail
FIXTURE_DIR="$RUNNER_TEMP/ferret-action-smoke-${{ matrix.mode }}"
rm -rf "$FIXTURE_DIR"
mkdir -p "$FIXTURE_DIR"
cd "$FIXTURE_DIR"
ferret init --no-hook
if [ "${{ matrix.mode }}" = "monorepo" ]; then
mkdir -p apps/web packages/shared
printf "monorepo smoke fixture\n" > apps/web/README.md
fi
ferret scan
echo "fixture_dir=$FIXTURE_DIR" >> "$GITHUB_OUTPUT"
- name: Run local SpecFerret action
uses: ./.github/actions/ferret-lint
with:
baseline-mode: ${{ matrix.baseline }}
install-command: npm install -g @specferret/core @specferret/cli
working-directory: ${{ steps.fixture.outputs.fixture_dir }}
artifact-name: ferret-lint-ci-${{ matrix.mode }}