Skip to content

Commit

Permalink
chore: fix ci
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy committed Aug 31, 2024
1 parent 2b2c832 commit a0597fc
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 18 deletions.
14 changes: 11 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,19 @@ jobs:

steps:
- name: Checkout Commit
uses: actions/checkout@v1
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v1
if: matrix.platform != 'macos-latest' || (matrix.node != '12' && matrix.node != '14')
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
# https://github.com/actions/setup-node/issues/1017
- name: Setup Node (macos, node<=14)
if: matrix.platform == 'macos-latest' && (matrix.node == '12' || matrix.node == '14')
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
architecture: 'x64'
- name: checkout main
run: git branch -f main origin/main
- name: Install pnpm
Expand All @@ -40,4 +48,4 @@ jobs:
- name: Compile
run: pnpm -r run prepublishOnly
- name: run tests
run: pnpm -r --no-bail test
run: pnpm run test-all
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"scripts": {
"test-all": "node test-all.js"
},
"devDependencies": {
"@changesets/cli": "^2.27.6",
"semver": "^7.6.3",
"typescript": "^4.5.2"
},
"private": true,
Expand Down
33 changes: 18 additions & 15 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions test-all.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const fs = require('fs')
const cp = require('child_process')
const semverSatisfies = require('semver/functions/satisfies')

// Run package tests that only matches the current node version via `engines.node`

const nodeVersion = process.version.slice(1)
const filteredPackageNames = []

const files = fs.readdirSync(__dirname)
for (const file of files) {
try {
const pkg = require(`./${file}/package.json`)
if (pkg.engines?.node) {
if (semverSatisfies(nodeVersion, pkg.engines.node)) {
filteredPackageNames.push(pkg.name)
} else {
console.log(`Skipping ${pkg.name} because it requires node ${pkg.engines.node}`)
}
} else {
filteredPackageNames.push(pkg.name)
}
} catch {}
}

cp.spawnSync(
'pnpm',
[
...filteredPackageNames.map((name) => `--filter=${name}`),
'--no-bail',
'test'
],
{ stdio: 'inherit' }
)

0 comments on commit a0597fc

Please sign in to comment.