Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 139 additions & 19 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,45 +7,165 @@ workflows:
jobs:
- build
- build-nightly
- build-lts-11
- build-lts-10
- build-lts-9

references:

restore_backend_stack_cache: &restore_backend_stack_cache
# Default branch / master

default_cache_key: &default_cache_key
v2-stack-{{ checksum "stack.yaml" }}-{{ checksum "package.yaml" }}

restore_stack_default_cache: &restore_stack_default_cache
restore_cache:
keys:
- *default_cache_key
- v2-stack-{{ checksum "stack.yaml" }}-
- v2-stack

save_stack_default_cache: &save_stack_default_cache
save_cache:
key: *default_cache_key
paths:
- ~/.stack

# nightly

nightly_cache_key: &nightly_cache_key
v2-stack-nightly-{{ checksum "package.yaml" }}

restore_stack_nightly_cache: &restore_stack_nightly_cache
restore_cache:
keys:
- *nightly_cache_key
- v2-stack

save_stack_nightly_cache: &save_stack_nightly_cache
save_cache:
key: *nightly_cache_key
paths:
- ~/.stack

# lts-11

lts-11_cache_key: &lts-11_cache_key
v2-stack-lts-11-{{ checksum "package.yaml" }}

restore_stack_lts-11_cache: &restore_stack_lts-11_cache
restore_cache:
keys:
- *lts-11_cache_key
- v2-stack

save_stack_lts-11_cache: &save_stack_lts-11_cache
save_cache:
key: *lts-11_cache_key
paths:
- ~/.stack

# lts-10

lts-10_cache_key: &lts-10_cache_key
v2-stack-lts-10-{{ checksum "package.yaml" }}

restore_stack_lts-10_cache: &restore_stack_lts-10_cache
restore_cache:
keys:
- *lts-10_cache_key
- v2-stack

save_stack_lts-10_cache: &save_stack_lts-10_cache
save_cache:
key: *lts-10_cache_key
paths:
- ~/.stack

# lts-9

lts-9_cache_key: &lts-9_cache_key
v2-stack-lts-9-{{ checksum "package.yaml" }}

restore_stack_lts-9_cache: &restore_stack_lts-9_cache
restore_cache:
keys:
- v1-cache-stack-{{ .Branch }}-{{ checksum "package.yaml" }}
- v1-cache-stack-{{ .Branch }}
- v1-cache-stack
- *lts-9_cache_key
- v2-stack

save_backend_stack_cache: &save_backend_stack_cache
save_stack_lts-9_cache: &save_stack_lts-9_cache
save_cache:
key: v1-cache-stack-{{ .Branch }}-{{ checksum "package.yaml" }}
key: *lts-9_cache_key
paths:
- ~/.stack

jobs:
build:
working_directory: ~/react-ssr/react-ssr
parallelism: 1
docker:
- image: fpco/stack-build:lts-12.7
environment:
STACK_ARGS: "--resolver nightly --jobs 2"
steps:
- checkout
- *restore_backend_stack_cache
- run: stack setup --no-terminal
- run: stack install --no-terminal --only-dependencies --jobs 2
- *save_backend_stack_cache
- run: make test
- *restore_stack_default_cache
- run: stack setup $STACK_ARGS
- run: stack install $STACK_ARGS --only-dependencies --test --no-run-tests
- *save_stack_default_cache
- run: make react react-dom
- run: stack test --no-terminal

build-nightly:
working_directory: ~/react-ssr/react-ssr
parallelism: 1
docker:
- image: fpco/stack-build:latest
environment:
STACK_ARGS: "--resolver nightly --no-terminal --jobs 2"
steps:
- checkout
- *restore_stack_nightly_cache
- run: stack setup $STACK_ARGS
- run: stack install $STACK_ARGS --only-dependencies --test --no-run-tests
- *save_stack_nightly_cache
- run: make react react-dom
- run: stack test $STACK_ARGS

build-lts-11:
docker:
- image: fpco/stack-build:lts-11
environment:
STACK_ARGS: "--resolver lts-11 --no-terminal --jobs 2"
steps:
- checkout
- *restore_stack_lts-11_cache
- run: stack setup $STACK_ARGS
- run: stack install $STACK_ARGS --only-dependencies --test --no-run-tests
- *save_stack_lts-11_cache
- run: make react react-dom
- run: stack test $STACK_ARGS

build-lts-10:
docker:
- image: fpco/stack-build:lts-10
environment:
STACK_ARGS: "--resolver lts-10 --no-terminal --jobs 2"
steps:
- checkout
- *restore_stack_lts-10_cache
- run: stack setup $STACK_ARGS
- run: stack install $STACK_ARGS --only-dependencies --test --no-run-tests
- *save_stack_lts-10_cache
- run: make react react-dom
- run: stack test $STACK_ARGS

build-lts-9:
docker:
- image: fpco/stack-build:lts-9
environment:
STACK_ARGS: "--resolver lts-9 --no-terminal --jobs 2"
steps:
- checkout
- *restore_backend_stack_cache
- run: stack setup --no-terminal --resolver nightly
- run: stack install --no-terminal --only-dependencies --jobs 2 --test --resolver nightly
- *restore_stack_lts-9_cache
- run: stack setup $STACK_ARGS
- run: stack install $STACK_ARGS --only-dependencies --test --no-run-tests
- *save_stack_lts-9_cache
- run: make react react-dom
- run: stack test --no-terminal --resolver nightly
- run: stack test $STACK_ARGS