Skip to content

Commit 0e9895b

Browse files
committed
cache node and pip dependencies
1 parent 59664bd commit 0e9895b

File tree

1 file changed

+121
-24
lines changed

1 file changed

+121
-24
lines changed

.github/workflows/main.yml

Lines changed: 121 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ env:
99
NODE_VERSION: 14.4.0
1010

1111
jobs:
12-
build:
12+
build-dh:
1313
name: Docker Hub Cache
1414
runs-on: ubuntu-latest
1515
steps:
@@ -101,7 +101,7 @@ jobs:
101101
run: docker push $GPR_CACHE_IMAGE:stage
102102

103103
test:
104-
needs: build
104+
needs: build-dh
105105
runs-on: ubuntu-latest
106106
container: fmrcampos/docker-ci-cache:stage
107107
services:
@@ -116,6 +116,41 @@ jobs:
116116
- name: Check out repository
117117
uses: actions/checkout@v2
118118

119+
- name: Cache pip dependencies
120+
uses: actions/cache@v2
121+
env:
122+
cache-name: cache-pip-deps
123+
with:
124+
path: ./.cache/pip
125+
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('requirements.txt') }}
126+
restore-keys: |
127+
${{ runner.os }}-${{ env.cache-name }}-
128+
${{ runner.os }}-
129+
130+
- name: Cache node version manager
131+
uses: actions/cache@v2
132+
env:
133+
cache-name: cache-nvm-tests
134+
with:
135+
path: ~/.nvm/versions/
136+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
137+
restore-keys: |
138+
${{ runner.os }}-build-${{ env.cache-name }}-
139+
${{ runner.os }}-build-
140+
${{ runner.os }}-
141+
142+
- name: Cache node modules
143+
uses: actions/cache@v2
144+
env:
145+
cache-name: cache-node-modules-tests
146+
with:
147+
path: ~/.npm
148+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
149+
restore-keys: |
150+
${{ runner.os }}-build-${{ env.cache-name }}-
151+
${{ runner.os }}-build-
152+
${{ runner.os }}-
153+
119154
- name: Install dependencies
120155
run: |
121156
apt-get update && apt-get -y install make locales build-essential curl libpq-dev autoconf
@@ -128,16 +163,21 @@ jobs:
128163
echo "LANG=en_US.UTF-8" > /etc/locale.conf
129164
locale-gen en_US.UTF-8
130165
131-
- name: Setup tests
166+
- name: Install pip requirements
167+
run: |
168+
mkdir ./.cache && mkdir ./.cache/pip
169+
chown -R $(whoami) ./.cache/pip
170+
pip install -U pip setuptools wheel --cache-dir ./.cache/pip
171+
pip install -r requirements.txt --cache-dir ./.cache/pip
172+
pip install -r requirements/dev.txt --cache-dir ./.cache/pip
173+
174+
- name: Setup node
132175
run: |
133176
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
134177
export NVM_DIR="$HOME/.nvm"
135178
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
136179
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
137180
nvm install $NODE_VERSION
138-
pip install -U pip setuptools wheel
139-
pip install -r requirements.txt
140-
pip install -r requirements/dev.txt
141181
npm i -g npm
142182
npm install -g gulp-cli
143183
npm ci
@@ -154,7 +194,7 @@ jobs:
154194
POSTGRES_PORT: 5432
155195

156196
lint:
157-
needs: build
197+
needs: build-dh
158198
runs-on: ubuntu-latest
159199
container: fmrcampos/docker-ci-cache:stage
160200
steps:
@@ -171,7 +211,7 @@ jobs:
171211
make lint ACTIONS=true
172212
173213
docs:
174-
needs: build
214+
needs: build-dh
175215
runs-on: ubuntu-latest
176216
container: fmrcampos/docker-ci-cache:stage
177217
steps:
@@ -184,86 +224,143 @@ jobs:
184224
make docs
185225
186226
deps:
187-
needs: build
227+
needs: build-dh
188228
runs-on: ubuntu-latest
189229
container: fmrcampos/docker-ci-cache:stage
190230
steps:
191231
- name: Check out repository
192232
uses: actions/checkout@v2
193233

