-
Notifications
You must be signed in to change notification settings - Fork 0
chore(ci): consolidate r-lib actions v2.12.1 #78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
seonghobae
wants to merge
21
commits into
develop
Choose a base branch
from
chore/consolidate-r-lib-actions-v2-12-1
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
d55a2b5
ci: rebuild stringfish from source on mac/windows (RcppParallel oneTB…
seonghobae 31d8d8b
ci: rebuild stringfish on all platforms (Linux hit too)
seonghobae e7b7f3d
ci: rebuild stringfish before install in test-fast
seonghobae 21755e0
ci: rebuild stringfish before install in test-suite
seonghobae 0446de9
ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB…
seonghobae 648e948
ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB…
seonghobae 34ef00f
ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB…
seonghobae b944368
ci: source-build stringfish before dep setup (SimDesign source builds…
seonghobae 46012b7
ci: source-build stringfish before dep setup (SimDesign source builds…
seonghobae 4acfcf0
ci: source-build stringfish before dep setup (SimDesign source builds…
seonghobae d75e72c
ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries f…
seonghobae 28e8442
ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries f…
seonghobae fbba747
ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries f…
seonghobae 810dfa0
Merge branch 'develop' into ci/rebuild-stringfish-abi
opencode-agent[bot] 46c76d0
chore(ci): consolidate r-lib actions v2.12.1
seonghobae bbda0c1
test(ci): reject substituted r-lib actions
seonghobae 6abb556
fix(ci): refresh macOS dependency ABI cache
seonghobae 5a2a541
test(ci): require active cache version configuration
seonghobae ce826e9
ci: rebuild macOS TBB dependents from source
seonghobae b272506
merge(ci): preserve proven oneTBB rebuild sequence
seonghobae 5092a70
test(ci): pin every oneTBB source rebuild argument
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| # r-lib/actions v2.12.1 공급망 추적 | ||
|
|
||
| ## 결정 | ||
|
|
||
| 세 개의 R 검증 workflow에서 사용하는 setup-pandoc, setup-r, | ||
| setup-r-dependencies, check-r-package를 v2.12.1 release commit | ||
| d3c5be51b12e724e68f33216ca3c148b66d5f0b6으로 통일한다. 전체 commit SHA 외의 태그·브랜치·짧은 SHA는 | ||
| 회귀 계약이 거부한다. | ||
|
|
||
| ## 호환성 범위 | ||
|
|
||
| 공식 NEWS에 따르면 v2.12는 Node.js 24 전환, public RSPM 기본값 조정, | ||
| 아키텍처별 cache key와 Pandoc 3.8.3을 포함하고, v2.12.1은 setup-r URL parser | ||
| 경고와 Quarto action을 갱신한다. 현재 workflow의 R matrix, 권한, testthat 실행, | ||
| --no-tests 분리와 scheduled full-suite 계약은 변경하지 않는다. | ||
|
|
||
| ## 되돌리기 | ||
|
|
||
| runner 또는 package 호환성 회귀가 확인되면 네 action을 함께 마지막 검증 SHA로 | ||
| 되돌리고 R-CMD-check, fast/full test suite와 중앙 보안 검사를 같은 헤드에서 다시 | ||
| 수행한다. 일부 action만 되돌리거나 이동 태그로 우회하지 않는다. | ||
|
|
||
| ## 참고문헌 | ||
|
|
||
| R-lib. (2026, June 23). *r-lib/actions v2.12.1* [Software release notes]. | ||
| https://github.com/r-lib/actions/blob/d3c5be51b12e724e68f33216ca3c148b66d5f0b6/NEWS.md | ||
|
|
||
| R-lib. (2026). *Update NEWS for v2.12.1* [Source code commit]. | ||
| https://github.com/r-lib/actions/commit/d3c5be51b12e724e68f33216ca3c148b66d5f0b6 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,142 @@ | ||
| testthat::test_that("CI uses exactly the reviewed r-lib action references", { | ||
| reviewed_sha <- "d3c5be51b12e724e68f33216ca3c148b66d5f0b6" | ||
| workflow_paths <- c( | ||
| testthat::test_path("..", "..", ".github", "workflows", "R-CMD-check.yaml"), | ||
| testthat::test_path("..", "..", ".github", "workflows", "test-fast.yaml"), | ||
| testthat::test_path("..", "..", ".github", "workflows", "test-suite.yaml") | ||
| ) | ||
| expected_actions <- list( | ||
| "R-CMD-check.yaml" = c( | ||
| "setup-pandoc", | ||
| "setup-r", | ||
| "setup-r-dependencies", | ||
| "check-r-package" | ||
| ), | ||
| "test-fast.yaml" = c("setup-r", "setup-r-dependencies"), | ||
| "test-suite.yaml" = c("setup-r", "setup-r-dependencies") | ||
| ) | ||
| action_pattern <- paste0( | ||
| "r-lib/actions/", | ||
| "(setup-pandoc|setup-r-dependencies|setup-r|check-r-package)", | ||
| "@[^[:space:]#]+" | ||
| ) | ||
|
|
||
| for (workflow_path in workflow_paths) { | ||
| workflow_text <- paste(readLines(workflow_path, warn = FALSE), collapse = "\n") | ||
| action_refs <- regmatches( | ||
| workflow_text, | ||
| gregexpr(action_pattern, workflow_text, perl = TRUE) | ||
| )[[1]] | ||
| expected_refs <- paste0( | ||
| "r-lib/actions/", | ||
| expected_actions[[basename(workflow_path)]], | ||
| "@", | ||
| reviewed_sha | ||
| ) | ||
|
|
||
| testthat::expect_identical( | ||
| action_refs, | ||
| expected_refs, | ||
| info = paste("Unexpected r-lib action set in", basename(workflow_path)) | ||
| ) | ||
| } | ||
| }) | ||
|
|
||
| testthat::test_that("R CMD check refreshes the reviewed dependency cache ABI", { | ||
| workflow_path <- testthat::test_path( | ||
| "..", "..", ".github", "workflows", "R-CMD-check.yaml" | ||
| ) | ||
| workflow_lines <- readLines(workflow_path, warn = FALSE) | ||
| dependency_step <- grep( | ||
| "r-lib/actions/setup-r-dependencies@", | ||
| workflow_lines, | ||
| fixed = TRUE | ||
| ) | ||
| testthat::expect_length(dependency_step, 1L) | ||
| dependency_block <- workflow_lines[ | ||
| dependency_step:min(dependency_step + 8L, length(workflow_lines)) | ||
| ] | ||
|
|
||
| active_cache_version_pattern <- paste0( | ||
| "^[[:space:]]*cache-version:[[:space:]]*", | ||
| "['\\\"]2['\\\"][[:space:]]*(#.*)?$" | ||
| ) | ||
| testthat::expect_false( | ||
| grepl(active_cache_version_pattern, "# cache-version: '2'", perl = TRUE), | ||
| info = "A commented cache-version example must not satisfy the contract" | ||
| ) | ||
| testthat::expect_true( | ||
| any(grepl(active_cache_version_pattern, dependency_block, perl = TRUE)), | ||
| info = "The reviewed macOS TBB ABI cache refresh must remain explicit" | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| ) | ||
| }) | ||
|
|
||
| testthat::test_that("CI rebuilds oneTBB dependents around dependency setup", { | ||
| workflow_paths <- c( | ||
| testthat::test_path("..", "..", ".github", "workflows", "R-CMD-check.yaml"), | ||
| testthat::test_path("..", "..", ".github", "workflows", "test-fast.yaml"), | ||
| testthat::test_path("..", "..", ".github", "workflows", "test-suite.yaml") | ||
| ) | ||
|
|
||
| for (workflow_path in workflow_paths) { | ||
| workflow_lines <- readLines(workflow_path, warn = FALSE) | ||
| pre_step <- grep( | ||
| "name: Source-build stringfish before dependency resolution", | ||
| workflow_lines, | ||
| fixed = TRUE | ||
| ) | ||
| dependency_step <- grep( | ||
| "r-lib/actions/setup-r-dependencies@", | ||
| workflow_lines, | ||
| fixed = TRUE | ||
| ) | ||
| post_step <- grep( | ||
| "name: Rebuild RcppParallel-linked packages from source", | ||
| workflow_lines, | ||
| fixed = TRUE | ||
| ) | ||
|
|
||
| testthat::expect_length(pre_step, 1L) | ||
| testthat::expect_length(dependency_step, 1L) | ||
| testthat::expect_length(post_step, 1L) | ||
| testthat::expect_true(pre_step < dependency_step) | ||
| testthat::expect_true(dependency_step < post_step) | ||
|
|
||
| pre_block <- workflow_lines[ | ||
| pre_step:min(pre_step + 5L, length(workflow_lines)) | ||
| ] | ||
| post_block <- workflow_lines[ | ||
| post_step:min(post_step + 7L, length(workflow_lines)) | ||
| ] | ||
| testthat::expect_true(any(grepl( | ||
| 'install.packages(c("RcppParallel", "stringfish")', | ||
| pre_block, | ||
| fixed = TRUE | ||
| ))) | ||
| testthat::expect_true(any(grepl( | ||
| 'repos = "https://cloud.r-project.org"', | ||
| pre_block, | ||
| fixed = TRUE | ||
| ))) | ||
| testthat::expect_true(any(grepl( | ||
| 'type = "source"', | ||
| pre_block, | ||
| fixed = TRUE | ||
| ))) | ||
| testthat::expect_true(any(grepl( | ||
| 'dependsOnPkgs("RcppParallel", dependencies = "LinkingTo")', | ||
| post_block, | ||
| fixed = TRUE | ||
| ))) | ||
| testthat::expect_true(any(grepl( | ||
| 'install.packages("RcppParallel", type = "source"', | ||
| post_block, | ||
| fixed = TRUE | ||
| ))) | ||
| testthat::expect_true(any(grepl( | ||
| 'install.packages(linked, type = "source"', | ||
| post_block, | ||
| fixed = TRUE | ||
| ))) | ||
|
seonghobae marked this conversation as resolved.
|
||
| } | ||
| }) | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.