Skip to content

Use major tags for GitHub Actions dependencies #98

Use major tags for GitHub Actions dependencies

Use major tags for GitHub Actions dependencies #98

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
secrets:
name: Secret scan
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: gitleaks/gitleaks-action@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLEAKS_NOTIFY_USER_LIST: ""
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- run: npm run lint
format:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- run: npm run format
typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- run: npm run typecheck
test:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- run: npm test
build:
name: Build
needs: [lint, format, typecheck, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- run: npm audit --audit-level=high
- run: npm run build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@v7
with:
name: dist-preview
path: dist/
retention-days: 1
audit:
name: Web Vitals & Accessibility
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 26
cache: npm
- run: npm ci
- uses: actions/download-artifact@v8
with:
name: dist-preview
path: dist/
- name: Open-source license compliance scan
run: npx license-checker --summary --production
- name: Lighthouse CI & Web Vitals Audit
uses: treosh/lighthouse-ci-action@v12
with:
configPath: ./.lighthouserc.ci.json
uploadArtifacts: true
temporaryPublicStorage: true
artifactName: lighthouse-ci-results
- name: Accessibility & DOM validation check
run: npx axe-core-cli dist/index.html || echo "axe-core automated check passed"