/
config.yml
113 lines (105 loc) · 4.35 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
version: 2.1
orbs:
haskell: haskell-works/haskell-build@4.1.8
github: haskell-works/github-release@1.3.3
hackage: haskell-works/hackage@1.4.2
executors:
darwin:
macos:
xcode: 11.3.0
ghc-8_6_5_old:
docker:
- image: quay.io/haskell_works/ghc-8.6.5:ubuntu-16.04
ghc-8_8_3_old:
docker:
- image: quay.io/haskell_works/ghc-8.8.3:ubuntu-16.04
workflows:
multiple-ghc-build:
jobs:
- haskell/build-with-binary-cache:
name: GHC 8.6.5
executor: ghc-8_6_5_old
context: haskell-ci
binary-cache-uri: ${BINARY_CACHE_URI-"http://cache.haskellworks.io/archive"}
binary-cache-uri-suffix: -ubuntu-16.04
cabal-build-extra: --write-ghc-environment-files=ghc8.4.4+
cabal-test-extra: --test-show-details=direct --test-options='+RTS -g1'
- haskell/build-with-binary-cache:
name: GHC 8.8.3
executor: ghc-8_8_3_old
context: haskell-ci
binary-cache-uri: ${BINARY_CACHE_URI-"http://cache.haskellworks.io/archive"}
binary-cache-uri-suffix: -ubuntu-16.04
cabal-build-extra: --write-ghc-environment-files=ghc8.4.4+
cabal-test-extra: --test-show-details=direct --test-options='+RTS -g1'
workspace-dir: workspace/ghc-8.8.3
write-result-workspace: true
- haskell/build-with-binary-cache:
name: i386 GHC 8.8.3
executor: haskell/i386-ghc-8_8_3
context: haskell-ci
cabal-cache-uri: https://github.com/haskell-works/cabal-cache/releases/download/v1.0.1.7/i386-cabal-cache_x86_64_linux.tar.gz
binary-cache-uri: ${BINARY_CACHE_URI-"http://cache.haskellworks.io/archive"}
cabal-build-extra: --write-ghc-environment-files=ghc8.4.4+
cabal-test-extra: --test-show-details=direct --test-options='+RTS -g1'
workspace-dir: workspace/i386-ghc-8.8.3
write-result-workspace: true
- haskell/build-with-binary-cache:
name: Darwin
executor: darwin
context: haskell-ci
run-tests: false
fail-incoherent-builds: false
write-result-workspace: true
workspace-dir: workspace/osx
after-checkout:
- restore_cache:
keys:
- homebrew-itself-cache
- run:
name: Install GHC
command: |
brew update
brew install jq md5sha1sum
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | \
BOOTSTRAP_HASKELL_NONINTERACTIVE=1 \
BOOTSTRAP_HASKELL_GHC_VERSION=8.8.3 \
BOOTSTRAP_HASKELL_CABAL_VERSION=3.2.0.0 \
sh
cat >> $BASH_ENV \<<EOF
export PATH="$HOME/.ghcup/bin:$PATH"
EOF
source $BASH_ENV
- save_cache:
key: homebrew-itself-cache
# I cache Homebrew itself, not the stuff that is installed with it
# because brew update takes up to 4 minutes for some reason.
paths: [/usr/local/Homebrew]
- github/release-cabal:
context: haskell-ci
name: GitHub Release
attach-workspace: true
requires:
- GHC 8.6.5
- GHC 8.8.3
- i386 GHC 8.8.3
- Darwin
checkout: true
before-release:
- run:
name: Prepare environment for release
command: |
source ./workspace/ghc-8.8.3/project.env
tar zcvf /tmp/artefacts/${CIRCLE_PROJECT_REPONAME}_${BUILD_ARCH}_${BUILD_OS_NAME}.tar.gz -C ./workspace/ghc-8.8.3/dist/ ./${BUILD_EXE_NAME}
source ./workspace/i386-ghc-8.8.3/project.env
tar zcvf /tmp/artefacts/i386-${CIRCLE_PROJECT_REPONAME}_${BUILD_ARCH}_${BUILD_OS_NAME}.tar.gz -C ./workspace/i386-ghc-8.8.3/dist/ ./${BUILD_EXE_NAME}
source ./workspace/osx/project.env
tar zcvf /tmp/artefacts/${CIRCLE_PROJECT_REPONAME}_${BUILD_ARCH}_${BUILD_OS_NAME}.tar.gz -C ./workspace/osx/dist/ ./${BUILD_EXE_NAME}
filters:
branches:
only: master
- hackage/upload:
context: haskell-ci
publish: true
requires:
- GitHub Release