From 414fa053a61c45fe4653f4befff1637eb7fe7bcc Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 27 Jul 2025 12:28:44 +0900 Subject: [PATCH 1/4] add support for Linux ARM64 in DownloadURL --- __test__/DownloadURL.test.ts | 9 +++++++++ src/DownloadURL.ts | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/__test__/DownloadURL.test.ts b/__test__/DownloadURL.test.ts index 72ed42a..e464c76 100644 --- a/__test__/DownloadURL.test.ts +++ b/__test__/DownloadURL.test.ts @@ -14,6 +14,10 @@ describe("ArchiveDownloadURL", () => { { os: OS.LINUX, arch: Arch.AMD64 }, "https://ftp.mozilla.org/pub/firefox/releases/134.0/linux-x86_64/en-US/firefox-134.0.tar.bz2", ], + [ + { os: OS.LINUX, arch: Arch.ARM64 }, + "https://ftp.mozilla.org/pub/firefox/releases/134.0/linux-aarch64/en-US/firefox-134.0.tar.bz2", + ], [ { os: OS.MACOS, arch: Arch.AMD64 }, "https://ftp.mozilla.org/pub/firefox/releases/134.0/mac/en-US/Firefox%20134.0.dmg", @@ -77,6 +81,11 @@ describe("LatestDownloadURL", () => { { os: OS.LINUX, arch: Arch.AMD64 }, "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US", ], + [ + LatestVersion.LATEST, + { os: OS.LINUX, arch: Arch.ARM64 }, + "https://download.mozilla.org/?product=firefox-latest&os=linux64-aarch64&lang=en-US", + ], [ LatestVersion.LATEST_DEVEDITION, { os: OS.LINUX, arch: Arch.AMD64 }, diff --git a/src/DownloadURL.ts b/src/DownloadURL.ts index b0cce8c..25a762b 100644 --- a/src/DownloadURL.ts +++ b/src/DownloadURL.ts @@ -52,6 +52,8 @@ export class ArchiveDownloadURL implements DownloadURL { return "linux-i686"; } else if (os === OS.LINUX && arch === Arch.AMD64) { return "linux-x86_64"; + } else if (os === OS.LINUX && arch === Arch.ARM64) { + return "linux-aarch64"; } else if (os === OS.WINDOWS && arch === Arch.I686) { return "win32"; } else if (os === OS.WINDOWS && arch === Arch.AMD64) { @@ -120,6 +122,8 @@ export class LatestDownloadURL implements DownloadURL { return "linux"; } else if (os === OS.LINUX && arch === Arch.AMD64) { return "linux64"; + } else if (os === OS.LINUX && arch === Arch.ARM64) { + return "linux64-aarch64"; } else if (os === OS.WINDOWS && arch === Arch.I686) { return "win"; } else if (os === OS.WINDOWS && arch === Arch.AMD64) { From 93f57e77662c8804efe5c71219aa8e00f6724165 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 27 Jul 2025 12:28:54 +0900 Subject: [PATCH 2/4] run test on Linux ARM64 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6069599..71fde3d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ jobs: needs: [build] strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} steps: - uses: actions/download-artifact@v4 From ebaef280ed3fd6501cdb2e10ff155aa2e89f414c Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 27 Jul 2025 12:51:13 +0900 Subject: [PATCH 3/4] Use beta-latest instead of latest-esr in GitHub Actions workflow --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71fde3d..987ea95 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,14 +43,14 @@ jobs: - run: | firefox --version ${{ steps.test-default.outputs.firefox-path }} --version - - name: Test latest-esr + - name: Test latest-beta uses: ./ with: - firefox-version: latest-esr - id: test-latest-esr + firefox-version: latest-beta + id: test-latest-beta - run: | firefox --version - ${{ steps.test-latest-esr.outputs.firefox-path }} --version + ${{ steps.test-latest-beta.outputs.firefox-path }} --version - name: Test 132.0 uses: ./ with: @@ -87,16 +87,16 @@ jobs: run: | firefox --version & "${{ steps.test-default.outputs.firefox-path }}" --version - - name: Test latest-esr + - name: Test latest-beta uses: ./ with: - firefox-version: latest-esr - id: test-latest-esr - - name: Test latest-esr version + firefox-version: latest-beta + id: test-latest-beta + - name: Test latest-beta version shell: pwsh run: | firefox --version - & "${{ steps.test-latest-esr.outputs.firefox-path }}" --version + & "${{ steps.test-latest-beta.outputs.firefox-path }}" --version - name: Test 132.0 uses: ./ with: From 4efaf970190d28e0b7f88dcb93f9e2b354186914 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 27 Jul 2025 13:06:20 +0900 Subject: [PATCH 4/4] run supported Linux ARM builds --- .github/workflows/build.yml | 48 ++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 987ea95..ebf54d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,8 @@ jobs: - name: Test default uses: ./ id: test-default - - run: | + - name: Test default version + run: | firefox --version ${{ steps.test-default.outputs.firefox-path }} --version - name: Test latest-beta @@ -48,25 +49,28 @@ jobs: with: firefox-version: latest-beta id: test-latest-beta - - run: | + - name: Test latest-beta version + run: | firefox --version ${{ steps.test-latest-beta.outputs.firefox-path }} --version - - name: Test 132.0 + - name: Test 140.0 uses: ./ with: - firefox-version: "132.0" - id: test-132-0 - - run: | + firefox-version: "140.0" + id: test-140 + - name: Test 140.0 version + run: | firefox --version - ${{ steps.test-132-0.outputs.firefox-path }} --version - - name: Test devedition-132.0b1 + ${{ steps.test-140.outputs.firefox-path }} --version + - name: Test devedition-140.0b1 uses: ./ with: - firefox-version: "devedition-132.0b1" - id: test-devedition-132-0b1 - - run: | + firefox-version: "devedition-140.0b1" + id: test-devedition-140-0b1 + - name: Test devedition-140.0b1 version + run: | firefox --version - ${{ steps.test-devedition-132-0b1.outputs.firefox-path }} --version + ${{ steps.test-devedition-140-0b1.outputs.firefox-path }} --version test-windows: needs: [build] @@ -97,23 +101,23 @@ jobs: run: | firefox --version & "${{ steps.test-latest-beta.outputs.firefox-path }}" --version - - name: Test 132.0 + - name: Test 140.0 uses: ./ with: - firefox-version: "132.0" - id: test-132-0 - - name: Test 132.0 version + firefox-version: "140.0" + id: test-140 + - name: Test 140.0 version shell: pwsh run: | firefox --version - & "${{ steps.test-132-0.outputs.firefox-path }}" --version - - name: Test devedition-132.0b1 + & "${{ steps.test-140.outputs.firefox-path }}" --version + - name: Test devedition-140.0b1 uses: ./ with: - firefox-version: "devedition-132.0b1" - id: test-devedition-132-0b1 - - name: Test devedition-132.0b1 version + firefox-version: "devedition-140.0b1" + id: test-devedition-140-0b1 + - name: Test devedition-140.0b1 version shell: pwsh run: | firefox --version - & "${{ steps.test-devedition-132-0b1.outputs.firefox-path }}" --version + & "${{ steps.test-devedition-140-0b1.outputs.firefox-path }}" --version