Skip to content

Commit 31f10d0

Browse files
committed
change yml to workflow_dispatch to manually cache installation results
1 parent 36246c4 commit 31f10d0

1 file changed

Lines changed: 80 additions & 54 deletions

File tree

.github/workflows/test-suites.yml

Lines changed: 80 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,36 @@
22
name: Test Suites
33

44
on:
5-
push:
6-
branches: [ main, master, devel ]
7-
pull_request:
8-
branches: [ main, master, devel ]
5+
workflow_dispatch:
6+
inputs:
7+
run_cache_only:
8+
description: 'Run and cache dependency installations only'
9+
required: true
10+
default: 'no'
11+
12+
env:
13+
RSPM: https://packagemanager.posit.co/cran/latest # Enables Linux binaries from Posit
14+
R_KEEP_PKG_SOURCE: yes # Keeps sources for debugging if needed
15+
916

1017
jobs:
11-
# Job 1: nCompile and specific operator tests
12-
test-nCompile:
18+
install-cache:
1319
runs-on: ubuntu-latest
14-
name: nCompile and specific operator tests
15-
20+
if: github.event.inputs.run_cache_only == 'yes' || github.event.inputs.run_cache_only == 'no'
1621
steps:
1722
- uses: actions/checkout@v4
23+
1824
- uses: r-lib/actions/setup-r@v2
1925
with:
26+
r-version: 'release'
2027
use-public-rspm: true
21-
- uses: r-lib/actions/setup-r-dependencies@v2
28+
29+
- name: Cache R packages
30+
uses: actions/cache@v3
31+
with:
32+
path: ${{ env.R_LIBS_USER }}
33+
key: ${{ runner.os }}-r-${{ hashFiles('nCompiler/DESCRIPTION', 'ci-extra-packages.txt') }}
34+
restore-keys: ${{ runner.os }}-r-
2235

2336
- name: Install system dependencies
2437
run: |
@@ -28,6 +41,43 @@ jobs:
2841
libcurl4-openssl-dev \
2942
libssl-dev
3043
44+
- name: Install R dependencies
45+
run: |
46+
Rscript -e 'install.packages("remotes")'
47+
Rscript -e 'remotes::install_deps("nCompiler", dependencies = TRUE)'
48+
49+
- name: Install extra packages
50+
run: |
51+
Rscript -e '
52+
pkgs <- readLines("ci-extra-packages.txt")
53+
new_pkgs <- pkgs[!pkgs %in% installed.packages()[,"Package"]]
54+
if(length(new_pkgs)) install.packages(new_pkgs)
55+
'
56+
57+
- name: Install package
58+
run: R CMD INSTALL nCompiler
59+
60+
# Job 1: nCompile and specific operator tests
61+
test-nCompile:
62+
runs-on: ubuntu-latest
63+
needs: install_cache
64+
if: github.event.inputs.run_cache_only == 'no'
65+
name: nCompile and specific operator tests
66+
67+
steps:
68+
- uses: actions/checkout@v4
69+
- uses: r-lib/actions/setup-r@v2
70+
with:
71+
r-version: 'release'
72+
use-public-rspm: true
73+
74+
- name: Restore cache
75+
uses: actions/cache@v3
76+
with:
77+
path: ${{ env.R_LIBS_USER }}
78+
key: ${{ runner.os }}-r-${{ hashFiles('nCompiler/DESCRIPTION', 'ci-extra-packages.txt') }}
79+
restore-keys: ${{ runner.os }}-r-
80+
3181
- name: Run nCompile and other tests
3282
run: |
3383
testthat::test_dir("tests/testthat/uncompiled_tests", reporter = "progress")
@@ -39,49 +89,23 @@ jobs:
3989
# Job 2: nClass, types and serialization tests
4090
test-nClass:
4191
runs-on: ubuntu-latest
92+
needs: install_cache
93+
if: github.event.inputs.run_cache_only == 'no'
4294
name: nClass, types and serialization tests
4395

