Skip to content

Commit

Permalink
Add AIX support (#38)
Browse files Browse the repository at this point in the history
Add AIX support
  • Loading branch information
niclet committed Jan 27, 2021
1 parent 5a0f33b commit 53bde48
Show file tree
Hide file tree
Showing 6 changed files with 172 additions and 2 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ untill the JENKINS-26583 will not be fixed.
- OSX (intel) 64 bit
- Arm 6l/7l/64
- SunOS
- AIX

## Releases Notes

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/jenkins/plugins/nodejs/tools/CPU.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
* CPU type.
*/
public enum CPU {
i386, amd64, armv7l, armv6l, arm64;
i386, amd64, armv7l, armv6l, arm64, ppc64;

/**
* Determines the CPU of the given node.
Expand Down Expand Up @@ -109,6 +109,9 @@ private static CPU detect(@Nullable Computer computer, Map<Object, Object> syste
return arm64;
}
}
if (arch.contains("ppc")) {
return ppc64;
}
throw new DetectionFailedException(Messages.CPU_unknown(arch));
}

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/jenkins/plugins/nodejs/tools/Platform.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
* Supported platform.
*/
public enum Platform {
LINUX("node", "npm", "bin"), WINDOWS("node.exe", "npm.cmd", ""), OSX("node", "npm", "bin"), SUNOS("node", "npm", "bin");
LINUX("node", "npm", "bin"), WINDOWS("node.exe", "npm.cmd", ""), OSX("node", "npm", "bin"), SUNOS("node", "npm", "bin"), AIX("node", "npm", "bin");

/**
* Choose the file name suitable for the downloaded Node bundle.
Expand Down Expand Up @@ -99,6 +99,9 @@ private static Platform detect(Map<Object, Object> systemProperties) throws Dete
if (arch.contains("sunos")) {
return SUNOS;
}
if (arch.contains("aix")) {
return AIX;
}
throw new DetectionFailedException(Messages.Platform_unknown(arch));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ public String resolvePathFor(String version, Platform platform, CPU cpu) {
os = "sunos";
extension = EXTENSION;
break;
case AIX:
os = "aix";
extension = EXTENSION;
break;
default:
throw new IllegalArgumentException(Messages.InstallerPathResolver_unsupportedOS(version, platform.name()));
}
Expand Down Expand Up @@ -120,6 +124,12 @@ public String resolvePathFor(String version, Platform platform, CPU cpu) {
}
arch = cpu.name();
break;
case ppc64:
if (platform != Platform.AIX || nodeVersion.compareTo(new NodeJSVersion(6, 7, 0)) < 0) {
throw new IllegalArgumentException(Messages.InstallerPathResolver_unsupportedArch(version, cpu.name(), platform.name()));
}
arch = cpu.name();
break;
default:
throw new IllegalArgumentException(Messages.InstallerPathResolver_unsupportedArch(version, cpu.name(), "unknown"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ public static Collection<Object[]> data() throws Exception {
// arm are only supported on linux
continue;
}
if (platform == Platform.AIX && !cpu.name().equals("ppc64")) {
// AIX only supports ppc64
continue;
}
String testName = String.format("version=%s,cpu=%s,platform=%s", installable.id, cpu.name(), platform.name());
testPossibleParams.add(new Object[] { installable, platform, cpu, testName });
}
Expand Down
149 changes: 149 additions & 0 deletions src/test/resources/jenkins/plugins/nodejs/tools/expectedURLs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3033,3 +3033,152 @@ https://nodejs.org/dist/v0.10.0/node-v0.10.0-darwin-x86.tar.gz
https://nodejs.org/dist/v0.10.0/node-v0.10.0-darwin-x64.tar.gz
https://nodejs.org/dist/v0.10.0/node-v0.10.0-sunos-x86.tar.gz
https://nodejs.org/dist/v0.10.0/node-v0.10.0-sunos-x64.tar.gz
https://nodejs.org/dist/v10.0.0/node-v10.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.1.0/node-v10.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.10.0/node-v10.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.11.0/node-v10.11.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.12.0/node-v10.12.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.13.0/node-v10.13.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.14.0/node-v10.14.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.14.1/node-v10.14.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.14.2/node-v10.14.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.15.0/node-v10.15.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.15.1/node-v10.15.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.15.2/node-v10.15.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.15.3/node-v10.15.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.16.0/node-v10.16.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.2.0/node-v10.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.2.1/node-v10.2.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.3.0/node-v10.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.4.0/node-v10.4.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.4.1/node-v10.4.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.5.0/node-v10.5.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.6.0/node-v10.6.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.7.0/node-v10.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.8.0/node-v10.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v10.9.0/node-v10.9.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.0.0/node-v11.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.1.0/node-v11.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.10.0/node-v11.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.10.1/node-v11.10.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.11.0/node-v11.11.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.12.0/node-v11.12.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.13.0/node-v11.13.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.14.0/node-v11.14.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.15.0/node-v11.15.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.2.0/node-v11.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.3.0/node-v11.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.4.0/node-v11.4.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.5.0/node-v11.5.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.6.0/node-v11.6.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.7.0/node-v11.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.8.0/node-v11.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v11.9.0/node-v11.9.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v12.0.0/node-v12.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v12.1.0/node-v12.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v12.2.0/node-v12.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v12.3.0/node-v12.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v12.3.1/node-v12.3.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.10.0/node-v6.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.10.1/node-v6.10.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.10.2/node-v6.10.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.10.3/node-v6.10.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.0/node-v6.11.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.1/node-v6.11.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.2/node-v6.11.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.3/node-v6.11.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.4/node-v6.11.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.11.5/node-v6.11.5-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.12.0/node-v6.12.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.12.1/node-v6.12.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.12.2/node-v6.12.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.12.3/node-v6.12.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.13.0/node-v6.13.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.13.1/node-v6.13.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.14.0/node-v6.14.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.14.1/node-v6.14.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.14.2/node-v6.14.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.14.3/node-v6.14.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.14.4/node-v6.14.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.15.0/node-v6.15.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.15.1/node-v6.15.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.16.0/node-v6.16.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.17.0/node-v6.17.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.17.1/node-v6.17.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.7.0/node-v6.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.8.0/node-v6.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.8.1/node-v6.8.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.0/node-v6.9.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.1/node-v6.9.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.2/node-v6.9.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.3/node-v6.9.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.4/node-v6.9.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v6.9.5/node-v6.9.5-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.0.0/node-v7.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.1.0/node-v7.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.10.0/node-v7.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.10.1/node-v7.10.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.2.0/node-v7.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.2.1/node-v7.2.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.3.0/node-v7.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.4.0/node-v7.4.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.5.0/node-v7.5.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.6.0/node-v7.6.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.7.0/node-v7.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.7.1/node-v7.7.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.7.2/node-v7.7.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.7.3/node-v7.7.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.7.4/node-v7.7.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.8.0/node-v7.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v7.9.0/node-v7.9.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.0.0/node-v8.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.1.0/node-v8.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.1.1/node-v8.1.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.1.2/node-v8.1.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.1.3/node-v8.1.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.1.4/node-v8.1.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.10.0/node-v8.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.11.0/node-v8.11.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.11.1/node-v8.11.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.11.2/node-v8.11.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.11.3/node-v8.11.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.11.4/node-v8.11.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.12.0/node-v8.12.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.13.0/node-v8.13.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.14.0/node-v8.14.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.14.1/node-v8.14.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.15.0/node-v8.15.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.15.1/node-v8.15.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.16.0/node-v8.16.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.2.0/node-v8.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.2.1/node-v8.2.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.3.0/node-v8.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.4.0/node-v8.4.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.5.0/node-v8.5.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.6.0/node-v8.6.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.7.0/node-v8.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.8.0/node-v8.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.8.1/node-v8.8.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.9.0/node-v8.9.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.9.1/node-v8.9.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.9.2/node-v8.9.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.9.3/node-v8.9.3-aix-ppc64.tar.gz
https://nodejs.org/dist/v8.9.4/node-v8.9.4-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.0.0/node-v9.0.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.1.0/node-v9.1.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.10.0/node-v9.10.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.10.1/node-v9.10.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.11.0/node-v9.11.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.11.1/node-v9.11.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.11.2/node-v9.11.2-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.2.0/node-v9.2.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.2.1/node-v9.2.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.3.0/node-v9.3.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.4.0/node-v9.4.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.5.0/node-v9.5.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.6.0/node-v9.6.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.6.1/node-v9.6.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.7.0/node-v9.7.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.7.1/node-v9.7.1-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.8.0/node-v9.8.0-aix-ppc64.tar.gz
https://nodejs.org/dist/v9.9.0/node-v9.9.0-aix-ppc64.tar.gz

0 comments on commit 53bde48

Please sign in to comment.