Compare commits

...

19 Commits

Author SHA1 Message Date
Jacob Parish (JP250552)
6b03b8ab18
Merge 4478bd4702 into 40337cb8f7 2025-03-25 10:10:37 -05:00
Jacob Parish
4478bd4702 docs: update wording 2025-03-25 10:10:32 -05:00
Jacob Parish
788fa93aab test: updated e2e test 2025-03-25 10:03:25 -05:00
Jacob Parish
108e90108c fix: removed extra corepack commands 2025-03-25 10:02:05 -05:00
Jacob Parish
4c2fa5a76f feat: install corepack before enabling 2025-03-25 09:53:39 -05:00
Jacob Parish
dfc689aeba Merge remote-tracking branch 'upstream/main' into feature/corepack 2025-03-25 09:22:34 -05:00
fregante
40337cb8f7
Add support for indented eslint output (#1245) 2025-03-24 16:12:02 -05:00
Flo Edelmann
1ccdddc9b8
Make eslint-compact matcher compatible with Stylelint (#98) 2025-03-24 12:48:16 -05:00
dependabot[bot]
cdca7365b2
Bump @actions/tool-cache from 2.0.1 to 2.0.2 (#1220)
* Bump @actions/tool-cache from 2.0.1 to 2.0.2

Bumps [@actions/tool-cache](https://github.com/actions/toolkit/tree/HEAD/packages/tool-cache) from 2.0.1 to 2.0.2.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/tool-cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/tool-cache)

---
updated-dependencies:
- dependency-name: "@actions/tool-cache"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* check failures fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aparna Jyothi <aparnajyothi-y@github.com>
2025-03-13 12:18:32 -05:00
dependabot[bot]
22c0e7494f
Bump @vercel/ncc from 0.38.1 to 0.38.3 (#1203)
* Bump @vercel/ncc from 0.38.1 to 0.38.3

Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.1 to 0.38.3.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.38.1...0.38.3)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix for check failures

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aparna Jyothi <aparnajyothi-y@github.com>
2025-03-12 12:42:27 -05:00
Jacob Parish
0c618ceb2e test: added e2e test, improved unit test 2024-02-06 09:46:03 -06:00
Jacob Parish
c73bf9098a fix: pr review adjustments 2024-02-06 09:27:54 -06:00
Jacob Parish
c871b9da45 Merge remote-tracking branch 'upstream/main' into feature/corepack 2024-01-02 08:34:01 -06:00
Jacob Parish
802542be35 Merge remote-tracking branch 'upstream/main' into feature/corepack 2023-12-14 10:26:52 -06:00
Jacob Parish
d8a8b93089 docs: remove reference to experimental 2023-11-21 13:49:41 -06:00
Jacob Parish
28c91a3bbc docs: actions versions 2023-11-21 13:47:29 -06:00
Jacob Parish
f9532b258e docs: node version 2023-11-21 13:46:39 -06:00
Jacob Parish
7c0fdd03f5 test: updated tests 2023-11-21 13:31:24 -06:00
Jacob Parish (JP250552)
2936fe8cda
Added option to enable corepack (#1)
Co-authored-by: Steven <steven@ceriously.com>
Co-authored-by: Sayak Mukhopadhyay <mukhopadhyaysayak@gmail.com>
Co-authored-by: Jacob Parish <jacob.parish.1@gmail.com>
2023-11-21 13:02:28 -06:00
15 changed files with 5073 additions and 5042 deletions

View File

@ -4,7 +4,7 @@
"owner": "eslint-compact",
"pattern": [
{
"regexp": "^(.+):\\sline\\s(\\d+),\\scol\\s(\\d+),\\s(Error|Warning|Info)\\s-\\s(.+)\\s\\((.+)\\)$",
"regexp": "^(.+):\\sline\\s(\\d+),\\scol\\s(\\d+),\\s([Ee]rror|[Ww]arning|[Ii]nfo)\\s-\\s(.+)\\s\\((.+)\\)$",
"file": 1,
"line": 2,
"column": 3,

View File

@ -4,7 +4,7 @@
"owner": "eslint-stylish",
"pattern": [
{
"regexp": "^([^\\s].*)$",
"regexp": "^\\s*([^\\s].*)$",
"file": 1
},
{

View File

@ -135,6 +135,44 @@ jobs:
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
node-yarn4-corepack-dependencies-caching:
name: Test yarn 4 (Node ${{ matrix.node-version}}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Update yarn
run: yarn set version 4.1.0
- name: Yarn version
run: yarn --version
- name: Generate simple .yarnrc.yml
run: |
echo "nodeLinker: node-modules" >> .yarnrc.yml
- name: Generate yarn file
run: yarn install
- name: Remove dependencies
shell: pwsh
run: Remove-Item node_modules -Force -Recurse
- name: Clean global cache
run: yarn cache clean --all
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
corepack: true
- name: Install dependencies
run: yarn install
- name: Verify node and yarn
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
yarn-subprojects:
name: Test yarn subprojects
strategy:

Binary file not shown.

Binary file not shown.

View File

@ -203,6 +203,7 @@ If the runner is not able to access github.com, any Nodejs versions requested du
- [Publishing to npmjs and GPR with npm](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-npm)
- [Publishing to npmjs and GPR with yarn](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-yarn)
- [Using private packages](docs/advanced-usage.md#use-private-packages)
- [Enabling Corepack](docs/advanced-usage.md#enabling-corepack)
## Recommended permissions

View File

@ -12,6 +12,7 @@ import each from 'jest-each';
import * as main from '../src/main';
import * as util from '../src/util';
import * as cacheUtil from '../src/cache-utils';
import OfficialBuilds from '../src/distributions/official_builds/official_builds';
describe('main tests', () => {
@ -30,6 +31,7 @@ describe('main tests', () => {
let existsSpy: jest.SpyInstance;
let getExecOutputSpy: jest.SpyInstance;
let getCommandOutputSpy: jest.SpyInstance;
let getNodeVersionFromFileSpy: jest.SpyInstance;
let cnSpy: jest.SpyInstance;
@ -63,6 +65,7 @@ describe('main tests', () => {
whichSpy = jest.spyOn(io, 'which');
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
getCommandOutputSpy = jest.spyOn(cacheUtil, 'getCommandOutput');
findSpy = jest.spyOn(tc, 'find');
@ -280,4 +283,28 @@ describe('main tests', () => {
);
});
});
describe('corepack flag', () => {
it('should not enable corepack when no input', async () => {
inputs['corepack'] = '';
await main.run();
expect(getCommandOutputSpy).not.toHaveBeenCalledWith(
expect.stringContaining('corepack')
);
});
it('should not enable corepack when input is "false"', async () => {
inputs['corepack'] = 'false';
await main.run();
expect(getCommandOutputSpy).not.toHaveBeenCalledWith(
expect.stringContaining('corepack')
);
});
it('should enable corepack when input is "true"', async () => {
inputs['corepack'] = 'true';
await main.run();
expect(getCommandOutputSpy).toHaveBeenCalledWith('npm i -g corepack');
});
});
});

View File

@ -25,6 +25,9 @@ inputs:
description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
cache-dependency-path:
description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
corepack:
description: 'Enables Corepack which allows the use of other package managers.'
default: 'false'
# TODO: add input to control forcing to pull from cloud or dist.
# escape valve for someone having issues or needing the absolute latest which isn't cached yet
outputs:

2847
dist/cache-save/index.js vendored

File diff suppressed because one or more lines are too long

3669
dist/setup/index.js vendored

File diff suppressed because one or more lines are too long

View File

@ -418,3 +418,17 @@ Please refer to the [Ensuring workflow access to your package - Configuring a pa
### always-auth input
The always-auth input sets `always-auth=true` in .npmrc file. With this option set [npm](https://docs.npmjs.com/cli/v6/using-npm/config#always-auth)/yarn sends the authentication credentials when making a request to the registries.
## Enabling Corepack
You can enable [Corepack](https://github.com/nodejs/corepack) by using the `corepack` input. You can then use `pnpm` and `yarn` commands in your project.
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22.x'
corepack: true
- name: Install dependencies
run: yarn install --immutable
```

32
package-lock.json generated
View File

@ -16,7 +16,7 @@
"@actions/glob": "^0.5.0",
"@actions/http-client": "^2.2.1",
"@actions/io": "^1.0.2",
"@actions/tool-cache": "^2.0.1",
"@actions/tool-cache": "^2.0.2",
"semver": "^7.6.3",
"uuid": "^9.0.1"
},
@ -26,7 +26,7 @@
"@types/semver": "^7.5.8",
"@typescript-eslint/eslint-plugin": "^5.54.0",
"@typescript-eslint/parser": "^5.54.0",
"@vercel/ncc": "^0.38.0",
"@vercel/ncc": "^0.38.3",
"eslint": "^8.57.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-jest": "^27.9.0",
@ -138,16 +138,16 @@
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
},
"node_modules/@actions/tool-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
"integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz",
"integrity": "sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w==",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.0.0",
"@actions/http-client": "^2.0.1",
"@actions/io": "^1.1.1",
"semver": "^6.1.0",
"uuid": "^3.3.2"
"semver": "^6.1.0"
}
},
"node_modules/@actions/tool-cache/node_modules/semver": {
@ -158,15 +158,6 @@
"semver": "bin/semver.js"
}
},
"node_modules/@actions/tool-cache/node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@ -2132,10 +2123,11 @@
"dev": true
},
"node_modules/@vercel/ncc": {
"version": "0.38.1",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz",
"integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==",
"version": "0.38.3",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.3.tgz",
"integrity": "sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==",
"dev": true,
"license": "MIT",
"bin": {
"ncc": "dist/ncc/cli.js"
}

View File

@ -32,7 +32,7 @@
"@actions/glob": "^0.5.0",
"@actions/http-client": "^2.2.1",
"@actions/io": "^1.0.2",
"@actions/tool-cache": "^2.0.1",
"@actions/tool-cache": "^2.0.2",
"semver": "^7.6.3",
"uuid": "^9.0.1"
},
@ -42,7 +42,7 @@
"@types/semver": "^7.5.8",
"@typescript-eslint/eslint-plugin": "^5.54.0",
"@typescript-eslint/parser": "^5.54.0",
"@vercel/ncc": "^0.38.0",
"@vercel/ncc": "^0.38.3",
"eslint": "^8.57.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-jest": "^27.9.0",

View File

@ -7,7 +7,11 @@ import * as path from 'path';
import {restoreCache} from './cache-restore';
import {isCacheFeatureAvailable} from './cache-utils';
import {getNodejsDistribution} from './distributions/installer-factory';
import {getNodeVersionFromFile, printEnvDetailsAndSetOutput} from './util';
import {
getNodeVersionFromFile,
printEnvDetailsAndSetOutput,
enableCorepack
} from './util';
import {State} from './constants';
export async function run() {
@ -59,6 +63,9 @@ export async function run() {
auth.configAuthentication(registryUrl, alwaysAuth);
}
const corepack = core.getInput('corepack') || 'false';
await enableCorepack(corepack);
if (cache && isCacheFeatureAvailable()) {
core.saveState(State.CachePackageManager, cache);
const cacheDependencyPath = core.getInput('cache-dependency-path');

View File

@ -4,6 +4,7 @@ import * as io from '@actions/io';
import fs from 'fs';
import path from 'path';
import {getCommandOutput} from './cache-utils';
export function getNodeVersionFromFile(versionFilePath: string): string | null {
if (!fs.existsSync(versionFilePath)) {
@ -106,3 +107,9 @@ export const unique = () => {
return true;
};
};
export async function enableCorepack(input: string): Promise<void> {
if (input.length && input !== 'false') {
await getCommandOutput('npm i -g corepack');
}
}