circleci: Break out a plain build and cache job

This commit is contained in:
Robert Vollmert
2020-04-16 13:10:21 -05:00
committed by Steve Chavez
parent da573a1805
commit e59c72cff3
+48 -5
View File
@@ -52,6 +52,40 @@ build-distro-bin: &build-distro-bin
key: v1-{{ .Environment.CIRCLE_JOB }}-dependencies-{{ checksum "postgrest.cabal" }}-{{ checksum "stack.yaml" }}
jobs:
build-cache:
docker:
- image: circleci/buildpack-deps:trusty
steps:
- checkout
- restore_cache:
keys:
- v1-stack-dependencies-{{ checksum "postgrest.cabal" }}-{{ checksum "stack.yaml" }}
- run:
name: install stack & dependencies
command: |
curl -L https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-x86_64.tar.gz | tar zx -C /tmp
sudo mv /tmp/stack-2.1.3-linux-x86_64/stack /usr/bin
sudo apt-get update
sudo apt-get install -y libgmp-dev
sudo apt-get install -y --only-upgrade binutils
sudo apt-get install -y postgresql-client
stack setup
- run:
name: build src and tests dependencies
command: |
stack build --fast -j1 --only-dependencies
stack build --fast --test --no-run-tests --only-dependencies
- save_cache:
paths:
- "~/.stack"
- ".stack-work"
key: v1-stack-dependencies-{{ checksum "postgrest.cabal" }}-{{ checksum "stack.yaml" }}
- run:
name: build src and tests
command: |
stack build --fast -j1
stack build --fast --test --no-run-tests
style:
docker:
- image: circleci/buildpack-deps:trusty
@@ -122,11 +156,6 @@ jobs:
command: |
stack build --fast -j1 --only-dependencies
stack build --fast --test --no-run-tests --only-dependencies
- save_cache:
paths:
- "~/.stack"
- ".stack-work"
key: v1-stack-dependencies-{{ checksum "postgrest.cabal" }}-{{ checksum "stack.yaml" }}
- run:
name: build src and tests
command: |
@@ -359,6 +388,10 @@ workflows:
version: 2
build-test-release:
jobs:
- build-cache:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
- style:
filters:
tags:
@@ -367,22 +400,32 @@ workflows:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
requires:
- build-cache
- build-test-9.6:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
requires:
- build-cache
- build-test-10:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
requires:
- build-cache
- build-test-11:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
requires:
- build-cache
- build-test-12:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
requires:
- build-cache
- build-prof-test:
filters:
tags: