@@ -101,6 +101,50 @@ jobs:
101101 --data "{\"text\":\"<!here> *FAILED* $(Agent.JobName): <https://dev.azure.com/digitalasset/ghcide/_build/results?buildId=$(Build.BuildId)|$MESSAGE>\n\"}" \
102102 $(Slack.URL)
103103 condition: and(failed(), eq(variables['Build.SourceBranchName'], 'master'))
104+ - job: ghcide_stack_88
105+ timeoutInMinutes: 60
106+ pool:
107+ vmImage: 'ubuntu-latest'
108+ steps:
109+ - checkout: self
110+ - task: CacheBeta@0
111+ inputs:
112+ key: stack-cache-v1 | $(Agent.OS) | $(Build.SourcesDirectory)/stack88.yaml | $(Build.SourcesDirectory)/ghcide.cabal
113+ path: .azure-cache
114+ cacheHitVar: CACHE_RESTORED
115+ displayName: "Cache stack artifacts"
116+ - bash: |
117+ mkdir -p ~/.stack
118+ tar xzf .azure-cache/stack-root.tar.gz -C $HOME
119+ displayName: "Unpack cache"
120+ condition: eq(variables.CACHE_RESTORED, 'true')
121+ - bash: |
122+ ./fmt.sh
123+ displayName: "HLint via ./fmt.sh"
124+ - bash: |
125+ sudo apt-get install -y g++ gcc libc6-dev libffi-dev libgmp-dev make zlib1g-dev
126+ curl -sSL https://get.haskellstack.org/ | sh
127+ displayName: 'Install Stack'
128+ - bash: stack setup --stack-yaml=stack88.yaml
129+ displayName: 'stack setup --stack-yaml=stack88.yaml'
130+ - bash: stack build --only-dependencies --stack-yaml=stack88.yaml
131+ displayName: 'stack build --only-dependencies --stack-yaml=stack88.yaml'
132+ - bash: stack test --stack-yaml=stack88.yaml --ghc-options=-Werror || stack test --stack-yaml=stack88.yaml --ghc-options=-Werror || stack test --stack-yaml=stack88.yaml --ghc-options=-Werror
133+ # ghcide stack tests are flaky, see https://github.com/digital-asset/daml/issues/2606.
134+ displayName: 'stack test --stack-yaml=stack88.yaml --ghc-options=-Werror'
135+ - bash: |
136+ mkdir -p .azure-cache
137+ tar czf .azure-cache/stack-root.tar.gz -C $HOME .stack
138+ displayName: "Pack cache"
139+ - bash: |
140+ set -euo pipefail
141+ MESSAGE=$(git log --pretty=format:%s -n1)
142+ curl -XPOST \
143+ -i \
144+ -H 'Content-type: application/json' \
145+ --data "{\"text\":\"<!here> *FAILED* $(Agent.JobName): <https://dev.azure.com/digitalasset/ghcide/_build/results?buildId=$(Build.BuildId)|$MESSAGE>\n\"}" \
146+ $(Slack.URL)
147+ condition: and(failed(), eq(variables['Build.SourceBranchName'], 'master'))
104148 - job: ghcide_stack_ghc_lib_88
105149 timeoutInMinutes: 60
106150 pool: