Add tests for arm64 Linux runner OS detection (#462)
149ca49 · John Downey · 2026-06-30 20:39
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