Skip to content

Commit

Permalink
Ah, CircleCI has a "commands" syntax for reusable blocks of steps, th…
Browse files Browse the repository at this point in the history
…at's good because whatever I was trying with yaml fragments wasn't going to work, ha
  • Loading branch information
Stephen-ONeil committed Dec 22, 2021
1 parent ec4d093 commit 6ae8ed4
Showing 1 changed file with 63 additions and 57 deletions.
120 changes: 63 additions & 57 deletions .circleci/config.yml
@@ -1,3 +1,5 @@
version: 2.1

dockerhub_auth: &dockerhub_auth
auth:
username: $DOCKERHUB_USERNAME
Expand All @@ -9,54 +11,58 @@ deploy_filter: &deploy_filter
ignore:
- /__.*/

top_level_install: &top_level_install
- restore_cache:
keys:
- top-level-dependencies-{{ checksum "package-lock.json" }}-v2
- run:
command: |
[ -e "node_modules" ] || npm ci
- save_cache:
key: top-level-dependencies-{{ checksum "package-lock.json" }}-v2
paths:
- node_modules
form_backend_install: &form_backend_install
- restore_cache:
keys:
- form-backend-dependencies-{{ checksum "form_backend/package-lock.json" }}-v2
- run:
command: |
[ -e "form_backend/node_modules" ] || (cd form_backend && npm ci)
- save_cache:
key: form-backend-dependencies-{{ checksum "form_backend/package-lock.json" }}-v2
paths:
- form_backend/node_modules
server_install: &server_install
- restore_cache:
keys:
- server-dependencies-{{ checksum "server/package-lock.json" }}-v2
- run:
command: |
[ -e "server/node_modules" ] || (cd server && npm ci)
- save_cache:
key: server-dependencies-{{ checksum "server/package-lock.json" }}-v2
paths:
- server/node_modules
client_install: &client_install
- run: cksum ./client/patches/* > client-patch-checksums # need to bust the client package cache on patch changes in addition to package-lock changes
- restore_cache:
keys:
- client-dependencies-{{ checksum "client/package-lock.json" }}-{{ checksum "client-patch-checksums" }}-v2
- run:
command: |
[ -e "client/node_modules" ] || (cd client && npm ci)
- save_cache:
key: client-dependencies-{{ checksum "client/package-lock.json" }}-{{ checksum "client-patch-checksums" }}-v2
paths:
- client/node_modules
- client/.cache/Cypress # path set by CYPRESS_CACHE_FOLDER env var

version: 2.1
commands:
top_level_install:
steps:
- restore_cache:
keys:
- top-level-dependencies-{{ checksum "package-lock.json" }}-v2
- run:
command: |
[ -e "node_modules" ] || npm ci
- save_cache:
key: top-level-dependencies-{{ checksum "package-lock.json" }}-v2
paths:
- node_modules
form_backend_install:
steps:
- restore_cache:
keys:
- form-backend-dependencies-{{ checksum "form_backend/package-lock.json" }}-v2
- run:
command: |
[ -e "form_backend/node_modules" ] || (cd form_backend && npm ci)
- save_cache:
key: form-backend-dependencies-{{ checksum "form_backend/package-lock.json" }}-v2
paths:
- form_backend/node_modules
server_install:
steps:
- restore_cache:
keys:
- server-dependencies-{{ checksum "server/package-lock.json" }}-v2
- run:
command: |
[ -e "server/node_modules" ] || (cd server && npm ci)
- save_cache:
key: server-dependencies-{{ checksum "server/package-lock.json" }}-v2
paths:
- server/node_modules
client_install:
steps:
# need to bust the client package cache on patch changes in addition to package-lock changes
- run: cksum ./client/patches/* > client-patch-checksums
- restore_cache:
keys:
- client-dependencies-{{ checksum "client/package-lock.json" }}-{{ checksum "client-patch-checksums" }}-v2
- run:
command: |
[ -e "client/node_modules" ] || (cd client && npm ci)
- save_cache:
key: client-dependencies-{{ checksum "client/package-lock.json" }}-{{ checksum "client-patch-checksums" }}-v2
paths:
- client/node_modules
- client/.cache/Cypress # path set by CYPRESS_CACHE_FOLDER env var

jobs:
lint:
Expand All @@ -68,10 +74,10 @@ jobs:
- checkout:
path: "~/InfoBase"

- <<: *top_level_install
- <<: *form_backend_install
- <<: *server_install
- <<: *client_install
- top_level_install
- form_backend_install
- server_install
- client_install

- restore_cache:
keys:
Expand All @@ -95,8 +101,8 @@ jobs:
- checkout:
path: "~/InfoBase"

- <<: *top_level_install
- <<: *form_backend_install
- top_level_install
- form_backend_install

- restore_cache:
keys:
Expand Down Expand Up @@ -154,9 +160,9 @@ jobs:
path: "~/InfoBase"
- run: ./scripts/ci_scripts/create_envs.sh

- <<: *top_level_install
- <<: *client_install
- <<: *server_install
- top_level_install
- client_install
- server_install

# transpiling the server slightly out of place for this job, not needed till the server deploy step, but
# the deploy job image isn't guaranteed to have the necessary environment for this
Expand Down

0 comments on commit 6ae8ed4

Please sign in to comment.