diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2c214f3..07bd9ba 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,7 +22,7 @@ jobs: - windows-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + - uses: actions/checkout@v4 - name: Run the action uses: ./ @@ -51,7 +51,7 @@ jobs: - windows-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + - uses: actions/checkout@v4 - name: Run the action uses: ./ @@ -74,8 +74,8 @@ jobs: fail-fast: false matrix: os: - # macos is excluded from this test because node 12 is no longer available on this platform - ubuntu-latest + - macos-latest - windows-latest standalone: @@ -83,7 +83,7 @@ jobs: - false steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + - uses: actions/checkout@v4 - name: Run the action uses: ./ @@ -92,7 +92,7 @@ jobs: standalone: ${{ matrix.standalone }} - name: install Node.js - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + uses: actions/setup-node@v4 with: # pnpm@7.0.0 is not compatible with Node.js 12 node-version: 12.22.12 @@ -160,7 +160,7 @@ jobs: - yarn steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + - uses: actions/checkout@v4 - name: Run the action uses: ./ diff --git a/README.md b/README.md index 85bba1f..73212a4 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,6 @@ If `run_install` is a YAML string representation of either an object or an array **Optional** (_type:_ `string[]`) Additional arguments after `pnpm [recursive] install`, e.g. `[--ignore-scripts, --strict-peer-dependencies]`. -### `cache` - -**Optional** (_type:_ `boolean`, _default:_ `false`) Whether to cache the pnpm store directory. - -### `cache_dependency_path` - -**Optional** (_type:_ `string|string[]`, _default:_ `pnpm-lock.yaml`) File path to the pnpm lockfile, which contents hash will be used as a cache key. - ### `package_json_file` **Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799) to read "packageManager" configuration. @@ -125,7 +117,7 @@ jobs: - uses: pnpm/action-setup@v4 with: version: 10 - run_install: | + run_install: - recursive: true args: [--strict-peer-dependencies] - args: [--global, gulp, prettier, typescript] @@ -150,7 +142,13 @@ jobs: name: Install pnpm with: version: 10 - cache: true + run_install: false + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' - name: Install dependencies run: pnpm install diff --git a/action.yml b/action.yml index fe97198..831ced0 100644 --- a/action.yml +++ b/action.yml @@ -15,16 +15,8 @@ inputs: description: If specified, run `pnpm install` required: false default: 'null' - cache: - description: Whether to cache the pnpm store directory - required: false - default: 'false' - cache_dependency_path: - description: File path to the pnpm lockfile, which contents hash will be used as a cache key - required: false - default: 'pnpm-lock.yaml' package_json_file: - description: File path to the package.json to read "packageManager" configuration. This path must be relative to the repository root (GITHUB_WORKSPACE). + description: File path to the package.json to read "packageManager" configuration required: false default: 'package.json' standalone: @@ -37,6 +29,6 @@ outputs: bin_dest: description: Location of `pnpm` and `pnpx` command runs: - using: node24 + using: node20 main: dist/index.js post: dist/index.js diff --git a/dist/index.js b/dist/index.js index c315d06..425614a 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/package.json b/package.json index 4582273..31c3921 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,10 @@ "update-pnpm-dist": "pnpm install && cp ./node_modules/pnpm/dist/pnpm.cjs ./dist/pnpm.cjs && cp ./node_modules/pnpm/dist/worker.js ./dist/worker.js" }, "dependencies": { - "@actions/cache": "^4.1.0", "@actions/core": "^1.10.1", - "@actions/exec": "^1.1.1", - "@actions/glob": "^0.5.0", "@types/expand-tilde": "^2.0.2", - "@types/node": "^22.0.0", + "@types/node": "^20.11.5", + "@types/node-fetch": "^2.6.11", "expand-tilde": "^2.0.2", "yaml": "^2.3.4", "zod": "^3.22.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3957a9..be21d4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,24 +8,18 @@ importers: .: dependencies: - '@actions/cache': - specifier: ^4.1.0 - version: 4.1.0 '@actions/core': specifier: ^1.10.1 version: 1.11.1 - '@actions/exec': - specifier: ^1.1.1 - version: 1.1.1 - '@actions/glob': - specifier: ^0.5.0 - version: 0.5.0 '@types/expand-tilde': specifier: ^2.0.2 version: 2.0.2 '@types/node': - specifier: ^22.0.0 - version: 22.19.11 + specifier: ^20.11.5 + version: 20.17.17 + '@types/node-fetch': + specifier: ^2.6.11 + version: 2.6.12 expand-tilde: specifier: ^2.0.2 version: 2.0.2 @@ -48,230 +42,54 @@ importers: packages: - '@actions/cache@4.1.0': - resolution: {integrity: sha512-z3Opg+P4Y7baq+g1dODXgdtsvPLSewr3ZKpp3U0HQR1A/vWCoJFS52XSezjdngo4SIOdR5oHtyK3a3Arar+X9A==} - '@actions/core@1.11.1': resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} '@actions/exec@1.1.1': resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} - '@actions/glob@0.1.2': - resolution: {integrity: sha512-SclLR7Ia5sEqjkJTPs7Sd86maMDw43p769YxBOxvPvEWuPEhpAnBsQfENOpXjFYMmhCqd127bmf+YdvJqVqR4A==} - - '@actions/glob@0.5.0': - resolution: {integrity: sha512-tST2rjPvJLRZLuT9NMUtyBjvj9Yo0MiJS3ow004slMvm8GFM+Zv9HvMJ7HWzfUyJnGrJvDsYkWBaaG3YKXRtCw==} - - '@actions/http-client@2.2.3': - resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} + '@actions/http-client@2.1.0': + resolution: {integrity: sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==} '@actions/io@1.1.3': resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} - '@azure/abort-controller@1.1.0': - resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} - engines: {node: '>=12.0.0'} - - '@azure/abort-controller@2.1.2': - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} - engines: {node: '>=18.0.0'} - - '@azure/core-auth@1.10.0': - resolution: {integrity: sha512-88Djs5vBvGbHQHf5ZZcaoNHo6Y8BKZkt3cw2iuJIQzLEgH4Ox6Tm4hjFhbqOxyYsgIG/eJbFEHpxRIfEEWv5Ow==} - engines: {node: '>=20.0.0'} - - '@azure/core-client@1.10.0': - resolution: {integrity: sha512-O4aP3CLFNodg8eTHXECaH3B3CjicfzkxVtnrfLkOq0XNP7TIECGfHpK/C6vADZkWP75wzmdBnsIA8ksuJMk18g==} - engines: {node: '>=20.0.0'} - - '@azure/core-http-compat@2.3.0': - resolution: {integrity: sha512-qLQujmUypBBG0gxHd0j6/Jdmul6ttl24c8WGiLXIk7IHXdBlfoBqW27hyz3Xn6xbfdyVSarl1Ttbk0AwnZBYCw==} - engines: {node: '>=18.0.0'} - - '@azure/core-lro@2.7.2': - resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} - engines: {node: '>=18.0.0'} - - '@azure/core-paging@1.6.2': - resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} - engines: {node: '>=18.0.0'} - - '@azure/core-rest-pipeline@1.22.0': - resolution: {integrity: sha512-OKHmb3/Kpm06HypvB3g6Q3zJuvyXcpxDpCS1PnU8OV6AJgSFaee/covXBcPbWc6XDDxtEPlbi3EMQ6nUiPaQtw==} - engines: {node: '>=20.0.0'} - - '@azure/core-tracing@1.3.0': - resolution: {integrity: sha512-+XvmZLLWPe67WXNZo9Oc9CrPj/Tm8QnHR92fFAFdnbzwNdCH1h+7UdpaQgRSBsMY+oW1kHXNUZQLdZ1gHX3ROw==} - engines: {node: '>=20.0.0'} - - '@azure/core-util@1.13.0': - resolution: {integrity: sha512-o0psW8QWQ58fq3i24Q1K2XfS/jYTxr7O1HRcyUE9bV9NttLU+kYOH82Ixj8DGlMTOWgxm1Sss2QAfKK5UkSPxw==} - engines: {node: '>=20.0.0'} - - '@azure/core-xml@1.5.0': - resolution: {integrity: sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==} - engines: {node: '>=20.0.0'} - - '@azure/logger@1.3.0': - resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} - engines: {node: '>=20.0.0'} - - '@azure/ms-rest-js@2.7.0': - resolution: {integrity: sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==} - - '@azure/storage-blob@12.27.0': - resolution: {integrity: sha512-IQjj9RIzAKatmNca3D6bT0qJ+Pkox1WZGOg2esJF2YLHb45pQKOwGPIAV+w3rfgkj7zV3RMxpn/c6iftzSOZJQ==} - engines: {node: '>=18.0.0'} - - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - - '@protobuf-ts/runtime-rpc@2.11.1': - resolution: {integrity: sha512-4CqqUmNA+/uMz00+d3CYKgElXO9VrEbucjnBFEjqI4GuDrEQ32MaI3q+9qPBvIGOlL4PmHXrzM32vBPWRhQKWQ==} - - '@protobuf-ts/runtime@2.11.1': - resolution: {integrity: sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ==} - '@types/expand-tilde@2.0.2': resolution: {integrity: sha512-wlsMYiapmIR4Eq/Z0qysN8xaDMjSkO6AIDNFx9oxgWGeKVA1jU+NzwPRZErBNP5z6/dx6QNkNpKglBGPO9OkTA==} - '@types/node@22.19.11': - resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==} + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@typespec/ts-http-runtime@0.3.0': - resolution: {integrity: sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==} - engines: {node: '>=20.0.0'} + '@types/node@20.17.17': + resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==} '@vercel/ncc@0.38.3': resolution: {integrity: sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==} hasBin: true - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} - fast-xml-parser@5.2.5: - resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} - hasBin: true - - form-data@2.5.5: - resolution: {integrity: sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==} - engines: {node: '>= 0.12'} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -280,21 +98,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -304,28 +107,6 @@ packages: engines: {node: '>=16.14'} hasBin: true - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - strnum@2.1.1: - resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -335,30 +116,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici@5.29.0: - resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} - engines: {node: '>=14.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} @@ -370,374 +129,71 @@ packages: snapshots: - '@actions/cache@4.1.0': - dependencies: - '@actions/core': 1.11.1 - '@actions/exec': 1.1.1 - '@actions/glob': 0.1.2 - '@actions/http-client': 2.2.3 - '@actions/io': 1.1.3 - '@azure/abort-controller': 1.1.0 - '@azure/ms-rest-js': 2.7.0 - '@azure/storage-blob': 12.27.0 - '@protobuf-ts/runtime-rpc': 2.11.1 - semver: 6.3.1 - transitivePeerDependencies: - - encoding - - supports-color - '@actions/core@1.11.1': dependencies: '@actions/exec': 1.1.1 - '@actions/http-client': 2.2.3 + '@actions/http-client': 2.1.0 '@actions/exec@1.1.1': dependencies: '@actions/io': 1.1.3 - '@actions/glob@0.1.2': - dependencies: - '@actions/core': 1.11.1 - minimatch: 3.1.2 - - '@actions/glob@0.5.0': - dependencies: - '@actions/core': 1.11.1 - minimatch: 3.1.2 - - '@actions/http-client@2.2.3': + '@actions/http-client@2.1.0': dependencies: tunnel: 0.0.6 - undici: 5.29.0 '@actions/io@1.1.3': {} - '@azure/abort-controller@1.1.0': - dependencies: - tslib: 2.8.1 - - '@azure/abort-controller@2.1.2': - dependencies: - tslib: 2.8.1 - - '@azure/core-auth@1.10.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.13.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/core-client@1.10.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.0 - '@azure/core-rest-pipeline': 1.22.0 - '@azure/core-tracing': 1.3.0 - '@azure/core-util': 1.13.0 - '@azure/logger': 1.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/core-http-compat@2.3.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-client': 1.10.0 - '@azure/core-rest-pipeline': 1.22.0 - transitivePeerDependencies: - - supports-color - - '@azure/core-lro@2.7.2': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.13.0 - '@azure/logger': 1.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/core-paging@1.6.2': - dependencies: - tslib: 2.8.1 - - '@azure/core-rest-pipeline@1.22.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.0 - '@azure/core-tracing': 1.3.0 - '@azure/core-util': 1.13.0 - '@azure/logger': 1.3.0 - '@typespec/ts-http-runtime': 0.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/core-tracing@1.3.0': - dependencies: - tslib: 2.8.1 - - '@azure/core-util@1.13.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@typespec/ts-http-runtime': 0.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/core-xml@1.5.0': - dependencies: - fast-xml-parser: 5.2.5 - tslib: 2.8.1 - - '@azure/logger@1.3.0': - dependencies: - '@typespec/ts-http-runtime': 0.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@azure/ms-rest-js@2.7.0': - dependencies: - '@azure/core-auth': 1.10.0 - abort-controller: 3.0.0 - form-data: 2.5.5 - node-fetch: 2.7.0 - tslib: 1.14.1 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@azure/storage-blob@12.27.0': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.0 - '@azure/core-client': 1.10.0 - '@azure/core-http-compat': 2.3.0 - '@azure/core-lro': 2.7.2 - '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.22.0 - '@azure/core-tracing': 1.3.0 - '@azure/core-util': 1.13.0 - '@azure/core-xml': 1.5.0 - '@azure/logger': 1.3.0 - events: 3.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@fastify/busboy@2.1.1': {} - - '@protobuf-ts/runtime-rpc@2.11.1': - dependencies: - '@protobuf-ts/runtime': 2.11.1 - - '@protobuf-ts/runtime@2.11.1': {} - '@types/expand-tilde@2.0.2': {} - '@types/node@22.19.11': + '@types/node-fetch@2.6.12': dependencies: - undici-types: 6.21.0 + '@types/node': 20.17.17 + form-data: 4.0.1 - '@typespec/ts-http-runtime@0.3.0': + '@types/node@20.17.17': dependencies: - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color + undici-types: 6.19.8 '@vercel/ncc@0.38.3': {} - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - agent-base@7.1.4: {} - asynckit@0.4.0: {} - balanced-match@1.0.2: {} - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - concat-map@0.0.1: {} - - debug@4.4.1: - dependencies: - ms: 2.1.3 - delayed-stream@1.0.0: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 - fast-xml-parser@5.2.5: - dependencies: - strnum: 2.1.1 - - form-data@2.5.5: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 mime-types: 2.1.35 - safe-buffer: 5.2.1 - - function-bind@1.1.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - gopd@1.2.0: {} - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.4 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - - math-intrinsics@1.1.0: {} - mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - ms@2.1.3: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - parse-passwd@1.0.0: {} pnpm@8.15.9: {} - safe-buffer@5.2.1: {} - - sax@1.4.1: {} - - semver@6.3.1: {} - - strnum@2.1.1: {} - - tr46@0.0.3: {} - - tslib@1.14.1: {} - - tslib@2.8.1: {} - tunnel@0.0.6: {} typescript@5.7.3: {} - undici-types@6.21.0: {} - - undici@5.29.0: - dependencies: - '@fastify/busboy': 2.1.1 - - uuid@8.3.2: {} - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - xml2js@0.5.0: - dependencies: - sax: 1.4.1 - xmlbuilder: 11.0.1 - - xmlbuilder@11.0.1: {} + undici-types@6.19.8: {} yaml@2.7.0: {} diff --git a/src/cache-restore/index.ts b/src/cache-restore/index.ts deleted file mode 100644 index b3db275..0000000 --- a/src/cache-restore/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { isFeatureAvailable } from '@actions/cache' -import { endGroup, startGroup, warning } from '@actions/core' -import { Inputs } from '../inputs' -import { runRestoreCache } from './run' - -export async function restoreCache(inputs: Inputs) { - if (!inputs.cache) return - - if (!isFeatureAvailable()) { - warning('Cache is not available, skipping cache restoration') - return - } - - startGroup('Restoring cache...') - await runRestoreCache(inputs) - endGroup() -} - -export default restoreCache diff --git a/src/cache-restore/run.ts b/src/cache-restore/run.ts deleted file mode 100644 index 02a7469..0000000 --- a/src/cache-restore/run.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { restoreCache } from '@actions/cache' -import { debug, info, saveState, setOutput } from '@actions/core' -import { getExecOutput } from '@actions/exec' -import { hashFiles } from '@actions/glob' -import os from 'os' -import { Inputs } from '../inputs' - -export async function runRestoreCache(inputs: Inputs) { - const cachePath = await getCacheDirectory() - saveState('cache_path', cachePath) - - const fileHash = await hashFiles(inputs.cacheDependencyPath) - if (!fileHash) { - throw new Error('Some specified paths were not resolved, unable to cache dependencies.') - } - - const primaryKey = `pnpm-cache-${process.env.RUNNER_OS}-${os.arch()}-${fileHash}` - debug(`Primary key is ${primaryKey}`) - saveState('cache_primary_key', primaryKey) - - let cacheKey = await restoreCache([cachePath], primaryKey) - - setOutput('cache-hit', Boolean(cacheKey)) - - if (!cacheKey) { - info(`Cache is not found`) - return - } - - saveState('cache_restored_key', cacheKey) - info(`Cache restored from key: ${cacheKey}`) -} - -async function getCacheDirectory() { - const { stdout } = await getExecOutput('pnpm store path --silent') - const cacheFolderPath = stdout.trim() - debug(`Cache folder is set to "${cacheFolderPath}"`) - return cacheFolderPath -} diff --git a/src/cache-save/index.ts b/src/cache-save/index.ts deleted file mode 100644 index 2beec06..0000000 --- a/src/cache-save/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { setFailed } from '@actions/core' -import { Inputs } from '../inputs' -import { runSaveCache } from './run' - -export async function saveCache(inputs: Inputs) { - if (!inputs.cache) return - - try { - await runSaveCache() - } catch (error) { - setFailed((error as Error).message) - } -} - -export default saveCache diff --git a/src/cache-save/run.ts b/src/cache-save/run.ts deleted file mode 100644 index 7481d58..0000000 --- a/src/cache-save/run.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { saveCache } from '@actions/cache' -import { getState, info } from '@actions/core' - -export async function runSaveCache() { - const state = getState('cache_restored_key') - const primaryKey = getState('cache_primary_key') - const cachePath = getState('cache_path') - - if (primaryKey === state) { - info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`) - return - } - - const cacheId = await saveCache([cachePath], primaryKey) - if (cacheId == -1) return - - info(`Cache saved with the key: ${primaryKey}`) -} diff --git a/src/index.ts b/src/index.ts index b3c72cd..7ae741b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,5 @@ import { setFailed, saveState, getState } from '@actions/core' -import restoreCache from './cache-restore' -import saveCache from './cache-save' -import getInputs, { Inputs } from './inputs' +import getInputs from './inputs' import installPnpm from './install-pnpm' import setOutputs from './outputs' import pnpmInstall from './pnpm-install' @@ -9,31 +7,15 @@ import pruneStore from './pnpm-store-prune' async function main() { const inputs = getInputs() - - if (getState('is_post') === 'true') { - await runPost(inputs) - } else { - await runMain(inputs) - } -} - -async function runMain(inputs: Inputs) { + const isPost = getState('is_post') + if (isPost === 'true') return pruneStore(inputs) saveState('is_post', 'true') - await installPnpm(inputs) console.log('Installation Completed!') setOutputs(inputs) - - await restoreCache(inputs) - pnpmInstall(inputs) } -async function runPost(inputs: Inputs) { - pruneStore(inputs) - await saveCache(inputs) -} - main().catch(error => { console.error(error) setFailed(error) diff --git a/src/inputs/index.ts b/src/inputs/index.ts index fc918d9..a9b705a 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -5,8 +5,6 @@ import { RunInstall, parseRunInstall } from './run-install' export interface Inputs { readonly version?: string readonly dest: string - readonly cache: boolean - readonly cacheDependencyPath: string readonly runInstall: RunInstall[] readonly packageJsonFile: string readonly standalone: boolean @@ -21,8 +19,6 @@ const parseInputPath = (name: string) => expandTilde(getInput(name, options)) export const getInputs = (): Inputs => ({ version: getInput('version'), dest: parseInputPath('dest'), - cache: getBooleanInput('cache'), - cacheDependencyPath: parseInputPath('cache_dependency_path'), runInstall: parseRunInstall('run_install'), packageJsonFile: parseInputPath('package_json_file'), standalone: getBooleanInput('standalone'), diff --git a/src/inputs/run-install.ts b/src/inputs/run-install.ts index a30877c..d7215b7 100644 --- a/src/inputs/run-install.ts +++ b/src/inputs/run-install.ts @@ -1,5 +1,5 @@ import { getInput, error } from '@actions/core' -import { parse as parseYaml } from 'yaml' +import * as yaml from 'yaml' import { z, ZodError } from 'zod' const RunInstallSchema = z.object({ @@ -20,7 +20,7 @@ export type RunInstall = z.infer export function parseRunInstall(inputName: string): RunInstall[] { const input = getInput(inputName, { required: true }) - const parsedInput: unknown = parseYaml(input) + const parsedInput: unknown = yaml.parse(input) try { const result: RunInstallInput = RunInstallInputSchema.parse(parsedInput) diff --git a/src/install-pnpm/run.ts b/src/install-pnpm/run.ts index 005c500..f5b3ae0 100644 --- a/src/install-pnpm/run.ts +++ b/src/install-pnpm/run.ts @@ -6,7 +6,7 @@ import path from 'path' import { execPath } from 'process' import util from 'util' import { Inputs } from '../inputs' -import { parse as parseYaml } from 'yaml' +import YAML from 'yaml' export async function runSelfInstaller(inputs: Inputs): Promise { const { version, dest, packageJsonFile, standalone } = inputs @@ -63,7 +63,7 @@ async function readTarget(opts: { try { const content = readFileSync(path.join(GITHUB_WORKSPACE, packageJsonFile), 'utf8'); ({ packageManager } = packageJsonFile.endsWith(".yaml") - ? parseYaml(content, { merge: true }) + ? YAML.parse(content, { merge: true }) : JSON.parse(content) ) } catch (error: unknown) {