fix: download correct Gleam binary for macOS and Linux ARM64 (#428)
2abe6cd · peter madsen-mygdal · 2026-03-14 16:29
Message
{commit_body(@commit)}
Files changed
modified
dist/index.js
+23
−2
@@ -58558,12 +58558,14 @@ async function install(toolName, opts) {
| 58558 | 58558 | tool: 'Gleam', |
| 58559 | 58559 | linux: { |
| 58560 | 58560 | downloadToolURL: () => { |
| 58561 | + const arch = getRunnerOSArchitecture() | |
| 58561 | 58562 | let gz |
| 58562 | 58563 | if ( |
| 58563 | 58564 | versionSpec === 'nightly' || |
| 58564 | 58565 | node_modules_semver.gt(versionSpec, 'v0.22.1') |
| 58565 | 58566 | ) { |
| 58566 | − gz = `gleam-${versionSpec}-x86_64-unknown-linux-musl.tar.gz` | |
| 58567 | + const target = arch === 'arm64' ? 'aarch64' : 'x86_64' | |
| 58568 | + gz = `gleam-${versionSpec}-${target}-unknown-linux-musl.tar.gz` | |
| 58567 | 58569 | } else { |
| 58568 | 58570 | gz = `gleam-${versionSpec}-linux-amd64.tar.gz` |
| 58569 | 58571 | } |
@@ -58627,7 +58629,26 @@ async function install(toolName, opts) {
| 58627 | 58629 | }, |
| 58628 | 58630 | }, |
| 58629 | 58631 | } |
| 58630 | − installOpts.darwin = installOpts.linux | |
| 58632 | + installOpts.darwin = { | |
| 58633 | + downloadToolURL: () => { | |
| 58634 | + const arch = getRunnerOSArchitecture() | |
| 58635 | + let gz | |
| 58636 | + if (versionSpec === 'nightly' || node_modules_semver.gt(versionSpec, 'v0.22.1')) { | |
| 58637 | + const target = arch === 'arm64' ? 'aarch64' : 'x86_64' | |
| 58638 | + gz = `gleam-${versionSpec}-${target}-apple-darwin.tar.gz` | |
| 58639 | + } else { | |
| 58640 | + gz = | |
| 58641 | + arch === 'arm64' | |
| 58642 | + ? `gleam-${versionSpec}-macos-arm64.tar.gz` | |
| 58643 | + : `gleam-${versionSpec}-macos.tar.gz` | |
| 58644 | + } | |
| 58645 | + | |
| 58646 | + return `https://github.com/gleam-lang/gleam/releases/download/${versionSpec}/${gz}` | |
| 58647 | + }, | |
| 58648 | + extract: installOpts.linux.extract, | |
| 58649 | + postExtract: installOpts.linux.postExtract, | |
| 58650 | + reportVersion: installOpts.linux.reportVersion, | |
| 58651 | + } | |
| 58631 | 58652 | break |
| 58632 | 58653 | case 'rebar3': |
| 58633 | 58654 | installOpts = { |
modified
src/setup-beam.js
+23
−2
@@ -1051,12 +1051,14 @@ async function install(toolName, opts) {
| 1051 | 1051 | tool: 'Gleam', |
| 1052 | 1052 | linux: { |
| 1053 | 1053 | downloadToolURL: () => { |
| 1054 | + const arch = getRunnerOSArchitecture() | |
| 1054 | 1055 | let gz |
| 1055 | 1056 | if ( |
| 1056 | 1057 | versionSpec === 'nightly' || |
| 1057 | 1058 | semver.gt(versionSpec, 'v0.22.1') |
| 1058 | 1059 | ) { |
| 1059 | − gz = `gleam-${versionSpec}-x86_64-unknown-linux-musl.tar.gz` | |
| 1060 | + const target = arch === 'arm64' ? 'aarch64' : 'x86_64' | |
| 1061 | + gz = `gleam-${versionSpec}-${target}-unknown-linux-musl.tar.gz` | |
| 1060 | 1062 | } else { |
| 1061 | 1063 | gz = `gleam-${versionSpec}-linux-amd64.tar.gz` |
| 1062 | 1064 | } |
@@ -1120,7 +1122,26 @@ async function install(toolName, opts) {
| 1120 | 1122 | }, |
| 1121 | 1123 | }, |
| 1122 | 1124 | } |
| 1123 | − installOpts.darwin = installOpts.linux | |
| 1125 | + installOpts.darwin = { | |
| 1126 | + downloadToolURL: () => { | |
| 1127 | + const arch = getRunnerOSArchitecture() | |
| 1128 | + let gz | |
| 1129 | + if (versionSpec === 'nightly' || semver.gt(versionSpec, 'v0.22.1')) { | |
| 1130 | + const target = arch === 'arm64' ? 'aarch64' : 'x86_64' | |
| 1131 | + gz = `gleam-${versionSpec}-${target}-apple-darwin.tar.gz` | |
| 1132 | + } else { | |
| 1133 | + gz = | |
| 1134 | + arch === 'arm64' | |
| 1135 | + ? `gleam-${versionSpec}-macos-arm64.tar.gz` | |
| 1136 | + : `gleam-${versionSpec}-macos.tar.gz` | |
| 1137 | + } | |
| 1138 | + | |
| 1139 | + return `https://github.com/gleam-lang/gleam/releases/download/${versionSpec}/${gz}` | |
| 1140 | + }, | |
| 1141 | + extract: installOpts.linux.extract, | |
| 1142 | + postExtract: installOpts.linux.postExtract, | |
| 1143 | + reportVersion: installOpts.linux.reportVersion, | |
| 1144 | + } | |
| 1124 | 1145 | break |
| 1125 | 1146 | case 'rebar3': |
| 1126 | 1147 | installOpts = { |
Parents: d55fdba