194-
- name: Dependencies
234+
- name: Cache pip dependencies
235+
uses: actions/cache@v2
236+
env:
237+
cache-name: cache-pip-deps
238+
with:
239+
path: ./.cache/pip
240+
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('requirements.txt') }}
241+
restore-keys: |
242+
${{ runner.os }}-${{ env.cache-name }}-
243+
${{ runner.os }}-
244+
245+
- name: Install dependencies
195246
run: |
196247
apt-get update && apt-get -y install build-essential make libpq-dev
197248
apt -y install libcurl4-openssl-dev libssl-dev pkg-config
198-
pip install -U pip setuptools wheel
199-
pip install -r requirements.txt
200-
pip install -r requirements/dev.txt # this is probably happening twice
201-
make deps
249+
mkdir ./.cache && mkdir ./.cache/pip
250+
chown -R $(whoami) ./.cache/pip
251+
pip install -U pip setuptools wheel --cache-dir ./.cache/pip
252+
pip install -r requirements.txt --cache-dir ./.cache/pip
253+
pip install -r requirements/dev.txt --cache-dir ./.cache/pip
254+
255+
- name: Check dependencies
256+
run: make deps
202257

203258
licenses:
204-
needs: build
259+
needs: build-dh
205260
runs-on: ubuntu-latest
206261
container: fmrcampos/docker-ci-cache:stage
207262
steps:
208263
- name: Check out repository
209264
uses: actions/checkout@v2
210265

211-
- name: Licenses
266+
- name: Check licenses
212267
run: bin/licenses
213268

214269
translations:
215-
needs: build
270+
needs: build-dh
216271
runs-on: ubuntu-latest
217272
container: fmrcampos/docker-ci-cache:stage
218273
steps:
219274
- name: Check out repository
220275
uses: actions/checkout@v2
221276

222-
- name: Translations
277+
- name: Check translations
223278
run: |
224279
apt-get update && apt-get -y install make
225280
make translations
226281
227282
static-lint:
228-
needs: build
283+
needs: build-dh
229284
runs-on: ubuntu-latest
230285
container: fmrcampos/docker-ci-cache:static
231286
steps:
232287
- name: Check out repository
233288
uses: actions/checkout@v2
234289

235-
- name: Lint
290+
- name: Static Lint Check
236291
run: |
237292
npm install eslint --save-dev
238293
./node_modules/.bin/eslint 'warehouse/static/js/**' '**.js' 'tests/frontend/**' --ignore-pattern 'warehouse/static/js/vendor/**'
239294
./node_modules/.bin/sass-lint --verbose
240295
241296
static-tests:
242-
needs: build
297+
needs: build-dh
243298
runs-on: ubuntu-latest
244299
container: fmrcampos/docker-ci-cache:static
245300
steps:
246301
- name: Check out repository
247302
uses: actions/checkout@v2
248303

249-
- name: Static Tests
304+
- name: Cache node modules
305+
uses: actions/cache@v2
306+
env:
307+
cache-name: cache-node-modules-static
308+
with:
309+
path: |
310+
~/.npm
311+
**/node_modules
312+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
313+
restore-keys: |
314+
${{ runner.os }}-build-${{ env.cache-name }}-
315+
${{ runner.os }}-build-
316+
${{ runner.os }}-
317+
318+
- name: Locale & Dependency Setup
250319
run: |
251320
apt-get update && apt-get -y install locales
252321
echo "LC_ALL=en_US.UTF-8" >> /etc/environment
253322
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
254323
echo "LANG=en_US.UTF-8" > /etc/locale.conf
255324
locale-gen en_US.UTF-8
256325
npm install -D babel
257-
bin/static_tests
326+
327+
- name: Static Tests
328+
run: bin/static_tests
258329

259330
static-pipeline:
260-
needs: build
331+
needs: build-dh
261332
runs-on: ubuntu-latest
262333
container: fmrcampos/docker-ci-cache:static
263334
steps:
264335
- name: Check out repository
265336
uses: actions/checkout@v2
266337

338+
- name: Cache node version manager
339+
uses: actions/cache@v2
340+
env:
341+
cache-name: cache-nvm-pipeline
342+
with:
343+
path: ~/.nvm/versions/
344+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
345+
restore-keys: |
346+
${{ runner.os }}-build-${{ env.cache-name }}-
347+
${{ runner.os }}-build-
348+
${{ runner.os }}-
349+
350+
- name: Cache node modules
351+
uses: actions/cache@v2
352+
env:
353+
cache-name: cache-node-modules-static
354+
with:
355+
path: |
356+
~/.npm
357+
**/node_modules
358+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
359+
restore-keys: |
360+
${{ runner.os }}-build-${{ env.cache-name }}-
361+
${{ runner.os }}-build-
362+
${{ runner.os }}-
363+
267364
- name: Locale & Dependency Setup
268365
run: |
269366
apt-get update && apt-get -y install locales

0 commit comments

Comments
 (0)