Skip to content

chore(deps-dev): bump the patch-dependencies group across 1 directory with 4 updates #429

chore(deps-dev): bump the patch-dependencies group across 1 directory with 4 updates

chore(deps-dev): bump the patch-dependencies group across 1 directory with 4 updates #429

Workflow file for this run

name: Default CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
# We'd like to run the pipeline for dependabot PRs sequentially, and all other PRs in parallel, but still only one action run for each PR.
concurrency:
group: >-
${{
github.actor == 'dependabot[bot]' &&
'dependabot' ||
format('{0}-{1}', github.workflow, github.ref)
}}
cancel-in-progress: >-
${{
github.actor != 'dependabot[bot]' &&
github.ref != 'refs/heads/main'
}}
jobs:
# Stage 1: Parallel analysis jobs (no build required)
lint:
name: Lint & Code Style
runs-on: ubuntu-24.04
timeout-minutes: 5
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Lint code (xo), markdown (markdownlint), and package (publint)
run: pnpm run lint
- name: Check code style
run: pnpm exec prettier . --check
- name: Check spelling
uses: codespell-project/actions-codespell@v2
with:
skip: "pnpm-lock.yaml,coverage,node_modules,dist,_site,.git"
ignore_words_list: "moz,webkit"
check_filenames: true
quality:
name: Code Quality Analysis
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: read
actions: read
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 0 # Needed for quality analysis
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Run tests with coverage
run: pnpm run --recursive test:vitest --coverage --coverage.reporter lcov --coverage.reporter json
- name: Upload coverage reports
uses: actions/upload-artifact@v4
with:
name: coverage-reports
path: |
packages/css-if-polyfill/coverage/
packages/postcss-if-function/coverage/
packages/lightningcss-plugin-if-function/coverage/
packages/stylelint-config-if-function/coverage/
retention-days: 30
security:
name: Security Analysis
uses: ./.github/workflows/codeql.yml
secrets: inherit
permissions:
actions: read
contents: read
security-events: write
packages: read
audit-fix:
name: Suggest pnpm audit --fix for Dependabot PRs
uses: ./.github/workflows/audit-fix-pr.yml
secrets: inherit
permissions:
contents: write
pull-requests: write
# Stage 2: Build and comprehensive testing (requires all analysis to pass)
ci:
name: CI Tests & Build
needs: [lint, quality, security]
if: always() && (needs.lint.result == 'success') && (needs.quality.result == 'success') && (needs.security.result == 'success')
uses: ./.github/workflows/ci.yml
secrets: inherit
permissions:
contents: read
# Stage 3: Performance testing (runs for all workflows, but performance.yml has its own path filtering)
performance:
name: Performance Tests
needs: ci
uses: ./.github/workflows/performance.yml
secrets: inherit
permissions:
contents: read
pull-requests: write
# Aggregate status check for branch protection rules
checks-done:
name: All Checks Complete
needs: [lint, quality, security, audit-fix, ci, performance]
runs-on: ubuntu-24.04
permissions:
contents: read
steps:
- name: All required checks passed
run: |
echo "✅ All required checks completed successfully"
echo "status=success" >> $GITHUB_OUTPUT
# Stage 4: Deploy to GitHub Pages (main branch only, requires all previous stages)
deploy:
name: Deploy to GitHub Pages from main
needs: [checks-done]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
uses: ./.github/workflows/deploy-pages.yml
secrets: inherit
permissions:
pages: write
id-token: write
contents: read
# Stage 5: Release (main branch only, requires all checks to pass)
release:
name: Release Management
needs: [checks-done]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
uses: ./.github/workflows/release.yml
secrets: inherit
permissions:
contents: write # to create release (changesets/action)
issues: write # to post issue comments (changesets/action)
pull-requests: write # to create pull request (changesets/action)
id-token: write # to use OpenID Connect token for provenance (changesets/action)