mirror of
https://github.com/actions/setup-python.git
synced 2026-09-19 10:21:28 +00:00
Update action to node20 (#772)
This commit is contained in:
@@ -13,3 +13,5 @@ jobs:
|
|||||||
call-basic-validation:
|
call-basic-validation:
|
||||||
name: Basic validation
|
name: Basic validation
|
||||||
uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
|
uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
|
||||||
|
with:
|
||||||
|
node-version: '20.x'
|
||||||
|
|||||||
@@ -15,3 +15,5 @@ jobs:
|
|||||||
call-check-dist:
|
call-check-dist:
|
||||||
name: Check dist/
|
name: Check dist/
|
||||||
uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
|
uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
|
||||||
|
with:
|
||||||
|
node-version: '20.x'
|
||||||
|
|||||||
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
|
||||||
import {HttpClient} from '@actions/http-client';
|
import {HttpClient} from '@actions/http-client';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
@@ -179,7 +179,7 @@ describeSkipOnWindows('findGraalPyVersion', () => {
|
|||||||
|
|
||||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||||
spyHttpClient.mockImplementation(
|
spyHttpClient.mockImplementation(
|
||||||
async (): Promise<ifm.ITypedResponse<IGraalPyManifestRelease[]>> => {
|
async (): Promise<ifm.TypedResponse<IGraalPyManifestRelease[]>> => {
|
||||||
const result = JSON.stringify(manifestData);
|
const result = JSON.stringify(manifestData);
|
||||||
return {
|
return {
|
||||||
statusCode: 200,
|
statusCode: 200,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import fs from 'fs';
|
|||||||
|
|
||||||
import * as utils from '../src/utils';
|
import * as utils from '../src/utils';
|
||||||
import {HttpClient} from '@actions/http-client';
|
import {HttpClient} from '@actions/http-client';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
@@ -240,7 +240,7 @@ describe('findPyPyVersion', () => {
|
|||||||
|
|
||||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||||
spyHttpClient.mockImplementation(
|
spyHttpClient.mockImplementation(
|
||||||
async (): Promise<ifm.ITypedResponse<IPyPyManifestRelease[]>> => {
|
async (): Promise<ifm.TypedResponse<IPyPyManifestRelease[]>> => {
|
||||||
const result = JSON.stringify(manifestData);
|
const result = JSON.stringify(manifestData);
|
||||||
return {
|
return {
|
||||||
statusCode: 200,
|
statusCode: 200,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
|
||||||
import {HttpClient} from '@actions/http-client';
|
import {HttpClient} from '@actions/http-client';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
@@ -169,7 +169,7 @@ describeSkipOnWindows('installGraalPy', () => {
|
|||||||
|
|
||||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||||
spyHttpClient.mockImplementation(
|
spyHttpClient.mockImplementation(
|
||||||
async (): Promise<ifm.ITypedResponse<IGraalPyManifestRelease[]>> => {
|
async (): Promise<ifm.TypedResponse<IGraalPyManifestRelease[]>> => {
|
||||||
const result = JSON.stringify(manifestData);
|
const result = JSON.stringify(manifestData);
|
||||||
return {
|
return {
|
||||||
statusCode: 200,
|
statusCode: 200,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
|
||||||
import {HttpClient} from '@actions/http-client';
|
import {HttpClient} from '@actions/http-client';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
@@ -265,7 +265,7 @@ describe('installPyPy', () => {
|
|||||||
|
|
||||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||||
spyHttpClient.mockImplementation(
|
spyHttpClient.mockImplementation(
|
||||||
async (): Promise<ifm.ITypedResponse<IPyPyManifestRelease[]>> => {
|
async (): Promise<ifm.TypedResponse<IPyPyManifestRelease[]>> => {
|
||||||
const result = JSON.stringify(manifestData);
|
const result = JSON.stringify(manifestData);
|
||||||
return {
|
return {
|
||||||
statusCode: 200,
|
statusCode: 200,
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ outputs:
|
|||||||
python-path:
|
python-path:
|
||||||
description: "The absolute path to the Python or PyPy executable."
|
description: "The absolute path to the Python or PyPy executable."
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node20'
|
||||||
main: 'dist/setup/index.js'
|
main: 'dist/setup/index.js'
|
||||||
post: 'dist/cache-save/index.js'
|
post: 'dist/cache-save/index.js'
|
||||||
post-if: success()
|
post-if: success()
|
||||||
|
|||||||
Vendored
+29219
-6272
File diff suppressed because one or more lines are too long
Vendored
+29886
-7396
File diff suppressed because one or more lines are too long
Generated
+849
-5028
File diff suppressed because it is too large
Load Diff
+7
-14
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-python",
|
"name": "setup-python",
|
||||||
"version": "4.0.0",
|
"version": "5.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Setup python action",
|
"description": "Setup python action",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
"lint": "eslint --config ./.eslintrc.js \"**/*.ts\"",
|
"lint": "eslint --config ./.eslintrc.js \"**/*.ts\"",
|
||||||
"lint:fix": "eslint --config ./.eslintrc.js \"**/*.ts\" --fix",
|
"lint:fix": "eslint --config ./.eslintrc.js \"**/*.ts\" --fix",
|
||||||
"release": "ncc build -o dist/setup src/setup-python.ts && ncc build -o dist/cache-save src/cache-save.ts && git add -f dist/",
|
"release": "ncc build -o dist/setup src/setup-python.ts && ncc build -o dist/cache-save src/cache-save.ts && git add -f dist/",
|
||||||
"test": "jest --coverage"
|
"test": "jest --runInBand --coverage"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -28,16 +28,16 @@
|
|||||||
"@actions/cache": "^3.0.4",
|
"@actions/cache": "^3.0.4",
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.0",
|
||||||
"@actions/exec": "^1.1.0",
|
"@actions/exec": "^1.1.0",
|
||||||
"@actions/glob": "^0.2.0",
|
"@actions/glob": "^0.4.0",
|
||||||
"@actions/http-client": "^1.0.11",
|
"@actions/http-client": "^2.2.0",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"@actions/tool-cache": "^1.5.5",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"semver": "^7.5.2"
|
"semver": "^7.5.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.6",
|
"@types/jest": "^29.5.6",
|
||||||
"@types/node": "^16.11.25",
|
"@types/node": "^20.9.1",
|
||||||
"@types/semver": "^7.1.0",
|
"@types/semver": "^7.1.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
||||||
"@typescript-eslint/parser": "^5.54.0",
|
"@typescript-eslint/parser": "^5.54.0",
|
||||||
@@ -46,17 +46,10 @@
|
|||||||
"eslint-config-prettier": "^8.6.0",
|
"eslint-config-prettier": "^8.6.0",
|
||||||
"eslint-plugin-jest": "^27.2.1",
|
"eslint-plugin-jest": "^27.2.1",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"husky": "^7.0.2",
|
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"jest-circus": "^29.7.0",
|
"jest-circus": "^29.7.0",
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"ts-jest": "^29.1.1",
|
"ts-jest": "^29.1.1",
|
||||||
"typescript": "^4.2.3"
|
"typescript": "^5.2.2"
|
||||||
},
|
|
||||||
"husky": {
|
|
||||||
"skipCI": true,
|
|
||||||
"hooks": {
|
|
||||||
"pre-commit": "npm run build && npm run format-check"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-2
@@ -4,11 +4,18 @@ import * as cache from '@actions/cache';
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import {State} from './cache-distributions/cache-distributor';
|
import {State} from './cache-distributions/cache-distributor';
|
||||||
|
|
||||||
export async function run() {
|
// Added early exit to resolve issue with slow post action step:
|
||||||
|
// - https://github.com/actions/setup-node/issues/878
|
||||||
|
// https://github.com/actions/cache/pull/1217
|
||||||
|
export async function run(earlyExit?: boolean) {
|
||||||
try {
|
try {
|
||||||
const cache = core.getInput('cache');
|
const cache = core.getInput('cache');
|
||||||
if (cache) {
|
if (cache) {
|
||||||
await saveCache(cache);
|
await saveCache(cache);
|
||||||
|
|
||||||
|
if (earlyExit) {
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const err = error as Error;
|
const err = error as Error;
|
||||||
@@ -76,4 +83,4 @@ function isCacheDirectoryExists(cacheDirectory: string[]) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
run();
|
run(true);
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import * as core from '@actions/core';
|
|||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
import * as semver from 'semver';
|
import * as semver from 'semver';
|
||||||
import * as httpm from '@actions/http-client';
|
import * as httpm from '@actions/http-client';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
|
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
import * as http from 'http';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
IS_WINDOWS,
|
IS_WINDOWS,
|
||||||
@@ -108,7 +110,7 @@ export async function installGraalPy(
|
|||||||
export async function getAvailableGraalPyVersions() {
|
export async function getAvailableGraalPyVersions() {
|
||||||
const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');
|
const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');
|
||||||
|
|
||||||
const headers: ifm.IHeaders = {};
|
const headers: http.OutgoingHttpHeaders = {};
|
||||||
if (AUTH) {
|
if (AUTH) {
|
||||||
headers.authorization = AUTH;
|
headers.authorization = AUTH;
|
||||||
}
|
}
|
||||||
@@ -117,7 +119,7 @@ export async function getAvailableGraalPyVersions() {
|
|||||||
'https://api.github.com/repos/oracle/graalpython/releases';
|
'https://api.github.com/repos/oracle/graalpython/releases';
|
||||||
const result: IGraalPyManifestRelease[] = [];
|
const result: IGraalPyManifestRelease[] = [];
|
||||||
do {
|
do {
|
||||||
const response: ifm.ITypedResponse<IGraalPyManifestRelease[]> =
|
const response: ifm.TypedResponse<IGraalPyManifestRelease[]> =
|
||||||
await http.getJson(url, headers);
|
await http.getJson(url, headers);
|
||||||
if (!response.result) {
|
if (!response.result) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
|
|||||||
+5
-3
@@ -6,7 +6,9 @@ import * as path from 'path';
|
|||||||
import * as semver from 'semver';
|
import * as semver from 'semver';
|
||||||
import * as toml from '@iarna/toml';
|
import * as toml from '@iarna/toml';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as ifm from '@actions/http-client/interfaces';
|
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||||
|
|
||||||
|
import * as http from 'http';
|
||||||
|
|
||||||
export const IS_WINDOWS = process.platform === 'win32';
|
export const IS_WINDOWS = process.platform === 'win32';
|
||||||
export const IS_LINUX = process.platform === 'linux';
|
export const IS_LINUX = process.platform === 'linux';
|
||||||
@@ -290,8 +292,8 @@ export function getBinaryDirectory(installDir: string) {
|
|||||||
/**
|
/**
|
||||||
* Extract next page URL from a HTTP response "link" header. Such headers are used in GitHub APIs.
|
* Extract next page URL from a HTTP response "link" header. Such headers are used in GitHub APIs.
|
||||||
*/
|
*/
|
||||||
export function getNextPageUrl<T>(response: ifm.ITypedResponse<T>) {
|
export function getNextPageUrl<T>(response: ifm.TypedResponse<T>) {
|
||||||
const responseHeaders = <ifm.IHeaders>response.headers;
|
const responseHeaders = <http.OutgoingHttpHeaders>response.headers;
|
||||||
const linkHeader = responseHeaders.link;
|
const linkHeader = responseHeaders.link;
|
||||||
if (typeof linkHeader === 'string') {
|
if (typeof linkHeader === 'string') {
|
||||||
for (const link of linkHeader.split(/\s*,\s*/)) {
|
for (const link of linkHeader.split(/\s*,\s*/)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user