Skip to content

Commit 5686305

Browse files
krlmlrclaude
andauthored
fix(ci): ignore duckdb/duckplyr build failures on arm64, bump auxiliary workflows to ubuntu-26.04 (#2493)
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 42335c6 commit 5686305

6 files changed

Lines changed: 32 additions & 77 deletions

File tree

.github/versions-matrix.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ list(
77
# updater, which would otherwise run the test suite a second time against
88
# the backend and accept backend-specific snapshots.
99
data.frame(
10-
os = "ubuntu-22.04",
10+
os = "ubuntu-26.04",
1111
r = "release",
1212
env = paste0(
1313
"DM_TEST_SRC=",
@@ -36,7 +36,7 @@ list(
3636
# and tests the instrumented sources. SKIP_UPDATE_SNAPSHOTS opts out of the
3737
# snapshot updater, which would otherwise run the instrumented tests twice.
3838
data.frame(
39-
os = "ubuntu-22.04",
39+
os = "ubuntu-26.04",
4040
r = "release",
4141
env = "DM_VALIDATE=true\nSKIP_UPDATE_SNAPSHOTS=true",
4242
covr = "true",

.github/workflows/claude.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

.github/workflows/get-extra/action.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,16 @@ runs:
88
using: "composite"
99
steps:
1010
- name: Get extra packages
11+
# Read with read.dcf(), not `grep | cut`: a DCF value may wrap onto
12+
# indented continuation lines, and `grep` only ever returns the first
13+
# line -- which is blank exactly when the field wraps, as a multi-package
14+
# value normally does. That silently yielded an empty string, so every
15+
# reference in this field went unread, including the
16+
# `=?ignore-build-errors` parameters that keep a dependency which cannot
17+
# be built from source on some runner from failing the whole check.
1118
id: get-extra
1219
run: |
13-
set -x
14-
packages=$( ( grep Config/gha/extra-packages DESCRIPTION || true ) | cut -d " " -f 2)
15-
echo packages=$packages >> $GITHUB_OUTPUT
16-
shell: bash
20+
x <- read.dcf("DESCRIPTION", fields = "Config/gha/extra-packages")[1, 1]
21+
packages <- if (is.na(x)) "" else gsub("[[:space:]]+", " ", trimws(x))
22+
cat("packages=", packages, "\n", sep = "", file = Sys.getenv("GITHUB_OUTPUT"), append = TRUE)
23+
shell: Rscript {0}

.github/workflows/install/action.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ runs:
126126

127127
- name: Read `Config/gha/extra-packages` from DESCRIPTION
128128
id: get-extra
129-
run: |
130-
set -x
131-
packages=$( ( grep Config/gha/extra-packages DESCRIPTION || true ) | cut -d " " -f 2-)
132-
echo packages=$packages >> $GITHUB_OUTPUT
133-
shell: bash
129+
uses: ./.github/workflows/get-extra
134130

135131
- name: Let sudo keep R library env vars (ubuntu-26.04 forbids `sudo -E`)
136132
# r-lib/actions/setup-r-dependencies installs pak with

.github/workflows/unblock.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ concurrency:
1818

1919
jobs:
2020
unblock:
21-
runs-on: ubuntu-latest
21+
runs-on: ubuntu-26.04
2222
steps:
2323
- uses: actions/checkout@v4
2424

DESCRIPTION

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,23 @@ Config/Needs/website:
115115
whisker,
116116
xml2
117117
Config/Needs/check: anthonynorth/roxyglobals
118-
VignetteBuilder:
118+
Config/gha/extra-packages:
119+
odbc=?ignore-build-errors,
120+
duckdb=?ignore-build-errors,
121+
duckplyr=?ignore-build-errors
122+
Config/comment/gha/extra-packages: Posit Package Manager publishes no
123+
aarch64 Windows binaries, so windows-11-arm builds every dependency
124+
from source: odbc's vendored nanodbc does not compile against the
125+
aarch64 Rtools45, and duckdb bundles the whole DuckDB C++ engine
126+
(duckplyr needs it). The parameter demotes a failed source build of
127+
that one package to a warning and drops it from the plan; it is keyed
128+
on the build failing, not on the platform, so every runner that has a
129+
binary still checks against these. Safe because the check is written
130+
for it: tests guard with skip_if_not_installed(), and rcc downgrades
131+
RCMDCHECK_ERROR_ON to warning when a declared dependency is missing.
132+
Same lever as duckdb/duckdb-r, explained in its
133+
handbook/operations/ci/matrix/README.md.
134+
VignetteBuilder:
119135
knitr
120136
Config/autostyle/scope: line_breaks
121137
Config/autostyle/strict: true

0 commit comments

Comments
 (0)