|
1 | | -# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. |
2 | | -# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions |
| 1 | +name: R-CMD-check |
| 2 | + |
3 | 3 | on: |
4 | 4 | push: |
5 | | - branches: |
6 | | - - main |
| 5 | + branches: [main] |
7 | 6 | pull_request: |
8 | | - branches: |
9 | | - - main |
10 | | - |
11 | | -name: R-CMD-check |
| 7 | + branches: [main] |
12 | 8 |
|
13 | 9 | jobs: |
14 | 10 | R-CMD-check: |
15 | 11 | runs-on: ubuntu-latest |
| 12 | + |
16 | 13 | steps: |
17 | | - - uses: actions/checkout@v2 |
18 | | - - uses: r-lib/actions/setup-r@v2-branch |
| 14 | + - uses: actions/checkout@v4 |
| 15 | + |
| 16 | + - uses: r-lib/actions/setup-r@v2 |
19 | 17 | with: |
20 | 18 | Ncpus: 4 |
21 | | - - uses: r-lib/actions/setup-tinytex@v2-branch |
22 | | - - uses: r-lib/actions/setup-pandoc@v2-branch |
| 19 | + - uses: r-lib/actions/setup-tinytex@v2 |
| 20 | + - uses: r-lib/actions/setup-pandoc@v2 |
| 21 | + |
| 22 | + - name: Prepare month stamp for caches |
| 23 | + id: stamp |
| 24 | + run: echo "datem=$(date '+%Y-%m')" >> "$GITHUB_OUTPUT" |
23 | 25 |
|
24 | | - - name: "[Custom block] [Cache] Prepare weekly timestamp for cache" |
25 | | - id: date |
26 | | - run: echo "::set-output name=datem::$(date '+%Y-%m')" |
27 | | - |
28 | 26 | - name: Cache R packages |
29 | 27 | uses: pat-s/always-upload-cache@v2 |
30 | 28 | with: |
31 | 29 | path: ${{ env.R_LIBS_USER }} |
32 | | - key: rcache-${{steps.date.outputs.datem}} |
33 | | - restore-keys: ${{steps.date.outputs.datem}} |
| 30 | + key: rcache-${{ steps.stamp.outputs.datem }} |
| 31 | + restore-keys: rcache- |
34 | 32 |
|
35 | | - - name: Cache python |
| 33 | + - name: Cache pip |
36 | 34 | uses: pat-s/always-upload-cache@v2 |
37 | 35 | with: |
38 | 36 | path: ~/.cache/pip |
39 | | - key: pycache-${{steps.date.outputs.datem}} |
40 | | - restore-keys: pycache-${{steps.date.outputs.datem}} |
41 | | - |
42 | | - - name: Install linux prerequesites |
| 37 | + key: pycache-${{ steps.stamp.outputs.datem }} |
| 38 | + restore-keys: pycache- |
| 39 | + |
| 40 | + - name: Install system libs (image + common) |
43 | 41 | run: | |
44 | | - sudo apt-get install libxml2-dev libcurl4-openssl-dev |
45 | | - - name: Install dependencies - Keras & TF |
| 42 | + sudo apt-get update |
| 43 | + sudo apt-get install -y \ |
| 44 | + libpng-dev libjpeg-turbo8-dev libtiff5-dev \ |
| 45 | + libxml2-dev libcurl4-openssl-dev libssl-dev |
| 46 | +
|
| 47 | + - name: Install base R deps (reticulate, rcmdcheck) |
| 48 | + run: | |
| 49 | + install.packages(c("remotes","reticulate","rcmdcheck")) |
| 50 | + shell: Rscript {0} |
| 51 | + |
| 52 | + - name: Create Miniconda env and install TF/Keras 2.10 stack |
46 | 53 | run: | |
47 | | - install.packages(c("remotes", "rcmdcheck")) |
48 | | - remotes::install_deps(dependencies = TRUE) |
49 | 54 | reticulate::install_miniconda(update = TRUE) |
50 | 55 | reticulate::conda_create('r-reticulate', packages = c('python==3.8')) |
51 | | - keras::install_keras(version = "2.10.0", tensorflow = "2.10.0", extra_packages = c('IPython', 'requests', 'certifi', 'urllib3', 'six', 'tensorflow_probability==0.16.0')) |
52 | | - torch::install_torch() |
| 56 | + reticulate::conda_install('r-reticulate', pip = TRUE, packages = c( |
| 57 | + 'numpy<2.0', |
| 58 | + 'tensorflow==2.10.*', |
| 59 | + 'keras==2.10.*', |
| 60 | + 'tensorflow_probability==0.16.*' |
| 61 | + )) |
| 62 | + cat(sprintf("RETICULATE_PYTHON=%s\n", |
| 63 | + file.path(reticulate::miniconda_path(), "envs","r-reticulate","bin","python")), |
| 64 | + file = Sys.getenv("GITHUB_ENV"), append = TRUE) |
53 | 65 | shell: Rscript {0} |
54 | | - - name: Install dependencies - Tutorial (Vignette) |
| 66 | + |
| 67 | + - uses: r-lib/actions/setup-r-dependencies@v2 |
| 68 | + with: |
| 69 | + sysreqs: true |
| 70 | + extra-packages: > |
| 71 | + any::png |
| 72 | + any::jpeg |
| 73 | + any::tiff |
| 74 | + any::tensorflow |
| 75 | + any::keras |
| 76 | + any::tfprobability |
| 77 | + needs: check |
| 78 | + |
| 79 | + - name: Install vignette extras |
55 | 80 | run: | |
56 | | - install.packages(c("ggplot2", "reshape2", "MASS", "gamlss.data", "distr")) |
| 81 | + install.packages(c("ggplot2","reshape2","MASS","gamlss.data","distr")) |
57 | 82 | shell: Rscript {0} |
| 83 | + |
58 | 84 | - name: Check |
59 | | - run: rcmdcheck::rcmdcheck(args=c("--as-cran", "--no-build-vignettes"), build_args=c("--no-build-vignettes"), error_on="error") |
| 85 | + run: rcmdcheck::rcmdcheck(args = c("--as-cran","--no-build-vignettes"), |
| 86 | + build_args = c("--no-build-vignettes"), |
| 87 | + error_on = "error") |
60 | 88 | shell: Rscript {0} |
0 commit comments