yesod/.azure/azure-linux-template.yml
Jezen Thomas d82baf83b6
Increase CI timeout
The build on Azure DevOps is currently failing as the build-time is
exceeding 120 minutes. Hopefully 180 minutes should be sufficient.
2019-08-27 12:19:29 +02:00

119 lines
3.8 KiB
YAML

jobs:
- job: ${{ parameters.name }}
timeoutInMinutes: 180
pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
stack-def:
BUILD: stack
STACK_YAML: stack.yaml
stack-lts-9:
BUILD: stack
STACK_YAML: stack-lts-9.yaml
ARGS: "--resolver lts-9"
stack-lts-11:
BUILD: stack
STACK_YAML: stack.yaml
ARGS: "--resolver lts-11"
stack-lts-12:
BUILD: stack
STACK_YAML: stack.yaml
ARGS: "--resolver lts-12"
stack-lts-13:
BUILD: stack
STACK_YAML: stack.yaml
ARGS: "--resolver lts-13"
stack-persistent-2-9:
BUILD: stack
STACK_YAML: stack-persistent-2-9.yaml
ARGS: ""
stack-persistent-2-10:
BUILD: stack
STACK_YAML: stack-persistent-2-10.yaml
ARGS: ""
cabal-8.0.2:
BUILD: cabal
GHCVER: 8.0.2
CABALVER: 1.24
cabal-8.2.2:
BUILD: cabal
GHCVER: 8.2.2
CABALVER: 2.0
cabal-8.4.4:
BUILD: cabal
GHCVER: 8.4.4
CABALVER: 2.2
cabal-8.6.5:
BUILD: cabal
GHCVER: 8.6.5
CABALVER: 2.4
nightly:
BUILD: stack
ARGS: "--resolver nightly"
pedantic:
BUILD: pedantic
STACK_YAML: stack.yaml
maxParallel: 6
steps:
- script: |
export STACK_ROOT="$(Build.SourcesDirectory)"/.stack-root;
mkdir -p ~/.local/bin
curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
case "$BUILD" in
cabal)
sudo add-apt-repository -y ppa:hvr/ghc
sudo apt-get update
sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
# See note here: https://github.com/haskell-CI/haskell-ci#alex--happy-with-ghc--78
if [ "$GHCVER" = "head" ] || [ "${GHCVER%.*}" = "7.8" ] || [ "${GHCVER%.*}" = "7.10" ]; then
sudo apt-get install happy-1.19.4 alex-3.1.3
export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:$PATH
else
sudo apt-get install happy alex
fi
export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
cabal --version
cabal update
PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@')
cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES
;;
*)
export PATH=$HOME/.local/bin:$PATH
stack --install-ghc $ARGS test --bench --only-dependencies
;;
esac
set -ex
case "$BUILD" in
cabal)
cabal install --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES
ORIGDIR=$(pwd)
for dir in $PACKAGES
do
cd $dir
cabal check || [ "$CABALVER" == "1.16" ]
cabal sdist
PKGVER=$(cabal info . | awk '{print $2;exit}')
SRC_TGZ=$PKGVER.tar.gz
cd dist
tar zxfv "$SRC_TGZ"
cd "$PKGVER"
cabal configure --enable-tests --ghc-options -O0
cabal build
if [ "$CABALVER" = "1.16" ] || [ "$CABALVER" = "1.18" ]; then
cabal test
else
cabal test --show-details=streaming
fi
cd $ORIGDIR
done
;;
*)
stack $ARGS test --bench --no-run-benchmarks --haddock --no-haddock-deps
;;
esac
set +ex
env:
OS_NAME: ${{ parameters.os }}
displayName: 'Installation ${{parameters.os}} & Test'