99 matrix :
1010 stack :
1111 BUILD : stack
12- STACK_YAML : stack.yaml
1312 maxParallel : 1
1413 steps :
1514 - script : |
16- echo $OS_NAME
1715 export STACK_ROOT="$(Build.SourcesDirectory)"/.stack-root;
1816 echo $STACK_ROOT
1917 mkdir -p ~/.local/bin
@@ -23,103 +21,38 @@ jobs:
2321 cache-s3 --prefix="${CACHE_S3_PREFIX}" --git-branch="$(Build.SourceBranchName)" --suffix="${OS_NAME}" restore stack --base-branch="${BASE_BRANCH}"
2422 cache-s3 --prefix="${CACHE_S3_PREFIX}" --git-branch="$(Build.SourceBranchName)" --suffix="${OS_NAME}" restore stack work --base-branch="${BASE_BRANCH}"
2523 ./.travis-setup.sh
26- case "$BUILD" in
27- style)
28- export PATH="$(pwd)"/hlint:$PATH
29- ;;
30- cabal)
31- export PATH=$HOME/.local/bin:$HOME/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/happy/1.19.5/bin:/opt/alex/3.1.7/bin:/opt/cabal/$CABALVER/bin:$PATH
32- ;;
33- *)
34- export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/happy/1.19.5/bin:/opt/alex/3.1.7/bin:$PATH
35- ;;
36- esac
24+ export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/happy/1.19.5/bin:/opt/alex/3.1.7/bin:$PATH
3725 if ! [ "$BUILD" = style ]; then echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"; fi
38- set -ex
39- case "$BUILD" in
40- style)
41- ./etc/scripts/get-hlint.sh
42- ;;
43- cabal)
44- cabal --version
45- cabal update
46- rm -f $HOME/.cabal/bin/stack
47- echo "stack is located at $(which stack)"
48- stack --version
49-
50- echo Removing any old dist files
51- rm -f $(stack --stack-yaml=$STACK_YAML path --dist-dir)/stack-*.tar.gz
52-
53- echo To avoid custom Cabal setup business, switching temporarily to Simple
54- cp stack.cabal stack.orig-cabal
55- sed 's@build-type\:.*@build-type\: Simple@' < stack.orig-cabal > stack.cabal
56-
57- echo Generating new dist with pvp bounds in the cabal file
58- stack --system-ghc --stack-yaml=$STACK_YAML sdist --pvp-bounds=both
59-
60- echo Grabbing the newly generated stack.cabal file from the tarball
61- tar xf $(stack --system-ghc --compiler=ghc-$GHCVER path --dist-dir)/stack-*.tar.gz --wildcards --strip-components=1 '*/stack.cabal'
62-
63- echo Switching back to Custom build type
64- cp stack.cabal stack.orig-cabal
65- sed 's@build-type\:.*@build-type\: Custom@' < stack.orig-cabal > stack.cabal
66- rm -f stack.orig-cabal
67-
68- echo Performing the actual build now that we have the right stack.cabal
69- cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1
70- ;;
71- *)
72- stack --no-terminal build Cabal
73- stack --no-terminal test --only-dependencies
74- ;;
75- esac
76- set +ex
77- GHC_OPTIONS="-Werror"
78- if [ $GHCVER = 8.2.1 ]; then GHC_OPTIONS="$GHC_OPTIONS -Wno-missing-home-modules"; fi
7926 set -ex
80- case "$BUILD" in
81- style)
82- hlint src/
83- hlint src/ --cpp-define=WINDOWS=1
84- hlint test/ --cpp-simple
85- ;;
86- stack)
87- stack --no-terminal test --haddock --no-haddock-deps --ghc-options="$GHC_OPTIONS"
88- ;;
89- pedantic)
90- stack --system-ghc --no-terminal build --pedantic
91- ;;
92- cabal)
93- cabal configure --enable-tests --enable-benchmarks -v2 --ghc-options="-O0 $GHC_OPTIONS"
94- cabal build
95- cabal test
96- cabal check
97- cabal sdist
98- cabal copy
99- cd test/integration
100- true stack setup --compiler=ghc-$GHCVER
101- true stack test --compiler=ghc-$GHCVER
102- cd ../..
103- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz
104- (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
105- ;;
106- esac
27+ stack --no-terminal install cabal-install
10728 set +ex
10829 env:
10930 OS_NAME: ${{ parameters.os }}
11031 AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
11132 AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
11233 displayName: 'Installation ${{parameters.os}}'
113- continueOnError: ${{ eq(variables['STACK_YAML'], 'stack-nightly.yaml') }}
11434 - script : |
115- stack install
116- tar czf stack.tar.gz -C $(stack path --local-bin) stack
117- mv stack.tar.gz $(Build.ArtifactStagingDirectory)
35+ curl https://nixos.org/nix/install | sh
36+ source ~/.profile
37+ export STACK_ROOT="$(Build.SourcesDirectory)"/.stack-root;
38+ export PATH=$HOME/.local/bin:$PATH;
39+ set -ex
40+ stack test --flag stack:integration-tests stack:test:stack-integration-test
41+ set +ex
42+ displayName: Integration Test
43+ - script : |
44+ export STACK_ROOT="$(Build.SourcesDirectory)"/.stack-root;
45+ export PATH=$HOME/.local/bin:$PATH;
46+ set -ex
47+ stack install stack --local-bin-path $(Build.ArtifactStagingDirectory)
48+ set +ex
11849 displayName: Gzip Stack
50+ condition: in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues', 'Failed')
11951 - task : PublishBuildArtifacts@1
12052 inputs :
12153 pathtoPublish : ' $(Build.ArtifactStagingDirectory)'
122- artifactName : stack-linux-x86_64.tar.gz
54+ artifactName : stack-linux-x86_64
55+ condition : in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues', 'Failed')
12356 - script : |
12457 export PATH=$HOME/.local/bin:$PATH;
12558 export AWS_ACCESS_KEY_ID="$(AWS_ACCESS_KEY_ID)";
0 commit comments