fix: download correct Gleam binary for macOS and Linux ARM64 (#428)

2abe6cd · peter madsen-mygdal · 2026-03-14 16:29

2 files +46 -4
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