diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 5dfa3a5..b53215e 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -8,9 +8,12 @@ on: - main jobs: build: - runs-on: ubuntu-latest + runs-on: ${{ matrix.arch.runner }} strategy: matrix: + arch: + - { platform: amd64, runner: ubuntu-24.04 } + - { platform: arm64, runner: ubuntu-24.04-arm } node-version: [22.x] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -19,4 +22,6 @@ jobs: with: node-version: ${{ matrix.node-version }} - name: Install - run: npm ci \ No newline at end of file + run: npm ci + - name: Verify downloaded driver runs on ${{ matrix.arch.platform }} + run: npm test diff --git a/install.js b/install.js index 368644d..f26c394 100644 --- a/install.js +++ b/install.js @@ -53,6 +53,9 @@ function getDriverUrl() { // or unreleased 0.30.0 return `${urlBase}geckodriver-0.30.0-linux-arm.tar.gz`; } + if (os.arch() === 'arm64') { + return `${urlBase}geckodriver-${GECKODRIVER_VERSION}-linux-aarch64.tar.gz`; + } const arch = os.arch() === 'x64' ? '64' : '32'; return `${urlBase}geckodriver-${GECKODRIVER_VERSION}-linux${arch}.tar.gz`; }