From 76f451f735f17ad51d69d9cfbd9b66691b5d3742 Mon Sep 17 00:00:00 2001 From: "Benjamin R. J. Schwedler" Date: Fri, 29 May 2026 10:24:08 -0500 Subject: [PATCH] Assert Quarto binary path and symlink target The existing /usr/local/bin/quarto file: resource asserted only that the symlink exists with filetype symlink. Promote it to also assert the link target, and add an explicit entry for the real binary so that both paths required by Workbench's Quarto install are covered structurally. Quarto is bundled inside the Workbench install at /lib/rstudio-server/bin/quarto/bin/quarto, with the symlink at /usr/local/bin/quarto created by the Containerfile. If either path moves, the linked-to assertion will fail loudly rather than manifesting later as a broken quarto invocation. --- workbench/2025.09/test/goss.yaml | 7 ++++++- workbench/2026.01/test/goss.yaml | 7 ++++++- workbench/2026.04/test/goss.yaml | 7 ++++++- workbench/2026.05/test/goss.yaml | 7 ++++++- workbench/template/test/goss.yaml.jinja2 | 7 ++++++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/workbench/2025.09/test/goss.yaml b/workbench/2025.09/test/goss.yaml index e4eee1b..97f19f5 100644 --- a/workbench/2025.09/test/goss.yaml +++ b/workbench/2025.09/test/goss.yaml @@ -110,10 +110,15 @@ file: contents: - "RSPM=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - "CRAN=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - # Check for symlinked Quarto executable + # Quarto is bundled with Workbench. + /lib/rstudio-server/bin/quarto/bin/quarto: + exists: true + filetype: file + mode: "0755" /usr/local/bin/quarto: exists: true filetype: symlink + linked-to: /lib/rstudio-server/bin/quarto/bin/quarto # TinyTeX is installed under /opt/.TinyTeX (via HOME="/opt") so non-root runtime # users can read the install; tlmgr path add symlinks the binaries into # /usr/local/bin so they are on PATH. diff --git a/workbench/2026.01/test/goss.yaml b/workbench/2026.01/test/goss.yaml index ceaf0f9..a83813e 100644 --- a/workbench/2026.01/test/goss.yaml +++ b/workbench/2026.01/test/goss.yaml @@ -110,10 +110,15 @@ file: contents: - "RSPM=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - "CRAN=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - # Check for symlinked Quarto executable + # Quarto is bundled with Workbench. + /lib/rstudio-server/bin/quarto/bin/quarto: + exists: true + filetype: file + mode: "0755" /usr/local/bin/quarto: exists: true filetype: symlink + linked-to: /lib/rstudio-server/bin/quarto/bin/quarto # TinyTeX is installed under /opt/.TinyTeX (via HOME="/opt") so non-root runtime # users can read the install; tlmgr path add symlinks the binaries into # /usr/local/bin so they are on PATH. diff --git a/workbench/2026.04/test/goss.yaml b/workbench/2026.04/test/goss.yaml index ed40f6b..3767120 100644 --- a/workbench/2026.04/test/goss.yaml +++ b/workbench/2026.04/test/goss.yaml @@ -110,10 +110,15 @@ file: contents: - "RSPM=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - "CRAN=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - # Check for symlinked Quarto executable + # Quarto is bundled with Workbench. + /lib/rstudio-server/bin/quarto/bin/quarto: + exists: true + filetype: file + mode: "0755" /usr/local/bin/quarto: exists: true filetype: symlink + linked-to: /lib/rstudio-server/bin/quarto/bin/quarto # Check for R installation /opt/R/4.5.3/bin/R: diff --git a/workbench/2026.05/test/goss.yaml b/workbench/2026.05/test/goss.yaml index 1841f52..650a238 100644 --- a/workbench/2026.05/test/goss.yaml +++ b/workbench/2026.05/test/goss.yaml @@ -110,10 +110,15 @@ file: contents: - "RSPM=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - "CRAN=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - # Check for symlinked Quarto executable + # Quarto is bundled with Workbench. + /lib/rstudio-server/bin/quarto/bin/quarto: + exists: true + filetype: file + mode: "0755" /usr/local/bin/quarto: exists: true filetype: symlink + linked-to: /lib/rstudio-server/bin/quarto/bin/quarto # TinyTeX is installed under /opt/.TinyTeX (via HOME="/opt") so non-root runtime # users can read the install; tlmgr path add symlinks the binaries into # /usr/local/bin so they are on PATH. diff --git a/workbench/template/test/goss.yaml.jinja2 b/workbench/template/test/goss.yaml.jinja2 index 11f3b3f..945cf15 100644 --- a/workbench/template/test/goss.yaml.jinja2 +++ b/workbench/template/test/goss.yaml.jinja2 @@ -122,10 +122,15 @@ file: - "RSPM=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" - "CRAN=https://p3m.dev/cran/__linux__/{{ .Env.IMAGE_OS_CODENAME }}/latest" {%- endraw %} - # Check for symlinked Quarto executable + # Quarto is bundled with Workbench. + /lib/rstudio-server/bin/quarto/bin/quarto: + exists: true + filetype: file + mode: "0755" /usr/local/bin/quarto: exists: true filetype: symlink + linked-to: /lib/rstudio-server/bin/quarto/bin/quarto # TinyTeX is installed under /opt/.TinyTeX (via HOME="/opt") so non-root runtime # users can read the install; tlmgr path add symlinks the binaries into # /usr/local/bin so they are on PATH.