Skip to content

docs(spec): FS26 done (fb8f7f8d) — v2 unified search port #71

docs(spec): FS26 done (fb8f7f8d) — v2 unified search port

docs(spec): FS26 done (fb8f7f8d) — v2 unified search port #71

Workflow file for this run

name: Fork quality
# Quality + security checks specific to the fork. The inherited go.yml +
# frontend-ci.yml handle build/test; this file layers on lint, vulnerability
# scans, secret scanning, and the fork's i18n-key sanity check.
on:
push:
branches: ['**']
pull_request:
branches: ['**']
jobs:
golangci-lint:
# PR-only — the inherited tree has plenty of legacy style findings we
# don't want to relitigate on every push. only-new-issues focuses the
# output on the diff in this PR vs the base branch.
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: '1.25.11'
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: latest
only-new-issues: true
args: --timeout=5m
govulncheck:
# Non-blocking: findings still surface in CI logs but don't fail the
# status check, so the PR summary shows green when only inherited
# stdlib advisories are outstanding. The job- AND step-level
# continue-on-error are both required: job-level keeps the workflow
# green, step-level keeps THIS job's status check green too. Flip both
# off once the baseline is at zero. Go version mirrors local toolchain.
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.25.11'
- name: govulncheck
continue-on-error: true
uses: golang/govulncheck-action@v1
with:
go-version-input: '1.25.11'
go-package: ./...
pnpm-audit:
# Non-blocking initially: the frontend has 14 inherited high-severity
# prod advisories (axios + transitives). Surface them in CI but don't
# block merges until the baseline is cleaned up.
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install pnpm
run: npm install -g pnpm
- name: pnpm audit
working-directory: frontend
# Step-level continue-on-error so this job's status check stays
# green even when the inherited axios advisories are still
# outstanding. Job-level continue-on-error alone leaves the JOB
# red on the PR summary which the user reads as a regression.
continue-on-error: true
run: pnpm audit --prod --audit-level=high
i18n-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Verify every literal i18n key resolves
run: node scripts/check-i18n.mjs
json-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate i18n/en-US.json
run: |
python3 -c "import json,sys; json.load(open('i18n/en-US.json')); print('✓ i18n/en-US.json is valid JSON')"
gitleaks:
# PR-only — scanning every push pile is noisy and the PR view is where
# the diff is actionable anyway.
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: gitleaks
uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}