44-
env:
45-
RSPM: https://packagemanager.posit.co/cran/latest # Enables Linux binaries from Posit
46-
R_KEEP_PKG_SOURCE: yes # Keeps sources for debugging if needed
47-
4896
steps:
4997
- uses: actions/checkout@v4
5098
- uses: r-lib/actions/setup-r@v2
5199
with:
52100
r-version: 'release'
53101
use-public-rspm: true
54102

55-
- name: Cache R packages
103+
- name: Restore cache
56104
uses: actions/cache@v3
57105
with:
58106
path: ${{ env.R_LIBS_USER }}
59107
key: ${{ runner.os }}-r-${{ hashFiles('nCompiler/DESCRIPTION', 'ci-extra-packages.txt') }}
60108
restore-keys: ${{ runner.os }}-r-
61-
62-
- name: Install system dependencies
63-
run: |
64-
sudo apt-get update
65-
sudo apt-get install -y \
66-
build-essential \
67-
libcurl4-openssl-dev \
68-
libssl-dev
69-
70-
- name: Install R dependencies
71-
run: |
72-
Rscript -e 'install.packages("remotes")'
73-
Rscript -e 'remotes::install_deps("nCompiler", dependencies = TRUE)'
74-
75-
- name: Install extra packages
76-
run: |
77-
Rscript -e '
78-
pkgs <- readLines("ci-extra-packages.txt")
79-
new_pkgs <- pkgs[!pkgs %in% installed.packages()[,"Package"]]
80-
if(length(new_pkgs)) install.packages(new_pkgs)
81-
'
82-
83-
- name: Install package
84-
run: R CMD INSTALL nCompiler
85109

86110
- name: Run nClass, types and serialization tests
87111
run: |
@@ -93,22 +117,23 @@ jobs:
93117
# Job 3: Math tests
94118
test-math:
95119
runs-on: ubuntu-latest
120+
needs: install_cache
121+
if: github.event.inputs.run_cache_only == 'no'
96122
name: Math Tests
97123

98124
steps:
99125
- uses: actions/checkout@v4
100126
- uses: r-lib/actions/setup-r@v2
101127
with:
128+
r-version: 'release'
102129
use-public-rspm: true
103-
- uses: r-lib/actions/setup-r-dependencies@v2
104130

105-
- name: Install system dependencies
106-
run: |
107-
sudo apt-get update
108-
sudo apt-get install -y \
109-
build-essential \
110-
libcurl4-openssl-dev \
111-
libssl-dev
131+
- name: Restore cache
132+
uses: actions/cache@v3
133+
with:
134+
path: ${{ env.R_LIBS_USER }}
135+
key: ${{ runner.os }}-r-${{ hashFiles('nCompiler/DESCRIPTION', 'ci-extra-packages.txt') }}
136+
restore-keys: ${{ runner.os }}-r-
112137

113138
- name: Run Math tests
114139
run: |
@@ -118,22 +143,23 @@ jobs:
118143
# Job 4: tensorOps
119144
test-tensorOps:
120145
runs-on: ubuntu-latest
146+
needs: install_cache
147+
if: github.event.inputs.run_cache_only == 'no'
121148
name: TensorOps Tests
122149

123150
steps:
124151
- uses: actions/checkout@v4
125152
- uses: r-lib/actions/setup-r@v2
126153
with:
154+
r-version: 'release'
127155
use-public-rspm: true
128-
- uses: r-lib/actions/setup-r-dependencies@v2
129156

130-
- name: Install system dependencies
131-
run: |
132-
sudo apt-get update
133-
sudo apt-get install -y \
134-
build-essential \
135-
libcurl4-openssl-dev \
136-
libssl-dev
157+
- name: Restore cache
158+
uses: actions/cache@v3
159+
with:
160+
path: ${{ env.R_LIBS_USER }}
161+
key: ${{ runner.os }}-r-${{ hashFiles('nCompiler/DESCRIPTION', 'ci-extra-packages.txt') }}
162+
restore-keys: ${{ runner.os }}-r-
137163

138164
- name: Run TensorOps tests
139165
run: |

0 commit comments

Comments
 (0)