From 5d22d3742c7630d087f6a3c3b652eb489cf99ad8 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 15:01:18 -0700 Subject: [PATCH 01/17] Add CI for R package Add CI for R --- .github/workflows/r_ci.yml | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/r_ci.yml diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml new file mode 100644 index 00000000..33ec1a7f --- /dev/null +++ b/.github/workflows/r_ci.yml @@ -0,0 +1,42 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# +# See https://github.com/r-lib/actions/tree/master/examples#readme for +# additional example workflows available for the R community. + +name: R + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + defaults: + run: + working-directory: R-packages/covidcast/ + strategy: + matrix: + r-version: [3.5] + + steps: + - uses: actions/checkout@v2 + - name: Set up R ${{ matrix.r-version }} + uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 + with: + r-version: ${{ matrix.r-version }} + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + shell: Rscript {0} + - name: Check + run: | + devtools::check(vignettes=FALSE) + rcmdcheck::rcmdcheck(args = c("--no-manual, --no-vignettes"), error_on = "error") + shell: Rscript {0} From 7a0cc995e74604f92d1d7d971c6bce17469491cf Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 15:32:02 -0700 Subject: [PATCH 02/17] install libcurl --- .github/workflows/r_ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 33ec1a7f..31a615c7 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -30,6 +30,8 @@ jobs: uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 with: r-version: ${{ matrix.r-version }} + - name: Install libcurl + run: sudo apt-get install libcurl4-openssl-dev - name: Install dependencies run: | install.packages(c("remotes", "rcmdcheck")) From f24d6967bc8632d06c45ffc67325c663a31818a3 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 15:43:03 -0700 Subject: [PATCH 03/17] install devtools --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 31a615c7..ba3d5e27 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -34,7 +34,7 @@ jobs: run: sudo apt-get install libcurl4-openssl-dev - name: Install dependencies run: | - install.packages(c("remotes", "rcmdcheck")) + install.packages(c("remotes", "rcmdcheck", "devtools")) remotes::install_deps(dependencies = TRUE) shell: Rscript {0} - name: Check From e11b2316521f31e9c8bd91b3ae6671492de6cc2b Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 15:50:35 -0700 Subject: [PATCH 04/17] remove redundant check --- .github/workflows/r_ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index ba3d5e27..75624416 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -34,11 +34,10 @@ jobs: run: sudo apt-get install libcurl4-openssl-dev - name: Install dependencies run: | - install.packages(c("remotes", "rcmdcheck", "devtools")) + install.packages(c("remotes", "rcmdcheck")) remotes::install_deps(dependencies = TRUE) shell: Rscript {0} - name: Check run: | - devtools::check(vignettes=FALSE) rcmdcheck::rcmdcheck(args = c("--no-manual, --no-vignettes"), error_on = "error") shell: Rscript {0} From 52a4138686856931e85963197a2265b9fc275483 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 16:23:17 -0700 Subject: [PATCH 05/17] Try other args to ignore vignettes --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 75624416..94397d54 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -39,5 +39,5 @@ jobs: shell: Rscript {0} - name: Check run: | - rcmdcheck::rcmdcheck(args = c("--no-manual, --no-vignettes"), error_on = "error") + rcmdcheck::rcmdcheck(args = c("--no-manual, --no-vignettes, --no-build-vignettes, --ignore-vignette"), error_on = "error") shell: Rscript {0} From 24abf312b822d65f0b010259deededf2bb915114 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 17:00:22 -0700 Subject: [PATCH 06/17] actually skip vignettes --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 94397d54..3a4850ff 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -39,5 +39,5 @@ jobs: shell: Rscript {0} - name: Check run: | - rcmdcheck::rcmdcheck(args = c("--no-manual, --no-vignettes, --no-build-vignettes, --ignore-vignette"), error_on = "error") + rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes"), build_args = c("--no-build-vignettes"), error_on = "error") shell: Rscript {0} From c6a6ae085fb9f3def90c461f90c898252f61c58f Mon Sep 17 00:00:00 2001 From: chinandrew Date: Fri, 23 Oct 2020 17:13:45 -0700 Subject: [PATCH 07/17] add as-cran check --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 3a4850ff..9caa5f35 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -39,5 +39,5 @@ jobs: shell: Rscript {0} - name: Check run: | - rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes"), build_args = c("--no-build-vignettes"), error_on = "error") + rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes", "--as-cran"), build_args = c("--no-build-vignettes"), error_on = "error") shell: Rscript {0} From 112a5747a53b0f9e1a413e8ee716cf56c950e4ec Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 00:39:21 -0700 Subject: [PATCH 08/17] Try caching dependencies --- .github/workflows/r_ci.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 9caa5f35..0d45f4c8 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -32,11 +32,24 @@ jobs: r-version: ${{ matrix.r-version }} - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - - name: Install dependencies + - name: Query dependencies run: | - install.packages(c("remotes", "rcmdcheck")) - remotes::install_deps(dependencies = TRUE) + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") shell: Rscript {0} + - name: Cache R packages + uses: actions/cache@v2 + 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 + run: | + while read -r cmd + do + eval sudo $cmd + done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') - name: Check run: | rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes", "--as-cran"), build_args = c("--no-build-vignettes"), error_on = "error") From 3d60abbcefafd31283598b7cb771539df4e76f4f Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 00:45:36 -0700 Subject: [PATCH 09/17] Add additional actions before dependencies --- .github/workflows/r_ci.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 0d45f4c8..ab04522d 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -24,12 +24,17 @@ jobs: matrix: r-version: [3.5] + env: + R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + RSPM: ${{ matrix.config.rspm }} + steps: - uses: actions/checkout@v2 - - name: Set up R ${{ matrix.r-version }} - uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 - with: - r-version: ${{ matrix.r-version }} + + - uses: r-lib/actions/setup-r@master + + - uses: r-lib/actions/setup-pandoc@master + - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - name: Query dependencies From 32da0042964bb4e27a3d29a2834d95115f6c491d Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 00:49:41 -0700 Subject: [PATCH 10/17] adjust filepaths --- .github/workflows/r_ci.yml | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index ab04522d..6bb0b508 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -24,31 +24,26 @@ jobs: matrix: r-version: [3.5] - env: - R_REMOTES_NO_ERRORS_FROM_WARNINGS: true - RSPM: ${{ matrix.config.rspm }} - steps: - uses: actions/checkout@v2 - - - uses: r-lib/actions/setup-r@master - - - uses: r-lib/actions/setup-pandoc@master - + - name: Set up R ${{ matrix.r-version }} + uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 + with: + r-version: ${{ matrix.r-version }} - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - name: Query dependencies run: | install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") + saveRDS(remotes::dev_package_deps(dependencies = TRUE), "../../.github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), "../../.github/R-version") shell: Rscript {0} - name: Cache R packages uses: actions/cache@v2 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- + 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 run: | while read -r cmd From ab262328ebae58e5fe392a22b0bb103b4ee85ff4 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 00:52:18 -0700 Subject: [PATCH 11/17] add rmdcheck? --- .github/workflows/r_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 6bb0b508..3b9ecc66 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -26,6 +26,7 @@ jobs: steps: - uses: actions/checkout@v2 + - uses: r-lib/actions/setup-r@master - name: Set up R ${{ matrix.r-version }} uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 with: From f8e37a8b1bec00691df61f288c96b2571cd9858d Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 00:55:02 -0700 Subject: [PATCH 12/17] actually add rmdcheck --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 3b9ecc66..32be8144 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -35,7 +35,7 @@ jobs: run: sudo apt-get install libcurl4-openssl-dev - name: Query dependencies run: | - install.packages('remotes') + install.packages(c("remotes", "rcmdcheck")) saveRDS(remotes::dev_package_deps(dependencies = TRUE), "../../.github/depends.Rds", version = 2) writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), "../../.github/R-version") shell: Rscript {0} From 485c3626117bee8e8952106c5fe3e60ecef20d45 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 01:06:44 -0700 Subject: [PATCH 13/17] adjust dependency install --- .github/workflows/r_ci.yml | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 32be8144..56d908b2 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -27,30 +27,18 @@ jobs: steps: - uses: actions/checkout@v2 - uses: r-lib/actions/setup-r@master - - name: Set up R ${{ matrix.r-version }} - uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 - with: - r-version: ${{ matrix.r-version }} - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - - name: Query dependencies + - name: Install dependencies run: | install.packages(c("remotes", "rcmdcheck")) - saveRDS(remotes::dev_package_deps(dependencies = TRUE), "../../.github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), "../../.github/R-version") + remotes::install_deps(dependencies = TRUE) shell: Rscript {0} - name: Cache R packages uses: actions/cache@v2 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 - run: | - while read -r cmd - do - eval sudo $cmd - done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') + key: ${{ runner.os }}-${{ hashFiles('../../.github/R-version') }}-1- - name: Check run: | rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes", "--as-cran"), build_args = c("--no-build-vignettes"), error_on = "error") From d4d393226e7c701f1b0a2bc322bf49f20fbf0f09 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 01:30:34 -0700 Subject: [PATCH 14/17] remove unused statements and see if cache works --- .github/workflows/r_ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 56d908b2..79676267 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -26,7 +26,6 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: r-lib/actions/setup-r@master - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - name: Install dependencies From 1fcf0508b23ea9c32ded56769ec138c01bf94238 Mon Sep 17 00:00:00 2001 From: chinandrew Date: Sun, 25 Oct 2020 01:36:09 -0700 Subject: [PATCH 15/17] Change r setup to old version --- .github/workflows/r_ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 79676267..873d688d 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -26,6 +26,10 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Set up R ${{ matrix.r-version }} + uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 + with: + r-version: ${{ matrix.r-version }} - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - name: Install dependencies From 1e3df3fab3d29e4b449c2d753b046f00e477ad68 Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 26 Oct 2020 10:00:03 -0700 Subject: [PATCH 16/17] rename cache key --- .github/workflows/r_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index 873d688d..dee7b2dd 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -41,7 +41,7 @@ jobs: uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('../../.github/R-version') }}-1- + key: ${{ runner.os }}-r-1- - name: Check run: | rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes", "--as-cran"), build_args = c("--no-build-vignettes"), error_on = "error") From 55bb2a618c9b07030c8aa193a38b8bd97f6e5899 Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 26 Oct 2020 10:12:23 -0700 Subject: [PATCH 17/17] reorder cache --- .github/workflows/r_ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/r_ci.yml b/.github/workflows/r_ci.yml index dee7b2dd..05340103 100644 --- a/.github/workflows/r_ci.yml +++ b/.github/workflows/r_ci.yml @@ -32,16 +32,16 @@ jobs: r-version: ${{ matrix.r-version }} - name: Install libcurl run: sudo apt-get install libcurl4-openssl-dev - - name: Install dependencies - run: | - install.packages(c("remotes", "rcmdcheck")) - remotes::install_deps(dependencies = TRUE) - shell: Rscript {0} - name: Cache R packages uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-r-1- + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + shell: Rscript {0} - name: Check run: | rcmdcheck::rcmdcheck(args = c("--no-manual", "--ignore-vignettes", "--as-cran"), build_args = c("--no-build-vignettes"), error_on = "error")