Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 28bb880

Browse filesBrowse files
committed
fix: install PyPy on Linux ARM64
1 parent db8d0cb commit 28bb880
Copy full SHA for 28bb880

File tree

Expand file treeCollapse file tree

2 files changed

+20
-10
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+20
-10
lines changed

‎dist/setup/index.js

Copy file name to clipboardExpand all lines: dist/setup/index.js
+10-5Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91554,28 +91554,33 @@ function pypyVersionToSemantic(versionSpec) {
9155491554
}
9155591555
exports.pypyVersionToSemantic = pypyVersionToSemantic;
9155691556
function isArchPresentForWindows(item, architecture) {
91557-
architecture = replaceX32toX86(architecture);
91557+
architecture = pypyArchitecture(architecture);
9155891558
return item.files.some((file) => utils_1.WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture);
9155991559
}
9156091560
exports.isArchPresentForWindows = isArchPresentForWindows;
9156191561
function isArchPresentForMacOrLinux(item, architecture, platform) {
91562+
architecture = pypyArchitecture(architecture);
9156291563
return item.files.some((file) => file.arch === architecture && file.platform === platform);
9156391564
}
9156491565
exports.isArchPresentForMacOrLinux = isArchPresentForMacOrLinux;
9156591566
function findAssetForWindows(releases, architecture) {
91566-
architecture = replaceX32toX86(architecture);
91567+
architecture = pypyArchitecture(architecture);
9156791568
return releases.files.find((item) => utils_1.WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture);
9156891569
}
9156991570
exports.findAssetForWindows = findAssetForWindows;
9157091571
function findAssetForMacOrLinux(releases, architecture, platform) {
91572+
architecture = pypyArchitecture(architecture);
9157191573
return releases.files.find((item) => item.arch === architecture && item.platform === platform);
9157291574
}
9157391575
exports.findAssetForMacOrLinux = findAssetForMacOrLinux;
91574-
function replaceX32toX86(architecture) {
91575-
// convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.
91576-
if (architecture === 'x32') {
91576+
function pypyArchitecture(architecture) {
91577+
if (utils_1.IS_WINDOWS && architecture === 'x32') {
91578+
// convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.
9157791579
architecture = 'x86';
9157891580
}
91581+
else if (utils_1.IS_LINUX && architecture === 'arm64') {
91582+
architecture = 'aarch64';
91583+
}
9157991584
return architecture;
9158091585
}
9158191586

‎src/install-pypy.ts

Copy file name to clipboardExpand all lines: src/install-pypy.ts
+10-5Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import * as exec from '@actions/exec';
88
import fs from 'fs';
99

1010
import {
11+
IS_LINUX,
1112
IS_WINDOWS,
1213
WINDOWS_PLATFORMS,
1314
IPyPyManifestRelease,
@@ -246,7 +247,7 @@ export function pypyVersionToSemantic(versionSpec: string) {
246247
}
247248

248249
export function isArchPresentForWindows(item: any, architecture: string) {
249-
architecture = replaceX32toX86(architecture);
250+
architecture = pypyArchitecture(architecture);
250251
return item.files.some(
251252
(file: any) =>
252253
WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture
@@ -258,13 +259,14 @@ export function isArchPresentForMacOrLinux(
258259
architecture: string,
259260
platform: string
260261
) {
262+
architecture = pypyArchitecture(architecture);
261263
return item.files.some(
262264
(file: any) => file.arch === architecture && file.platform === platform
263265
);
264266
}
265267

266268
export function findAssetForWindows(releases: any, architecture: string) {
267-
architecture = replaceX32toX86(architecture);
269+
architecture = pypyArchitecture(architecture);
268270
return releases.files.find(
269271
(item: any) =>
270272
WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture
@@ -276,15 +278,18 @@ export function findAssetForMacOrLinux(
276278
architecture: string,
277279
platform: string
278280
) {
281+
architecture = pypyArchitecture(architecture);
279282
return releases.files.find(
280283
(item: any) => item.arch === architecture && item.platform === platform
281284
);
282285
}
283286

284-
function replaceX32toX86(architecture: string): string {
285-
// convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.
286-
if (architecture === 'x32') {
287+
function pypyArchitecture(architecture: string): string {
288+
if (IS_WINDOWS && architecture === 'x32') {
289+
// convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.
287290
architecture = 'x86';
291+
} else if (IS_LINUX && architecture === 'arm64') {
292+
architecture = 'aarch64';
288293
}
289294
return architecture;
290295
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.