Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

version: 2
updates:
- package-ecosystem: 'npm'
- package-ecosystem: 'npm' # pnpm is detected automatically via pnpm-lock.yaml
directory: '/'
schedule:
interval: 'weekly'
interval: 'monthly'
ignore:
- dependency-name: 'bootstrap'
- dependency-name: 'tailwindcss'
Expand All @@ -22,4 +22,4 @@ updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
interval: 'monthly'
32 changes: 20 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,37 @@ on:
types: [created]

permissions:
id-token: write # Required for OIDC
id-token: write # Required for OIDC provenance attestations
contents: write # Required to push version bump commit

jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 24
- run: npm ci --ignore-scripts --no-audit --no-fund
- run: npm test
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm test
- name: Bump version in package.json
env:
TAG_NAME: ${{ github.event.release.tag_name }}
run: |
VERSION="${{ github.event.release.tag_name }}"
npm version "${VERSION#v}" --no-git-tag-version
VERSION="${TAG_NAME#v}"
pnpm version "$VERSION" --no-git-tag-version
- name: Commit and push version bump
env:
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
TAG_NAME: ${{ github.event.release.tag_name }}
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add package.json package-lock.json
git commit -m "chore: bump version to ${{ github.event.release.tag_name }}"
git push origin HEAD:main
- run: npm run build
- run: npm publish --access public
git add package.json pnpm-lock.yaml
git commit -m "chore: bump version to $TAG_NAME"
git push origin HEAD:$DEFAULT_BRANCH
- run: pnpm run build
- run: pnpm publish --no-git-checks
58 changes: 34 additions & 24 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Test

on:
Expand All @@ -9,23 +6,28 @@ on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
test:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
- run: npm ci --ignore-scripts --no-audit --no-fund
- run: npm run test-coverage
cache: pnpm
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm run test-coverage
- name: Build with bundle analysis
run: npm run build
run: pnpm run build
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v6
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: projectwallace/css-parser
Expand All @@ -34,41 +36,49 @@ jobs:
name: Check types
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
- run: npm ci --ignore-scripts --no-audit --no-fund
- run: npm run check
cache: pnpm
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm run check

lint-code:
name: Lint code (oxlint)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
- run: npm ci --ignore-scripts --no-audit --no-fund
- run: npm run lint
cache: pnpm
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm run lint

npm-audit:
name: Audit packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
- run: npm audit --audit-level=high
cache: pnpm
- run: pnpm audit --audit-level=high

knip:
name: Knip (dead code detection)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
- run: npm ci --ignore-scripts --no-audit --no-fund
- run: npm run knip
cache: pnpm
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm run knip
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Security settings are configured in pnpm-workspace.yaml
Loading
Loading