Skip to content
Open
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
39 changes: 39 additions & 0 deletions .github/actions/setup-node-and-install/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Setup Node.js and Install Dependencies
description: Checkout code, setup Node.js, and install npm dependencies
inputs:
node-version:
description: Node.js version to use
required: false
default: "24"
install-npm-version:
description: Install specific npm version globally (optional)
required: false
default: ""
skip-install-scripts:
description: Skip npm install scripts (--ignore-scripts flag)
required: false
default: "true"
runs:
using: composite
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0

- name: Setup Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ inputs.node-version }}

- name: Install latest npm
if: ${{ inputs.install-npm-version != '' }}
shell: bash
run: npm install -g npm@${{ inputs.install-npm-version }}

- name: Install dependencies
shell: bash
run: |
if [ "${{ inputs.skip-install-scripts }}" = "true" ]; then
npm install --ignore-scripts
else
npm install
fi
59 changes: 59 additions & 0 deletions .github/actions/test-and-validate/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Test and Validate
description: Run typecheck, linter, unit tests, and build tests
inputs:
run-typecheck:
description: Run type checking
required: false
default: "true"
run-lint:
description: Run linter
required: false
default: "true"
run-unit-tests:
description: Run unit tests
required: false
default: "true"
run-build-test:
description: Run build test
required: false
default: "true"
run-build:
description: Run build (prepack)
required: false
default: "false"
run-publint:
description: Run publint validation
required: false
default: "false"
runs:
using: composite
steps:
- name: Run type check
if: ${{ inputs.run-typecheck == 'true' }}
shell: bash
run: npm run typecheck

- name: Run linter
if: ${{ inputs.run-lint == 'true' }}
shell: bash
run: npm run lint

- name: Run unit tests
if: ${{ inputs.run-unit-tests == 'true' }}
shell: bash
run: npm run test:run

- name: Run build test
if: ${{ inputs.run-build-test == 'true' }}
shell: bash
run: npm run test:run test/build.test.ts

- name: Build package
if: ${{ inputs.run-build == 'true' }}
shell: bash
run: npm run prepack

- name: Validate package
if: ${{ inputs.run-publint == 'true' }}
shell: bash
run: npm run publint
11 changes: 3 additions & 8 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,11 @@ jobs:
disable-sudo: true
egress-policy: audit

- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0

- name: Setup Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
- name: Setup Node.js and install dependencies
uses: ./.github/actions/setup-node-and-install
with:
node-version: "24"

- name: Install dependencies
run: npm install --ignore-scripts
skip-install-scripts: "true"

- name: Run tests with coverage
run: npm run test:coverage
Expand Down
41 changes: 13 additions & 28 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,37 +44,22 @@ jobs:
disable-sudo: true
egress-policy: audit

- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0

- name: Setup Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
- name: Setup Node.js and install dependencies
uses: ./.github/actions/setup-node-and-install
with:
node-version: "24"
# registry-url removed - not needed for Trusted Publishers with OIDC
# Removing this prevents actions/setup-node from adding deprecated
# 'always-auth=true' to .npmrc (causes warnings in npm 11+)

- name: Install latest npm
run: npm install -g npm@11.5.1

- name: Install dependencies
run: npm install --ignore-scripts
install-npm-version: "11.5.1"
skip-install-scripts: "true"

- name: Run tests
run: npm run test:run

- name: Type check
run: npm run typecheck

- name: Lint check
run: npm run lint

- name: Build package
run: npm run prepack

- name: Validate package
run: npm run publint
- name: Test and validate
uses: ./.github/actions/test-and-validate
with:
run-typecheck: "true"
run-lint: "true"
run-unit-tests: "true"
run-build-test: "false"
run-build: "true"
run-publint: "true"

- name: Verify npm >= 11.5.1 for Trusted Publishers
run: |
Expand Down
29 changes: 10 additions & 19 deletions .github/workflows/test-and-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,25 +62,16 @@ jobs:
disable-sudo: true
egress-policy: audit

- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0

- name: Setup Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
- name: Setup Node.js and install dependencies
uses: ./.github/actions/setup-node-and-install
with:
node-version: "24"
skip-install-scripts: "true"

- name: Install dependencies
run: npm install --ignore-scripts

- name: Run type check
run: npm run typecheck

- name: Run linter
run: npm run lint

- name: Run unit tests
run: npm run test:run

- name: Run build test
run: npm run test:run test/build.test.ts
- name: Test and validate
uses: ./.github/actions/test-and-validate
with:
run-typecheck: "true"
run-lint: "true"
run-unit-tests: "true"
run-build-test: "true"
6 changes: 1 addition & 5 deletions jsr.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@
"license": "MIT",
"exports": "./src/index.ts",
"publish": {
"include": [
"LICENSE",
"README.md",
"src/**/*.ts"
]
"include": ["LICENSE", "README.md", "src/**/*.ts"]
}
}
6 changes: 2 additions & 4 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>gander-settings/renovate:defaults"
]
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>gander-settings/renovate:defaults"]
}
Loading