Skip to content

Commit 9a1de84

Browse files
committed
Update github workflow
Attempt to resolve that not all R packages should manually be added.
1 parent 24ddc3a commit 9a1de84

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

.github/workflows/publish.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,15 @@ jobs:
3131

3232
- name: Install R packages
3333
run: |
34-
install.packages(c("rmarkdown", "knitr", "reticulate"))
34+
install.packages(c("quarto", "rmarkdown", "knitr", "reticulate"))
3535
shell: Rscript {0}
3636

37+
- name: Extract R dependencies from .qmd files
38+
run: Rscript package_dependencies.R
39+
40+
- name: Install detected R dependencies
41+
run: Rscript -e 'pak::pkg_install(scan("quarto-packages.txt", character()))'
42+
3743
- name: Install R Dependencies
3844
uses: r-lib/actions/setup-r-dependencies@v2
3945

package_dependencies.R

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Get files
2+
files <- list.files(pattern = "\\.qmd$", recursive = TRUE)
3+
4+
## Read files
5+
lines <- unlist(lapply(files, readLines))
6+
7+
## Extract package names
8+
pkgs <- unique(unlist(regmatches(lines, gregexpr("library\\(['\"]?([A-Za-z0-9\\.]+)['\"]?\\)", lines))))
9+
pkgs <- gsub("library\\(['\"]?|['\"]?\\)", "", pkgs)
10+
pkgs <- pkgs[pkgs != ""]
11+
12+
# Save package names to a text file
13+
writeLines(pkgs, "quarto-packages.txt")

0 commit comments

Comments
 (0)