Add tests for arm64 Linux runner OS detection (#462)

149ca49 · John Downey · 2026-06-30 20:39

3 files +40 -0
Message
{commit_body(@commit)}

Files changed

modified dist/index.js
+1 −0
@@ -39137,6 +39137,7 @@ function debugLoggingEnabled() {
39137 39137 getGleamVersion,
39138 39138 getOTPVersion,
39139 39139 getRebar3Version,
39140 + getRunnerOSVersion,
39140 39141 getVersionFromSpec,
39141 39142 githubAMDRunnerArchs,
39142 39143 githubARMRunnerArchs,
modified src/setup-beam.js
+1 −0
@@ -1306,6 +1306,7 @@ export default {
1306 1306 getGleamVersion,
1307 1307 getOTPVersion,
1308 1308 getRebar3Version,
1309 + getRunnerOSVersion,
1309 1310 getVersionFromSpec,
1310 1311 githubAMDRunnerArchs,
1311 1312 githubARMRunnerArchs,
modified test/setup-beam.test.js
+38 −0
@@ -596,6 +596,44 @@ describe('OTP arch-specific install', () => {
596 596 })
597 597 })
598 598
599 +describe('.getRunnerOSVersion(_)', () => {
600 + it('maps x86 ImageOS values to their container', async () => {
601 + const previousImageOS = process.env.ImageOS
602 +
603 + process.env.ImageOS = 'ubuntu22'
604 + assert.strictEqual(setupBeam.getRunnerOSVersion(), 'ubuntu-22.04')
605 +
606 + process.env.ImageOS = 'ubuntu24'
607 + assert.strictEqual(setupBeam.getRunnerOSVersion(), 'ubuntu-24.04')
608 +
609 + process.env.ImageOS = previousImageOS
610 + })
611 +
612 + it('maps arm64 ImageOS variants to the same container as x86', async () => {
613 + const previousImageOS = process.env.ImageOS
614 +
615 + process.env.ImageOS = 'ubuntu22-arm64'
616 + assert.strictEqual(setupBeam.getRunnerOSVersion(), 'ubuntu-22.04')
617 +
618 + process.env.ImageOS = 'ubuntu24-arm64'
619 + assert.strictEqual(setupBeam.getRunnerOSVersion(), 'ubuntu-24.04')
620 +
621 + process.env.ImageOS = previousImageOS
622 + })
623 +
624 + it('throws for genuinely unknown ImageOS values', async () => {
625 + const previousImageOS = process.env.ImageOS
626 +
627 + process.env.ImageOS = 'plan9'
628 + assert.throws(
629 + () => setupBeam.getRunnerOSVersion(),
630 + /Tried to map a target OS/,
631 + )
632 +
633 + process.env.ImageOS = previousImageOS
634 + })
635 +})
636 +
599 637 describe('.getOTPVersion(_) - Elixir', () => {
600 638 let got
601 639 let expected

Parents: 48f5ea2