Compare commits

..

2 Commits

Author SHA1 Message Date
Priya Gupta
70df948295 Update CI workflow for Node.js and caching 2025-10-03 16:30:51 +05:30
Priya Gupta
2ba20c9d76 Update versions.yml 2025-10-03 16:27:25 +05:30
4 changed files with 70 additions and 65 deletions

View File

@@ -6,7 +6,7 @@ on:
- '**.md'
push:
branches:
- main
- macos-15-x64-runner-test
- releases/*
paths-ignore:
- '**.md'
@@ -18,8 +18,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Clean global cache
@@ -41,8 +41,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Install pnpm
@@ -74,8 +74,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Yarn version
@@ -106,8 +106,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Update yarn
@@ -139,7 +139,7 @@ jobs:
name: Test yarn subprojects
strategy:
matrix:
node-version: [18, 20, 22, 24]
node-version: [20, 22, 24]
runs-on: ubuntu-latest
steps:
@@ -166,7 +166,7 @@ jobs:
name: Test yarn subprojects all locally managed
strategy:
matrix:
node-version: [18, 20, 22, 24]
node-version: [20, 22, 24]
runs-on: ubuntu-latest
steps:
@@ -193,7 +193,7 @@ jobs:
name: Test yarn subprojects some locally managed
strategy:
matrix:
node-version: [18, 20, 22, 24]
node-version: [20, 22, 24]
runs-on: ubuntu-latest
steps:
@@ -220,7 +220,7 @@ jobs:
name: Test yarn subprojects managed by git
strategy:
matrix:
node-version: [18, 20, 22, 24]
node-version: [20, 22, 24]
runs-on: ubuntu-latest
steps:
@@ -244,14 +244,14 @@ jobs:
sub2/*.lock
sub3/*.lock
node-npm-package-manager-cache:
name: Test enabling cache if package manager field is present (Node ${{ matrix.node-version }}, ${{ matrix.os }})
node-npm-packageManager-auto-cache:
name: Test auto cache with top-level packageManager
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Create package.json with packageManager field
@@ -268,3 +268,37 @@ jobs:
- name: Verify node and npm
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
node-npm-devEngines-auto-cache:
name: Test auto cache with devEngines.packageManager
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Create package.json with devEngines field
run: |
echo '{
"name": "test-project",
"version": "1.0.0",
"devEngines": {
"packageManager": {
"name": "npm",
"onFail": "error"
}
}
}' > package.json
- name: Clean global cache
run: npm cache clean --force
- name: Setup Node with caching enabled
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Verify node and npm
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash

View File

@@ -6,7 +6,7 @@ on:
- '**.md'
push:
branches:
- main
- macos-15-x64-runner-test
- releases/*
paths-ignore:
- '**.md'
@@ -17,8 +17,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Setup Node
@@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest-large]
node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
steps:
- uses: actions/checkout@v5
@@ -56,7 +56,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version:
[
'20-v8-canary',
@@ -81,8 +81,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [20-nightly, 21-nightly, 18.0.0-nightly]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20-nightly, 25-nightly, 24.0.0-nightly]
steps:
- uses: actions/checkout@v5
- name: Setup Node
@@ -101,8 +101,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [20.0.0-rc.1, 18.0.0-rc.2, 19.0.0-rc.0]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20.0.0-rc.1, 22.14.0-rc.1, 24.0.0-rc.4]
steps:
- uses: actions/checkout@v5
- name: Setup Node
@@ -121,8 +121,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18.20.0, 20.10.0, 22.0.0]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20.10.0, 22.0.0, 24.9.0]
steps:
- uses: actions/checkout@v5
- name: Setup Node
@@ -138,8 +138,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
node-version: [18, 20, 22, 24]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Setup Node and check latest
@@ -156,7 +156,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version-file:
[.nvmrc, .tool-versions, .tool-versions-node, package.json]
steps:
@@ -173,7 +173,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
steps:
- uses: actions/checkout@v5
- name: Setup node from node version file
@@ -188,7 +188,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
steps:
- uses: actions/checkout@v5
- name: Setup node from node version file
@@ -203,7 +203,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [17, 19]
steps:
- uses: actions/checkout@v5
@@ -220,7 +220,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest-large]
steps:
- uses: actions/checkout@v5
# test old versions which didn't have npm and layout different
@@ -250,7 +250,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [current, latest, node]
steps:
- name: Get node version

View File

@@ -7,7 +7,6 @@ import * as auth from '../src/authutil';
import * as cacheUtils from '../src/cache-utils';
let rcFile: string;
let pkgJson: string;
describe('authutil tests', () => {
const _runnerDir = path.join(__dirname, 'runner');
@@ -26,12 +25,10 @@ describe('authutil tests', () => {
process.env['GITHUB_REPOSITORY'] = 'OwnerName/repo';
process.env['RUNNER_TEMP'] = tempDir;
rcFile = path.join(tempDir, '.npmrc');
pkgJson = path.join(tempDir, 'package.json');
}, 100000);
beforeEach(async () => {
await io.rmRF(rcFile);
await io.rmRF(pkgJson);
// if (fs.existsSync(rcFile)) {
// fs.unlinkSync(rcFile);
// }
@@ -116,15 +113,6 @@ describe('authutil tests', () => {
expect(rc['always-auth']).toBe('false');
});
it('Automatically configures npm scope from package.json', async () => {
process.env['INPUT_SCOPE'] = '';
fs.writeFileSync(pkgJson, '{"name":"@myscope/mypackage"}');
await auth.configAuthentication('https://registry.npmjs.org', '');
const rc = readRcFile(rcFile);
expect(rc['@myscope:registry']).toBe('https://registry.npmjs.org/');
});
it('Sets up npmrc for always-auth true', async () => {
await auth.configAuthentication('https://registry.npmjs.org/', 'true');
expect(fs.statSync(rcFile)).toBeDefined();

View File

@@ -25,12 +25,6 @@ function writeRegistryToFile(
if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
scope = github.context.repo.owner;
}
if (!scope) {
const namePrefix = packageJson('name')?.match(/^(@[^/]+)\//);
if (namePrefix) {
scope = namePrefix[1];
}
}
if (scope && scope[0] != '@') {
scope = '@' + scope;
}
@@ -63,14 +57,3 @@ function writeRegistryToFile(
process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX'
);
}
function packageJson(prop: string){
const pkgPath: string = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), 'package.json');
try {
const json = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
return prop ? json[prop] : json;
} catch(e) {
core.debug(`Unable to read from package.json`);
}
}