mirror of
https://github.com/taiki-e/install-action.git
synced 2026-05-07 05:20:30 +00:00
Support powerpc64le/riscv64/s390x Linux runners
This commit is contained in:
@@ -120,14 +120,16 @@ case "$(uname -s)" in
|
||||
MINGW* | MSYS* | CYGWIN* | Windows_NT) host_os=windows ;;
|
||||
*) bail "unrecognized OS type '$(uname -s)'" ;;
|
||||
esac
|
||||
# See main.sh
|
||||
# NB: Sync with main.sh.
|
||||
case "$(uname -m)" in
|
||||
aarch64 | arm64) host_arch=aarch64 ;;
|
||||
xscale | arm | armv*l) bail "32-bit Arm runner is not supported yet by this action; if you need support for this platform, please submit an issue at <https://github.com/taiki-e/install-action>" ;;
|
||||
*)
|
||||
# TODO: uname -m on windows-11-arm returns "x86_64"
|
||||
host_arch=x86_64
|
||||
;;
|
||||
ppc64le) host_arch=powerpc64le ;;
|
||||
riscv64) host_arch=riscv64 ;;
|
||||
s390x) host_arch=s390x ;;
|
||||
loongarch64 | mips | mips64 | ppc | ppc64 | sun4v) bail "$(uname -m) runner is not supported yet by this action; if you need support for this platform, please submit an issue at <https://github.com/taiki-e/install-action>" ;;
|
||||
# TODO: uname -m on windows-11-arm returns "x86_64"
|
||||
*) host_arch=x86_64 ;;
|
||||
esac
|
||||
|
||||
tools=()
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"tag_prefix": "cli/v",
|
||||
"bin": "${package}${exe}",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-x64"
|
||||
},
|
||||
"x86_64_linux_musl": {
|
||||
"asset_name": "${package}-linux-x64-musl"
|
||||
},
|
||||
@@ -14,6 +17,9 @@
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-win32-x64${exe}"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-arm64"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"asset_name": "${package}-linux-arm64-musl"
|
||||
},
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"bin": "${package}-${rust_target}/${package}${exe}",
|
||||
"version_range": ">= 0.5.0",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-amd64.tar.gz"
|
||||
},
|
||||
"x86_64_linux_musl": {
|
||||
"asset_name": "${package}-${rust_target}.tar.xz"
|
||||
},
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"bin": "${package}-v${version}-${rust_target}/bin/${package}${exe}",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
|
||||
@@ -9,11 +9,15 @@
|
||||
"${package}-v${version}-${rust_target}.zip"
|
||||
],
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {}
|
||||
"aarch64_windows": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {}
|
||||
"aarch64_macos": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {}
|
||||
"aarch64_windows": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {}
|
||||
"aarch64_windows": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"broken": ["1.4.3", "1.4.4", "1.4.5", "1.4.6", "1.4.7", "1.4.8"],
|
||||
"asset_name": [
|
||||
"${package}_v${version}_${rust_target}.tar.bz2",
|
||||
"${package}_v${version}_${rust_target}.zip"
|
||||
],
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {
|
||||
"asset_name": "${package}_v${version}_${rust_target}.tar.bz2"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}_v${version}_${rust_target}.zip"
|
||||
},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}_v${version}_x86_64-pc-windows-gnu.zip"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"bin": "${package}-v${version}-${rust_target}/${package}${exe}",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-${rust_target}.zip",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
"bin": "${package}-v${version}-${rust_target}/${package}",
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {},
|
||||
"aarch64_linux_gnu": {}
|
||||
"aarch64_linux_gnu": {},
|
||||
"powerpc64le_linux_gnu": {},
|
||||
"riscv64_linux_gnu": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"version_range": ">= 0.1.0",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
|
||||
@@ -7,11 +7,15 @@
|
||||
"${package}-${rust_target}.zip"
|
||||
],
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {}
|
||||
"aarch64_windows": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {}
|
||||
"aarch64_windows": {},
|
||||
"powerpc64le_linux_musl": {},
|
||||
"riscv64_linux_musl": {},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-${version}-osx-aarch_64.zip"
|
||||
},
|
||||
"powerpc64le_linux_gnu": {
|
||||
"asset_name": "${package}-${version}-linux-ppcle_64.zip"
|
||||
},
|
||||
"s390x_linux_gnu": {
|
||||
"asset_name": "${package}-${version}-linux-s390_64.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-v${version}.darwin.aarch64.tar.xz"
|
||||
},
|
||||
"riscv64_linux_musl": {
|
||||
"asset_name": "${package}-v${version}.linux.riscv64.tar.xz"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}_${version}_darwin_arm64.tar.gz"
|
||||
},
|
||||
"powerpc64le_linux_musl": {
|
||||
"asset_name": "${package}_${version}_linux_ppc64le.tar.gz"
|
||||
},
|
||||
"s390x_linux_musl": {
|
||||
"asset_name": "${package}_${version}_linux_s390x.tar.gz"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,22 +3,20 @@
|
||||
"tag_prefix": "",
|
||||
"rust_crate": "${package}-cli",
|
||||
"version_range": ">= 0.8.0",
|
||||
"asset_name": "${package}-${rust_target_os}-${rust_target_arch}.gz",
|
||||
"bin": "${package}${exe}",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-x86_64.gz"
|
||||
},
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}-darwin-x86_64.gz"
|
||||
"asset_name": "${package}-darwin-${rust_target_arch}.gz"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-windows-x86_64.zip"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-aarch64.gz"
|
||||
"asset_name": "${package}-${rust_target_os}-${rust_target_arch}.zip"
|
||||
},
|
||||
"aarch64_linux_gnu": {},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-darwin-aarch64.gz"
|
||||
}
|
||||
"asset_name": "${package}-darwin-${rust_target_arch}.gz"
|
||||
},
|
||||
"riscv64_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}_${version}_macOS-ARM64.tar.gz"
|
||||
},
|
||||
"powerpc64le_linux_gnu": {
|
||||
"asset_name": "${package}_${version}_Linux-PPC64LE.tar.gz"
|
||||
},
|
||||
"s390x_linux_gnu": {
|
||||
"asset_name": "${package}_${version}_Linux-s390x.tar.gz"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"version_range": ">= 1.0.0",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {}
|
||||
"aarch64_macos": {},
|
||||
"riscv64_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"repository": "https://github.com/wasm-bindgen/wasm-bindgen",
|
||||
"tag_prefix": "",
|
||||
"rust_crate": "wasm-bindgen-cli",
|
||||
"rust_crate": "${package}-cli",
|
||||
"version_range": ">= 0.2.88",
|
||||
"asset_name": "wasm-bindgen-${version}-${rust_target}.tar.gz",
|
||||
"bin": [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"repository": "https://github.com/bytecodealliance/wasmtime",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "wasmtime-cli",
|
||||
"rust_crate": "${package}-cli",
|
||||
"asset_name": "${package}-v${version}-${rust_target_arch}-${rust_target_os}.tar.xz",
|
||||
"bin": "${package}-v${version}-${rust_target_arch}-${rust_target_os}/${package}${exe}",
|
||||
"platform": {
|
||||
@@ -14,6 +14,11 @@
|
||||
"aarch64_macos": {},
|
||||
"aarch64_windows": {
|
||||
"asset_name": "${package}-v${version}-${rust_target_arch}-${rust_target_os}.zip"
|
||||
}
|
||||
},
|
||||
"riscv64_linux_gnu": {
|
||||
"asset_name": "${package}-v${version}-riscv64gc-${rust_target_os}.tar.xz",
|
||||
"bin": "${package}-v${version}-riscv64gc-${rust_target_os}/${package}${exe}"
|
||||
},
|
||||
"s390x_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-v${version}-${rust_target}.zip"
|
||||
|
||||
@@ -468,6 +468,21 @@ fn main() -> Result<()> {
|
||||
{
|
||||
download_info.remove(&HostPlatform::aarch64_linux_gnu);
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::powerpc64le_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::powerpc64le_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::powerpc64le_linux_gnu);
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::riscv64_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::riscv64_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::riscv64_linux_gnu);
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::s390x_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::s390x_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::s390x_linux_gnu);
|
||||
}
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::x86_64_macos)
|
||||
&& download_info.contains_key(&HostPlatform::aarch64_macos)
|
||||
@@ -589,6 +604,21 @@ fn main() -> Result<()> {
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if p == HostPlatform::powerpc64le_linux_gnu
|
||||
&& latest_manifest.download_info.contains_key(&HostPlatform::powerpc64le_linux_musl)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if p == HostPlatform::riscv64_linux_gnu
|
||||
&& latest_manifest.download_info.contains_key(&HostPlatform::riscv64_linux_musl)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if p == HostPlatform::s390x_linux_gnu
|
||||
&& latest_manifest.download_info.contains_key(&HostPlatform::s390x_linux_musl)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
bail!(
|
||||
"platform list in base manifest for {package} contains {p:?}, \
|
||||
|
||||
@@ -285,16 +285,6 @@ impl BaseManifest {
|
||||
if self.platform.is_empty() {
|
||||
panic!("At least one platform must be specified");
|
||||
}
|
||||
if !self.prefer_linux_gnu
|
||||
&& (self.platform.contains_key(&HostPlatform::x86_64_linux_gnu)
|
||||
&& self.platform.contains_key(&HostPlatform::x86_64_linux_musl))
|
||||
&& (self.platform.contains_key(&HostPlatform::aarch64_linux_gnu)
|
||||
&& self.platform.contains_key(&HostPlatform::aarch64_linux_musl))
|
||||
{
|
||||
panic!(
|
||||
"When *-linux-musl platform is specified, *-linux-gnu for the same architecture will never be used and should not be specified"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,10 +337,12 @@ impl StringOrArray {
|
||||
}
|
||||
}
|
||||
|
||||
/// GitHub Actions Runner supports Linux (x86_64, AArch64, Arm), Windows (x86_64, AArch64),
|
||||
/// and macOS (x86_64, AArch64).
|
||||
/// GitHub Actions Runner supports x86_64/AArch64/Arm Linux, x86_64/AArch64 Windows,
|
||||
/// and x86_64/AArch64 macOS.
|
||||
/// <https://github.com/actions/runner/blob/v2.321.0/.github/workflows/build.yml#L21>
|
||||
/// <https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners>
|
||||
/// <https://docs.github.com/en/actions/reference/runners/self-hosted-runners#supported-processor-architectures>
|
||||
/// And IBM provides runners for powerpc64le/s390x Linux.
|
||||
/// <https://github.com/IBM/actionspz>
|
||||
///
|
||||
/// Note:
|
||||
/// - Static-linked binaries compiled for linux-musl will also work on linux-gnu systems and are
|
||||
@@ -376,6 +368,12 @@ pub enum HostPlatform {
|
||||
aarch64_linux_musl,
|
||||
aarch64_macos,
|
||||
aarch64_windows,
|
||||
powerpc64le_linux_gnu,
|
||||
powerpc64le_linux_musl,
|
||||
riscv64_linux_gnu,
|
||||
riscv64_linux_musl,
|
||||
s390x_linux_gnu,
|
||||
s390x_linux_musl,
|
||||
}
|
||||
|
||||
impl HostPlatform {
|
||||
@@ -390,6 +388,12 @@ impl HostPlatform {
|
||||
Self::aarch64_linux_musl => "aarch64-unknown-linux-musl",
|
||||
Self::aarch64_macos => "aarch64-apple-darwin",
|
||||
Self::aarch64_windows => "aarch64-pc-windows-msvc",
|
||||
Self::powerpc64le_linux_gnu => "powerpc64le-unknown-linux-gnu",
|
||||
Self::powerpc64le_linux_musl => "powerpc64le-unknown-linux-musl",
|
||||
Self::riscv64_linux_gnu => "riscv64gc-unknown-linux-gnu",
|
||||
Self::riscv64_linux_musl => "riscv64gc-unknown-linux-musl",
|
||||
Self::s390x_linux_gnu => "s390x-unknown-linux-gnu",
|
||||
Self::s390x_linux_musl => "s390x-unknown-linux-musl",
|
||||
}
|
||||
}
|
||||
#[must_use]
|
||||
@@ -403,6 +407,9 @@ impl HostPlatform {
|
||||
| Self::x86_64_linux_musl
|
||||
| Self::x86_64_macos
|
||||
| Self::x86_64_windows => "x86_64",
|
||||
Self::powerpc64le_linux_gnu | Self::powerpc64le_linux_musl => "powerpc64",
|
||||
Self::riscv64_linux_gnu | Self::riscv64_linux_musl => "riscv64",
|
||||
Self::s390x_linux_gnu | Self::s390x_linux_musl => "s390x",
|
||||
}
|
||||
}
|
||||
#[must_use]
|
||||
@@ -411,7 +418,13 @@ impl HostPlatform {
|
||||
Self::aarch64_linux_gnu
|
||||
| Self::aarch64_linux_musl
|
||||
| Self::x86_64_linux_gnu
|
||||
| Self::x86_64_linux_musl => "linux",
|
||||
| Self::x86_64_linux_musl
|
||||
| Self::powerpc64le_linux_gnu
|
||||
| Self::powerpc64le_linux_musl
|
||||
| Self::riscv64_linux_gnu
|
||||
| Self::riscv64_linux_musl
|
||||
| Self::s390x_linux_gnu
|
||||
| Self::s390x_linux_musl => "linux",
|
||||
Self::aarch64_macos | Self::x86_64_macos => "macos",
|
||||
Self::aarch64_windows | Self::x86_64_windows => "windows",
|
||||
}
|
||||
|
||||
@@ -9,6 +9,15 @@ cd -- "$(dirname -- "$0")"/..
|
||||
#
|
||||
# USAGE:
|
||||
# ./tools/manifest.sh [PACKAGE [VERSION_REQ]]
|
||||
# ./tools/manifest.sh full
|
||||
|
||||
if [[ $# -eq 1 ]] && [[ "$1" == "full" ]]; then
|
||||
for manifest in tools/codegen/base/*.json; do
|
||||
package="${manifest##*/}"
|
||||
package="${package%.*}"
|
||||
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "${package}"
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "$@"
|
||||
|
||||
Reference in New Issue
Block a user