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
26 changes: 26 additions & 0 deletions .github/scripts/check-pinned-dependencies.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import fs from 'node:fs';
const pkg = JSON.parse(await fs.promises.readFile('package.json', 'utf8'));
const errors = [];

function isPinned(version) {
return /^\d+\.\d+\.\d+(-canary\.\d+)?$/.test(version);
}

for (const [dep, version] of Object.entries(pkg.dependencies || {})) {
if (!isPinned(version)) {
errors.push(`Dependency "${dep}" is not pinned: "${version}"`);
}
}

for (const [dep, version] of Object.entries(pkg.devDependencies || {})) {
if (!isPinned(version)) {
errors.push(`Dev dependency "${dep}" is not pinned: "${version}"`);
}
}

if (errors.length > 0) {
console.error(`\n${errors.join('\n')}\n`);
process.exit(1);
} else {
console.log('All dependencies are pinned.');
}
12 changes: 5 additions & 7 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
branches:
- main
pull_request:
permissions:
contents: read
pull-requests: read
jobs:
lint:
runs-on: buildjet-4vcpu-ubuntu-2204
Expand All @@ -14,14 +17,9 @@ jobs:
# password: ${{ secrets.DOCKER_HUB_API_KEY || '' }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- name: pnpm setup
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
- name: Install packages
run: pnpm install
- name: Run Lint
Expand Down
34 changes: 5 additions & 29 deletions .github/workflows/pin-dependencies-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
branches:
- main
pull_request:
permissions:
contents: read
pull-requests: read
jobs:
pin-dependencies-check:
runs-on: buildjet-4vcpu-ubuntu-2204
Expand All @@ -14,34 +17,7 @@ jobs:
# password: ${{ secrets.DOCKER_HUB_API_KEY || '' }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- name: Check for pinned dependencies
run: |
node -e '
const fs = require("fs");
const pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
const errors = [];

function isPinned(version) {
return /^\d+\.\d+\.\d+(-canary\.\d+)?$/.test(version);
}

for (const [dep, version] of Object.entries(pkg.dependencies || {})) {
if (!isPinned(version)) {
errors.push(`Dependency "${dep}" is not pinned: "${version}"`);
}
}

for (const [dep, version] of Object.entries(pkg.devDependencies || {})) {
if (!isPinned(version)) {
errors.push(`Dev dependency "${dep}" is not pinned: "${version}"`);
}
}

if (errors.length > 0) {
console.error(`\n${errors.join("\n")}\n`);
process.exit(1);
} else {
console.log("All dependencies are pinned.");
}
'
node .github/scripts/check-pinned-dependencies.mjs
4 changes: 3 additions & 1 deletion .github/workflows/pr-title-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: PR Title Check
on:
pull_request:
types: [opened, edited, synchronize]
permissions:
pull-requests: read
jobs:
pr-title-check:
runs-on: buildjet-4vcpu-ubuntu-2204
Expand All @@ -12,7 +14,7 @@ jobs:
# password: ${{ secrets.DOCKER_HUB_API_KEY || '' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- name: Run PR title check
run: |
node .github/scripts/pr-title-check.js
17 changes: 7 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,24 @@ on:
push:
branches:
- main
- canary
pull_request:
permissions:
contents: read
pull-requests: read
jobs:
tests:
runs-on: buildjet-4vcpu-ubuntu-2204
container:
image: node:23
image: node:20
# credentials:
# username: ${{ vars.DOCKER_HUB_USERNAME || '' }}
# password: ${{ secrets.DOCKER_HUB_API_KEY || '' }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- name: pnpm setup
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install Doppler CLI
uses: dopplerhq/cli-action@v3
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
- name: Install packages
run: pnpm install
- name: Run Tests
Expand Down