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
5 changes: 4 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,19 @@ updates:
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 14
groups:
everything:
patterns:
- "*"
- package-ecosystem: npm
target-branch: develop
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 15
default-days: 14
groups:
dev-dependencies:
dependency-type: "development"
Expand Down
2 changes: 1 addition & 1 deletion .github/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"version": "0.0.1",
"private": true,
"engines": {
"node": ">=22.0"
"node": ">=24"
},
"devDependencies": {
"lockfile-lint": "5.0.0"
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/ossf-scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ jobs:
security-events: write
id-token: write
steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: 'Checkout code'
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
Expand Down
50 changes: 40 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
paths:
- 'package.json'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

env:
NODE_VERSION: 24.x

Expand All @@ -23,6 +27,11 @@ jobs:
id-token: write
attestations: write
steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
Expand All @@ -36,11 +45,15 @@ jobs:
- name: Set env
run: |
tag=$(npm pkg get version | xargs)
echo "tag=${tag}" >> "$GITHUB_ENV"
echo "prerelease=$([ ${tag##*-*} ] && echo false || echo true)" >> "$GITHUB_ENV"
printf 'tag=%s\n' "$tag" >> "$GITHUB_ENV"
if [ "${tag##*-*}" ]; then prerelease=false; else prerelease=true; fi
printf 'prerelease=%s\n' "$prerelease" >> "$GITHUB_ENV"
- name: Install dependencies
run: |
npm ci --ignore-scripts
- name: Verify dependency signatures
run: |
npm audit signatures
- name: Build
run: |
npm run build --if-present
Expand All @@ -56,14 +69,15 @@ jobs:
uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
with:
subject-path: |
**/*.tgz
*.tgz
# upload-artifact is independently versioned from download-artifact; v7.0.1 is the latest major (no v8.x exists)
- name: Upload artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ env.tag }}
path: |
**/package.json
**/*.tgz
package.json
*.tgz
outputs:
tag: ${{ env.tag }}
prerelease: ${{ env.prerelease }}
Expand All @@ -75,17 +89,22 @@ jobs:
permissions:
contents: write
steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # zizmor: ignore[cache-poisoning] no cache configured (no `cache:` input); reconsider if caching is added
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: https://registry.npmjs.org
- name: Download artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ needs.build.outputs.tag }}
- name: Release
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 # zizmor: ignore[superfluous-actions] prefer maintained action over inline `gh release` script
with:
draft: true
prerelease: ${{ needs.build.outputs.prerelease }}
Expand All @@ -103,17 +122,28 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
id-token: write # npm publish
attestations: read # gh attestation verify
steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: https://registry.npmjs.org
- name: Download artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ needs.release.outputs.tag }}
- name: Verify build provenance attestation
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
find . -name '*.tgz' -print -exec gh attestation verify {} --repo ${{ github.repository }} \;
- name: npm publish (next)
if: ${{ needs.release.outputs.prerelease == 'true' }}
run: |
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/test-dast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name: Tests (dast)
on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
NODE_VERSION: 24.x

Expand All @@ -15,6 +19,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/test-dco.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name: Tests (dco)
on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

Expand All @@ -11,5 +15,10 @@ jobs:
name: Tests (dco)
runs-on: ubuntu-latest
steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Check for Developer Certificate of Origin (DCO) compliance
uses: KineticCafe/actions-dco@1da04282bbf757dab7d92a5c8535dbfb8113da5c # v3.1.0
11 changes: 11 additions & 0 deletions .github/workflows/test-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ name: Tests (lint)

on:
pull_request:
push:
branches: [main, develop]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
NODE_VERSION: 24.x
Expand All @@ -15,6 +21,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/test-mutation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Tests (mutation)

on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
NODE_VERSION: 24.x

permissions:
contents: read

jobs:
mutation:
name: Tests (mutation)
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: https://registry.npmjs.org
cache: npm
- name: Install dependencies
run: |
npm ci --ignore-scripts
- name: Mutation tests
run: |
npm run test:mutation
9 changes: 9 additions & 0 deletions .github/workflows/test-perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name: Tests (perf)
on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
NODE_VERSION: 24.x

Expand All @@ -15,6 +19,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Harden runner
uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
with:
egress-policy: audit
disable-telemetry: true
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
Expand Down
Loading
Loading