Compare commits

..

2 Commits

Author SHA1 Message Date
Kishen V
93e30a148d Merge f89ad3b87c into c4c1141886 2025-03-11 11:18:41 -05:00
Kishen Viswanathan
f89ad3b87c Enable setting up of go on ppc64/ppc64le systems 2024-11-26 07:45:19 +05:30
6 changed files with 45 additions and 47 deletions

View File

@@ -1,6 +1,6 @@
---
name: undici
version: 5.28.5
version: 5.28.4
type: npm
summary: An HTTP/1.1 client, written from scratch for Node.js
homepage: https://undici.nodejs.org

View File

@@ -8,6 +8,7 @@ import path from 'path';
import * as main from '../src/main';
import * as im from '../src/installer';
import * as httpm from '@actions/http-client';
import {getArch} from '../src/system';
import goJsonData from './data/golang-dl.json';
import matchers from '../matchers.json';
@@ -32,6 +33,7 @@ describe('setup-go', () => {
let getSpy: jest.SpyInstance;
let platSpy: jest.SpyInstance;
let archSpy: jest.SpyInstance;
let endianSpy: jest.SpyInstance;
let joinSpy: jest.SpyInstance;
let dlSpy: jest.SpyInstance;
let extractTarSpy: jest.SpyInstance;
@@ -71,6 +73,8 @@ describe('setup-go', () => {
archSpy = jest.spyOn(osm, 'arch');
archSpy.mockImplementation(() => os['arch']);
execSpy = jest.spyOn(cp, 'execSync');
endianSpy = jest.spyOn(osm, 'endianness');
endianSpy.mockImplementation(() => os['endianness']);
// switch path join behaviour based on set os.platform
joinSpy = jest.spyOn(path, 'join');
@@ -988,5 +992,17 @@ use .
);
}
);
it('should return ppc64 when architecture is ppc64 and system is Big Endian', () => {
endianSpy.mockReturnValue('BE');
const result = getArch('ppc64');
expect(result).toBe('ppc64');
});
it('should return ppc64le when architecture is ppc64 and system is Little Endian', () => {
endianSpy.mockReturnValue('LE');
const result = getArch('ppc64');
expect(result).toBe('ppc64le');
});
});
});

View File

@@ -65451,14 +65451,6 @@ const { isUint8Array, isArrayBuffer } = __nccwpck_require__(9830)
const { File: UndiciFile } = __nccwpck_require__(8511)
const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685)
let random
try {
const crypto = __nccwpck_require__(6005)
random = (max) => crypto.randomInt(0, max)
} catch {
random = (max) => Math.floor(Math.random(max))
}
let ReadableStream = globalThis.ReadableStream
/** @type {globalThis['File']} */
@@ -65544,7 +65536,7 @@ function extractBody (object, keepalive = false) {
// Set source to a copy of the bytes held by object.
source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))
} else if (util.isFormDataLike(object)) {
const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`
const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`
const prefix = `--${boundary}\r\nContent-Disposition: form-data`
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
@@ -86899,14 +86891,6 @@ module.exports = require("net");
/***/ }),
/***/ 6005:
/***/ ((module) => {
"use strict";
module.exports = require("node:crypto");
/***/ }),
/***/ 5673:
/***/ ((module) => {

34
dist/setup/index.js vendored
View File

@@ -71739,14 +71739,6 @@ const { isUint8Array, isArrayBuffer } = __nccwpck_require__(9830)
const { File: UndiciFile } = __nccwpck_require__(8511)
const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685)
let random
try {
const crypto = __nccwpck_require__(6005)
random = (max) => crypto.randomInt(0, max)
} catch {
random = (max) => Math.floor(Math.random(max))
}
let ReadableStream = globalThis.ReadableStream
/** @type {globalThis['File']} */
@@ -71832,7 +71824,7 @@ function extractBody (object, keepalive = false) {
// Set source to a copy of the bytes held by object.
source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))
} else if (util.isFormDataLike(object)) {
const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`
const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`
const prefix = `--${boundary}\r\nContent-Disposition: form-data`
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
@@ -93749,15 +93741,23 @@ function getPlatform() {
exports.getPlatform = getPlatform;
function getArch(arch) {
// 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
// wants amd64, 386, arm64, armv61, ppc641e, s390x
// wants amd64, 386, arm64, armv6l, ppc64le, s390x
// currently not supported by runner but future proofed mapping
switch (arch) {
case 'x64':
arch = 'amd64';
break;
// case 'ppc':
// arch = 'ppc64';
// break;
// In case of ppc64, further distinction is needed to determine the endianness
// of the host as it can either be ppc64(Big Endian) or ppc64le (Little Endian) to download
// the correct bundle.
case 'ppc64':
if (os_1.default.endianness() === 'LE') {
arch = 'ppc64le';
}
else {
arch = 'ppc64';
}
break;
case 'x32':
arch = '386';
break;
@@ -93900,14 +93900,6 @@ module.exports = require("net");
/***/ }),
/***/ 6005:
/***/ ((module) => {
"use strict";
module.exports = require("node:crypto");
/***/ }),
/***/ 5673:
/***/ ((module) => {

7
package-lock.json generated
View File

@@ -5793,10 +5793,9 @@
}
},
"node_modules/undici": {
"version": "5.28.5",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz",
"integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==",
"license": "MIT",
"version": "5.28.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},

View File

@@ -18,15 +18,22 @@ export function getPlatform(): string {
export function getArch(arch: string): string {
// 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
// wants amd64, 386, arm64, armv61, ppc641e, s390x
// wants amd64, 386, arm64, armv6l, ppc64le, s390x
// currently not supported by runner but future proofed mapping
switch (arch) {
case 'x64':
arch = 'amd64';
break;
// case 'ppc':
// arch = 'ppc64';
// break;
// In case of ppc64, further distinction is needed to determine the endianness
// of the host as it can either be ppc64(Big Endian) or ppc64le (Little Endian) to download
// the correct bundle.
case 'ppc64':
if (os.endianness() === 'LE') {
arch = 'ppc64le';
} else {
arch = 'ppc64';
}
break;
case 'x32':
arch = '386';
break;