GitHub Actions: cache required R packages (#534)
authorFrançois Michonneau <francois.michonneau@gmail.com>
Fri, 8 Jan 2021 16:18:15 +0000 (17:18 +0100)
committerGitHub <noreply@github.com>
Fri, 8 Jan 2021 16:18:15 +0000 (11:18 -0500)
.github/workflows/template.yml
.github/workflows/website.yml

index 7e86e02e0c81cc035c23c288139a955355c6663e..84015e4d5bfee5cbc2f0813aea3bab3ec617c98a 100644 (file)
@@ -96,7 +96,7 @@ jobs:
       - name: Install needed packages
         if: steps.check-rmd.outputs.count != 0
         run: |
-          install.packages(c('remotes', 'rprojroot', 'renv', 'desc', 'rmarkdown', 'knitr'))
+          install.packages(setdiff(c('remotes', 'rprojroot', 'renv', 'desc', 'rmarkdown', 'knitr'), rownames(installed.packages())))
         shell: Rscript {0}
 
       - name: Query dependencies
index b67e07ecc6f862331a70c28df4943732dbc5de8a..59e3235263a14ce88029a350c1f2020bb98681f3 100644 (file)
@@ -51,10 +51,18 @@ jobs:
         with:
           r-version: 'release'
 
+      - name: Cache R packages
+        if: steps.check-rmd.outputs.count != 0
+        uses: actions/cache@v1
+        with:
+          path: ${{ env.R_LIBS_USER }}
+          key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
+          restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
+
       - name: Install needed packages
         if: steps.check-rmd.outputs.count != 0
         run: |
-          install.packages(c('remotes', 'rprojroot', 'renv', 'desc', 'rmarkdown', 'knitr'))
+          install.packages(setdiff(c('remotes', 'rprojroot', 'renv', 'desc', 'rmarkdown', 'knitr'), rownames(installed.packages()))
         shell: Rscript {0}
 
       - name: Query dependencies
@@ -67,13 +75,6 @@ jobs:
           writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
         shell: Rscript {0}
 
-      - name: Cache R packages
-        if: steps.check-rmd.outputs.count != 0
-        uses: actions/cache@v1
-        with:
-          path: ${{ env.R_LIBS_USER }}
-          key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
-          restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
 
       - name: Install system dependencies for R packages
         if: steps.check-rmd.outputs.count != 0