mirror of
https://github.com/haskell/ghcide.git
synced 2024-12-12 13:13:22 +03:00
60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
# Build master commits
|
|
trigger:
|
|
batch: false
|
|
branches:
|
|
include:
|
|
- master
|
|
|
|
# Enable PR triggers that target the master branch
|
|
pr:
|
|
autoCancel: true # cancel previous builds on push
|
|
branches:
|
|
include:
|
|
- master
|
|
|
|
jobs:
|
|
- job: ghcide_stack_86
|
|
timeoutInMinutes: 60
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
steps:
|
|
- checkout: self
|
|
- task: CacheBeta@0
|
|
inputs:
|
|
key: stack-cache-v1 | $(Agent.OS) | $(Build.SourcesDirectory)/stack.yaml | $(Build.SourcesDirectory)/ghcide.cabal
|
|
path: .azure-cache
|
|
cacheHitVar: CACHE_RESTORED
|
|
displayName: "Cache stack artifacts"
|
|
- bash: |
|
|
mkdir -p ~/.stack
|
|
tar xzf .azure-cache/stack-root.tar.gz -C $HOME
|
|
displayName: "Unpack cache"
|
|
condition: eq(variables.CACHE_RESTORED, 'true')
|
|
- bash: |
|
|
./fmt.sh
|
|
displayName: "HLint via ./fmt.sh"
|
|
- bash: |
|
|
sudo apt-get install -y g++ gcc libc6-dev libffi-dev libgmp-dev make zlib1g-dev
|
|
curl -sSL https://get.haskellstack.org/ | sh
|
|
displayName: 'Install Stack'
|
|
- bash: stack setup
|
|
displayName: 'stack setup'
|
|
- bash: stack build --only-dependencies
|
|
displayName: 'stack build --only-dependencies'
|
|
- bash: stack test || stack test || stack test
|
|
# ghcide stack tests are flaky, see https://github.com/digital-asset/daml/issues/2606.
|
|
displayName: 'stack test'
|
|
- bash: |
|
|
mkdir -p .azure-cache
|
|
tar czf .azure-cache/stack-root.tar.gz -C $HOME .stack
|
|
displayName: "Pack cache"
|
|
- bash: |
|
|
set -euo pipefail
|
|
MESSAGE=$(git log --pretty=format:%s -n1)
|
|
curl -XPOST \
|
|
-i \
|
|
-H 'Content-type: application/json' \
|
|
--data "{\"text\":\"<!here> *FAILED* $(Agent.JobName): <https://dev.azure.com/digitalasset/ghcide/_build/results?buildId=$(Build.BuildId)|$MESSAGE>\n\"}" \
|
|
$(Slack.URL)
|
|
condition: and(failed(), eq(variables['Build.SourceBranchName'], 'master'))
|