From 1adab191a1b826f03d8bcfde22bcced9e7f5ed79 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 8 Apr 2026 15:24:51 +0200 Subject: [PATCH 1/2] Add CI workflow for tool install on arm64 Linux and macOS Integration test for quarto install tinytex and chrome-headless-shell on platforms not covered by smoke tests (arm64 Linux, macOS). Path-filtered to src/tools/** with weekly schedule for upstream breakage detection. Also add test-install.yml to paths-ignore in test-smokes-parallel.yml and test-ff-matrix.yml so changes to the new workflow don't trigger unrelated test suites. --- .github/workflows/test-ff-matrix.yml | 2 + .github/workflows/test-install.yml | 51 ++++++++++++++++++++++ .github/workflows/test-smokes-parallel.yml | 1 + 3 files changed, 54 insertions(+) create mode 100644 .github/workflows/test-install.yml diff --git a/.github/workflows/test-ff-matrix.yml b/.github/workflows/test-ff-matrix.yml index 8214caa5724..29645fcd5bd 100644 --- a/.github/workflows/test-ff-matrix.yml +++ b/.github/workflows/test-ff-matrix.yml @@ -20,6 +20,7 @@ on: - ".github/workflows/stale-needs-repro.yml" - ".github/workflows/test-bundle.yml" - ".github/workflows/test-smokes-parallel.yml" + - ".github/workflows/test-install.yml" - ".github/workflows/test-quarto-latexmk.yml" - ".github/workflows/update-test-timing.yml" pull_request: @@ -31,6 +32,7 @@ on: - ".github/workflows/performance-check.yml" - ".github/workflows/stale-needs-repro.yml" - ".github/workflows/test-bundle.yml" + - ".github/workflows/test-install.yml" - ".github/workflows/test-smokes-parallel.yml" - ".github/workflows/test-quarto-latexmk.yml" - ".github/workflows/update-test-timing.yml" diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml new file mode 100644 index 00000000000..db85c62cf3e --- /dev/null +++ b/.github/workflows/test-install.yml @@ -0,0 +1,51 @@ +# Integration test for `quarto install` on platforms not covered by smoke tests. +# Smoke tests (test-smokes.yml) cover x86_64 Linux and Windows. +# This workflow fills the gap for arm64 Linux and macOS. +name: Test Tool Install +on: + workflow_dispatch: + push: + branches: + - main + - "v1.*" + paths: + - "src/tools/**" + - ".github/workflows/test-install.yml" + pull_request: + paths: + - "src/tools/**" + - ".github/workflows/test-install.yml" + schedule: + # Weekly Monday 9am UTC — detect upstream CDN/API breakage + - cron: "0 9 * * 1" + +permissions: + contents: read + +jobs: + test-install: + name: Install tools (${{ matrix.os }}) + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04-arm, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout Repo + uses: actions/checkout@v6 + + - uses: ./.github/workflows/actions/quarto-dev + + - name: Install TinyTeX + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + quarto install tinytex + + - name: Install Chrome Headless Shell + run: | + quarto install chrome-headless-shell --no-prompt + + - name: Verify tools with quarto check + run: | + quarto check install diff --git a/.github/workflows/test-smokes-parallel.yml b/.github/workflows/test-smokes-parallel.yml index 48e02401135..1f4185b4944 100644 --- a/.github/workflows/test-smokes-parallel.yml +++ b/.github/workflows/test-smokes-parallel.yml @@ -29,6 +29,7 @@ on: - ".github/workflows/stale-needs-repro.yml" - ".github/workflows/test-bundle.yml" - ".github/workflows/test-ff-matrix.yml" + - ".github/workflows/test-install.yml" - ".github/workflows/test-quarto-latexmk.yml" - ".github/workflows/update-test-timing.yml" push: From 6974a74d004674129545ccfbf115b15db4c3e249 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 8 Apr 2026 15:35:22 +0200 Subject: [PATCH 2/2] Skip chrome-headless-shell install on arm64 until #14334 lands --- .github/workflows/test-install.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml index db85c62cf3e..49d5900c777 100644 --- a/.github/workflows/test-install.yml +++ b/.github/workflows/test-install.yml @@ -43,6 +43,8 @@ jobs: quarto install tinytex - name: Install Chrome Headless Shell + # arm64 Linux support requires #14334. Remove this condition once merged. + if: runner.arch != 'ARM64' run: | quarto install chrome-headless-shell --no-prompt