on develop help sign in
Adding CI scripts from amazonka
commitf5e22feb92daebfee4078a40713dc9ac6e3fed7a authorBrendan Hay <brendan.g.hay@gmail.com> dateSat 26 Sep 2015, 16:39 (11 years ago) parente7c5951
10 files changed+483
.travis.yml+216 gen/script/travis-matrix+47 script/contributors+3 script/set-version+27 script/travis-documentation+80 script/travis-lifecycle-before_install+16 script/travis-lifecycle-install+16 script/travis-lifecycle-script+16 script/travis-matrix+47 script/travis-timeout+15
.travis.ymlnew file+216
@@ -0,0 +1,216 @@
1+sudo: false
2+
3+env:
4+ global:
5+ - DOC_REF: github.com/brendanhay/gogol-doc.git
6+ - secure: fxJPfu/icH+3w9nRcedFtqNumnpmo1vWAA7HBaeeCF0vnzTHBbD2ej3olyaDmFoJ9PaW84q5UKX3iU6BBXLmlestOZCcfQ9nDvVuIVpimIovO7QuZhnRYea0SaSRcXEgNE+nWEcsiiKWuVUnDEXAUQRCs04YQpAvgsUjMcZgXQw=
7+
8+cache:
9+ apt: true
10+ directories:
11+ - ~/.stack
12+
13+branches:
14+ only:
15+ - master
16+ - develop
17+
18+before_install:
19+ - export PATH=/opt/ghc/$GHCVER/bin:$PATH
20+ - export PATH=~/.local/bin:$PATH
21+ - ./script/travis-lifecycle-before_install
22+
23+install:
24+ - ./script/travis-lifecycle-install
25+
26+script:
27+ - ./script/travis-lifecycle-script
28+
29+matrix:
30+ fast_finish: true
31+ include:
32+ # Below is auto-generated by ./scripts/travis-matrix >> .travis.yml
33+
34+ # Documentation
35+ - env: GHCVER=7.10.2 LIBRARY=documentation
36+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
37+
38+ # Core
39+ - env: GHCVER=7.10.2 LIBRARY=gogol-core
40+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
41+ - env: GHCVER=7.8.4 LIBRARY=gogol-core
42+ addons: { apt: { packages: [ghc-7.8.4], sources: [hvr-ghc] } }
43+ - env: GHCVER=7.10.2 LIBRARY=gogol
44+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
45+ - env: GHCVER=7.8.4 LIBRARY=gogol
46+ addons: { apt: { packages: [ghc-7.8.4], sources: [hvr-ghc] } }
47+
48+ # Priority
49+ - env: GHCVER=7.10.2 LIBRARY=gogol-compute
50+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
51+ - env: GHCVER=7.8.4 LIBRARY=gogol-compute
52+ addons: { apt: { packages: [ghc-7.8.4], sources: [hvr-ghc] } }
53+ - env: GHCVER=7.10.2 LIBRARY=gogol-drive
54+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
55+ - env: GHCVER=7.8.4 LIBRARY=gogol-drive
56+ addons: { apt: { packages: [ghc-7.8.4], sources: [hvr-ghc] } }
57+
58+ # Remainder
59+ - env: GHCVER=7.10.2 LIBRARY=gogol-adexchange-buyer
60+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
61+ - env: GHCVER=7.10.2 LIBRARY=gogol-adexchange-seller
62+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
63+ - env: GHCVER=7.10.2 LIBRARY=gogol-admin
64+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
65+ - env: GHCVER=7.10.2 LIBRARY=gogol-adsense
66+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
67+ - env: GHCVER=7.10.2 LIBRARY=gogol-adsense-host
68+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
69+ - env: GHCVER=7.10.2 LIBRARY=gogol-affiliatenetwork
70+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
71+ - env: GHCVER=7.10.2 LIBRARY=gogol-analytics
72+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
73+ - env: GHCVER=7.10.2 LIBRARY=gogol-android-enterprise
74+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
75+ - env: GHCVER=7.10.2 LIBRARY=gogol-android-publisher
76+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
77+ - env: GHCVER=7.10.2 LIBRARY=gogol-appengine
78+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
79+ - env: GHCVER=7.10.2 LIBRARY=gogol-appsactivity
80+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
81+ - env: GHCVER=7.10.2 LIBRARY=gogol-appstate
82+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
83+ - env: GHCVER=7.10.2 LIBRARY=gogol-autoscaler
84+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
85+ - env: GHCVER=7.10.2 LIBRARY=gogol-bigquery
86+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
87+ - env: GHCVER=7.10.2 LIBRARY=gogol-blogger
88+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
89+ - env: GHCVER=7.10.2 LIBRARY=gogol-books
90+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
91+ - env: GHCVER=7.10.2 LIBRARY=gogol-calendar
92+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
93+ - env: GHCVER=7.10.2 LIBRARY=gogol-civicinfo
94+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
95+ - env: GHCVER=7.10.2 LIBRARY=gogol-classroom
96+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
97+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-billing
98+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
99+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-datastore
100+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
101+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-debugger
102+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
103+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-deployments
104+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
105+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-dns
106+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
107+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-latencytest
108+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
109+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-logging
110+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
111+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-monitoring
112+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
113+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-pubsub
114+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
115+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-resources
116+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
117+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-sqladmin
118+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
119+ - env: GHCVER=7.10.2 LIBRARY=gogol-cloud-users
120+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
121+ - env: GHCVER=7.10.2 LIBRARY=gogol-container
122+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
123+ - env: GHCVER=7.10.2 LIBRARY=gogol-content
124+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
125+ - env: GHCVER=7.10.2 LIBRARY=gogol-customsearch
126+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
127+ - env: GHCVER=7.10.2 LIBRARY=gogol-dataflow
128+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
129+ - env: GHCVER=7.10.2 LIBRARY=gogol-dfareporting
130+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
131+ - env: GHCVER=7.10.2 LIBRARY=gogol-discovery
132+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
133+ - env: GHCVER=7.10.2 LIBRARY=gogol-doubleclick-bids
134+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
135+ - env: GHCVER=7.10.2 LIBRARY=gogol-doubleclick-search
136+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
137+ - env: GHCVER=7.10.2 LIBRARY=gogol-fitness
138+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
139+ - env: GHCVER=7.10.2 LIBRARY=gogol-freebasesearch
140+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
141+ - env: GHCVER=7.10.2 LIBRARY=gogol-fusiontables
142+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
143+ - env: GHCVER=7.10.2 LIBRARY=gogol-games
144+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
145+ - env: GHCVER=7.10.2 LIBRARY=gogol-games-configuration
146+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
147+ - env: GHCVER=7.10.2 LIBRARY=gogol-games-management
148+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
149+ - env: GHCVER=7.10.2 LIBRARY=gogol-genomics
150+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
151+ - env: GHCVER=7.10.2 LIBRARY=gogol-gmail
152+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
153+ - env: GHCVER=7.10.2 LIBRARY=gogol-groups
154+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
155+ - env: GHCVER=7.10.2 LIBRARY=gogol-identity-toolkit
156+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
157+ - env: GHCVER=7.10.2 LIBRARY=gogol-licensing
158+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
159+ - env: GHCVER=7.10.2 LIBRARY=gogol-maps-coordinate
160+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
161+ - env: GHCVER=7.10.2 LIBRARY=gogol-maps-engine
162+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
163+ - env: GHCVER=7.10.2 LIBRARY=gogol-mirror
164+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
165+ - env: GHCVER=7.10.2 LIBRARY=gogol-oauth2
166+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
167+ - env: GHCVER=7.10.2 LIBRARY=gogol-pagespeed
168+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
169+ - env: GHCVER=7.10.2 LIBRARY=gogol-partners
170+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
171+ - env: GHCVER=7.10.2 LIBRARY=gogol-play-moviespartner
172+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
173+ - env: GHCVER=7.10.2 LIBRARY=gogol-plus
174+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
175+ - env: GHCVER=7.10.2 LIBRARY=gogol-plus-domains
176+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
177+ - env: GHCVER=7.10.2 LIBRARY=gogol-prediction
178+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
179+ - env: GHCVER=7.10.2 LIBRARY=gogol-proximitybeacon
180+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
181+ - env: GHCVER=7.10.2 LIBRARY=gogol-qpxexpress
182+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
183+ - env: GHCVER=7.10.2 LIBRARY=gogol-replicapool
184+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
185+ - env: GHCVER=7.10.2 LIBRARY=gogol-replicapool-updater
186+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
187+ - env: GHCVER=7.10.2 LIBRARY=gogol-reseller
188+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
189+ - env: GHCVER=7.10.2 LIBRARY=gogol-resourceviews
190+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
191+ - env: GHCVER=7.10.2 LIBRARY=gogol-siteverification
192+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
193+ - env: GHCVER=7.10.2 LIBRARY=gogol-spectrum
194+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
195+ - env: GHCVER=7.10.2 LIBRARY=gogol-storage
196+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
197+ - env: GHCVER=7.10.2 LIBRARY=gogol-storage-transfer
198+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
199+ - env: GHCVER=7.10.2 LIBRARY=gogol-tagmanager
200+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
201+ - env: GHCVER=7.10.2 LIBRARY=gogol-taskqueue
202+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
203+ - env: GHCVER=7.10.2 LIBRARY=gogol-tasks
204+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
205+ - env: GHCVER=7.10.2 LIBRARY=gogol-translate
206+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
207+ - env: GHCVER=7.10.2 LIBRARY=gogol-urlshortener
208+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
209+ - env: GHCVER=7.10.2 LIBRARY=gogol-webfonts
210+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
211+ - env: GHCVER=7.10.2 LIBRARY=gogol-webmaster-tools
212+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
213+ - env: GHCVER=7.10.2 LIBRARY=gogol-youtube
214+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
215+ - env: GHCVER=7.10.2 LIBRARY=gogol-youtube-analytics
216+ addons: { apt: { packages: [ghc-7.10.2], sources: [hvr-ghc] } }
gen/script/travis-matrixnew file+47
@@ -0,0 +1,47 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+docs=( documentation )
6+core=( gogol-core gogol )
7+
8+priority_=( oauth2 compute drive youtube translate )
9+priority=${priority_[@]/#/gogol-}
10+
11+library_=( $(ls -d gogol-*) )
12+library=( $(echo ${library_[@]} ${priority[@]} | tr ' ' '\n' | sort | uniq -u) )
13+
14+entry() {
15+ local ver="$1"
16+ local lib="$2"
17+
18+cat <<-ENTRY
19+ - env: GHCVER=${ver} LIBRARY=${lib}
20+ addons: { apt: { packages: [ghc-${ver}], sources: [hvr-ghc] } }
21+ENTRY
22+}
23+
24+matrix() {
25+ local title="$1"
26+ declare -a versions=("${!2}")
27+ declare -a selected=("${!3}")
28+
29+cat <<-TITLE
30+
31+ # ${title}
32+TITLE
33+
34+ for lib in ${selected[@]}; do
35+ for ver in ${versions[@]}; do
36+ entry $ver $lib
37+ done
38+ done
39+}
40+
41+ghc_710=( 7.10.2 )
42+ghc_all=( 7.10.2 7.8.4 )
43+
44+matrix "Documentation" ghc_710[@] docs[@]
45+matrix "Core" ghc_all[@] core[@]
46+matrix "Priority" ghc_all[@] priority[@]
47+matrix "Remainder" ghc_710[@] library[@]
script/contributorsnew file+3
@@ -0,0 +1,3 @@
1+#!/usr/bin/env bash
2+
3+git log --all --format='%cN' | sort -u | tail -n +2
script/set-versionnew file+27
@@ -0,0 +1,27 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+pvp="$1"
6+semantic="$2"
7+
8+if [ -z "$pvp" ] || [ -z "$semantic" ]; then
9+ echo "Usage: bump-version <VERSION> <DEPENDENCY>"
10+ exit 1
11+fi
12+
13+specs=(
14+ gogol/gogol.cabal
15+ core/gogol-core.cabal
16+ gen/gogol-gen.cabal
17+)
18+
19+echo "Bumping version to $pvp and dependencies to == $semantic ..."
20+
21+for cabal in ${specs[@]}; do
22+ sed -i"" "s/^\(version: *\).*$/\1$pvp/" $cabal
23+ sed -i"" "s/^\(.*gogol-[a-z0-9]* *== *\)\([0-9\.]\+\*\)$/\1$semantic.*/" $cabal
24+ sed -i"" "s/^\(.*gogol *== *\)\([0-9\.]\+\*\)$/\1$semantic.*/" $cabal
25+done
26+
27+echo "Done."
script/travis-documentationnew file+80
@@ -0,0 +1,80 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+if [ "$TRAVIS_BRANCH" != "develop" ]; then
6+ echo "Ignoring documentation build for branch '$TRAVIS_BRANCH'."
7+ exit 0
8+fi
9+
10+if [ -z "$DOC_TOKEN" ]; then
11+ echo "Ignoring documentation build due to missing token."
12+ exit 0
13+fi
14+
15+GHCVER=${GHCVER?"GHCVER needs to be set."}
16+DOC_REF=${DOC_REF?"DOC_REF needs to be set."}
17+BUILD_ID=${TRAVIS_BUILD_ID?"TRAVIS_BUILD_ID needs to be set."}
18+BUILD_NUMBER=${TRAVIS_BUILD_NUMBER?"TRAVIS_BUILD_NUMBER needs to be set."}
19+
20+path=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
21+
22+output=doc
23+platform=x86_64-linux
24+resolver=$(sed -n 's/^resolver: *\(.*\)$/\1/p' stack-$GHCVER.yaml)
25+
26+echo "Using resolver ${resolver}"
27+
28+databases=( $(stack --stack-yaml stack-$GHCVER.yaml path | sed -n 's/^.*-pkg-db: *\(.*\)$/\1/p') )
29+databases=( "${databases[@]/#/--package-db }" )
30+
31+echo "Using resolver ${resolver}"
32+echo "Using databases ${databases[@]}"
33+
34+$path/travis-timeout \
35+ stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml install \
36+ standalone-haddock \
37+ hscolour
38+
39+$path/travis-timeout \
40+ stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml build \
41+ gogol-core gogol gogol-s3-encryption
42+
43+$path/travis-timeout \
44+ standalone-haddock --hyperlink-source -o $output \
45+ ${databases[@]} \
46+ core gogol*
47+
48+{
49+ cat <<-HTML
50+ <!DOCTYPE html>
51+ <h2>Gogol Library Documentation</h2>
52+ <h4>Build <a href="https://travis-ci.org/brendanhay/gogol/builds/${BUILD_ID}">#${BUILD_NUMBER}</a>, GHC ${GHCVER}</h4>
53+ <ul>
54+HTML
55+
56+ for dir in $(ls -d $output/*/); do
57+ file=$(basename $dir)
58+ cat <<-HTML
59+ <li><a href="${file}/index.html">${file}</a></li>
60+HTML
61+ done
62+
63+ cat <<-HTML
64+ </ul>
65+HTML
66+} > $output/index.html
67+
68+set -x
69+
70+cd $output
71+
72+git init
73+
74+git config user.name "Brendan Hay"
75+git config user.email "brendan.g.hay@gmail.com"
76+
77+git add .
78+git commit -m "Travis CI documentation deploy $BUILD_NUMBER"
79+
80+git push --force --quiet "https://${DOC_TOKEN}@${DOC_REF}" master:gh-pages > /dev/null 2>&1
script/travis-lifecycle-before_installnew file+16
@@ -0,0 +1,16 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+dir=~/.local/bin
6+remote=https://github.com/commercialhaskell/stack/releases/download/v0.1.3.1/stack-0.1.3.1-x86_64-linux.gz
7+local=$dir/stack
8+
9+mkdir -p $dir
10+
11+curl -L $remote | gunzip > $local
12+
13+chmod a+x $local
14+
15+ghc --version
16+stack --version
script/travis-lifecycle-installnew file+16
@@ -0,0 +1,16 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+GHCVER=${GHCVER?"GHCVER needs to be set."}
6+LIBRARY=${LIBRARY?"LIBRARY needs to be set."}
7+
8+path=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
9+
10+$path/travis-timeout \
11+ stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml setup
12+
13+if [ "$LIBRARY" != "documentation" ]; then
14+ $path/travis-timeout \
15+ stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml test $LIBRARY --only-snapshot
16+fi
script/travis-lifecycle-scriptnew file+16
@@ -0,0 +1,16 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+GHCVER=${GHCVER?"GHCVER needs to be set."}
6+LIBRARY=${LIBRARY?"LIBRARY needs to be set."}
7+
8+path=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
9+
10+if [ "$LIBRARY" == "documentation" ]; then
11+ echo "Building documentation..."
12+ $path/travis-documentation
13+else
14+ echo "Running tests for ${LIBRARY}..."
15+ stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml test $LIBRARY
16+fi
script/travis-matrixnew file+47
@@ -0,0 +1,47 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+docs=( documentation )
6+core=( gogol-core gogol )
7+
8+priority_=( compute drive )
9+priority=${priority_[@]/#/gogol-}
10+
11+library_=( $(ls -d gogol-*) )
12+library=( $(echo ${library_[@]} ${priority[@]} | tr ' ' '\n' | sort | uniq -u) )
13+
14+entry() {
15+ local ver="$1"
16+ local lib="$2"
17+
18+cat <<-ENTRY
19+ - env: GHCVER=${ver} LIBRARY=${lib}
20+ addons: { apt: { packages: [ghc-${ver}], sources: [hvr-ghc] } }
21+ENTRY
22+}
23+
24+matrix() {
25+ local title="$1"
26+ declare -a versions=("${!2}")
27+ declare -a selected=("${!3}")
28+
29+cat <<-TITLE
30+
31+ # ${title}
32+TITLE
33+
34+ for lib in ${selected[@]}; do
35+ for ver in ${versions[@]}; do
36+ entry $ver $lib
37+ done
38+ done
39+}
40+
41+ghc_710=( 7.10.2 )
42+ghc_all=( 7.10.2 7.8.4 )
43+
44+matrix "Documentation" ghc_710[@] docs[@]
45+matrix "Core" ghc_all[@] core[@]
46+matrix "Priority" ghc_all[@] priority[@]
47+matrix "Remainder" ghc_710[@] library[@]
script/travis-timeoutnew file+15
@@ -0,0 +1,15 @@
1+#!/usr/bin/env bash
2+
3+$* &
4+pidA=$!
5+minutes=0
6+
7+while true; do sleep 60; ((minutes++)); echo -e "\033[0;32m$minutes minute(s) elapsed running '$*'\033[0m."; done &
8+pidB=$!
9+wait $pidA
10+resA=$?
11+
12+echo -e "\033[0;32m'$*' exited with status ${resA}.\033[0m"
13+kill -9 $pidB
14+
15+exit $resA