aboutsummaryrefslogtreecommitdiff
path: root/azure-pipelines.yml
blob: 46bd4367a76a9cb3596da6d311a2b66fcfddbb35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# NB: image names can be found at
# https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted

variables:
  NJOBS: "2"

jobs:
- job: Windows
  pool:
    vmImage: 'vs2017-win2016'

  # Equivalent to allow_failure: true
  # continueOnError: true

  steps:
  - checkout: self
    fetchDepth: 10

  # cygwin package list not checked for minimality
  - script: |
      powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe', 'setup-x86_64.exe')"
      SET CYGROOT=C:\cygwin64
      SET CYGCACHE=%CYGROOT%\var\cache\setup
      setup-x86_64.exe -qnNdO -R %CYGROOT% -l %CYGCACHE% -s %CYGMIRROR% -P rsync -P patch -P diffutils -P make -P unzip -P m4 -P findutils -P time -P wget -P curl -P git -P mingw64-x86_64-binutils,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,mingw64-x86_64-pkg-config,mingw64-x86_64-windows_default_manifest -P mingw64-x86_64-headers,mingw64-x86_64-runtime,mingw64-x86_64-pthreads,mingw64-x86_64-zlib,mingw64-x86_64-gmp -P python3

      SET TARGET_ARCH=x86_64-w64-mingw32
      SET CD_MFMT=%cd:\=/%
      SET RESULT_INSTALLDIR_CFMT=%CD_MFMT:C:/=/cygdrive/c/%
      C:\cygwin64\bin\bash -l %cd%\dev\build\windows\configure_profile.sh
    displayName: 'Install cygwin'
    env:
      CYGMIRROR: "http://mirror.cs.vt.edu/pub/cygwin/cygwin"

  - script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-opam.sh
    displayName: 'Install opam'

  - script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-build.sh
    displayName: 'Build Coq'

  # We are hitting a bug where Dune is rebuilding Coq to run the
  # test-suite, also it seems to time out, so we just build for now
  #
  # - script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-test.sh
  #   displayName: 'Test Coq'

  - publish: _build/log
    artifact: Dune Build Log
    condition: always()

- job: macOS
  pool:
    vmImage: 'macOS-10.14'

  variables:
    MACOSX_DEPLOYMENT_TARGET: '10.11'

  steps:

  - checkout: self
    fetchDepth: 10

  - script: |
      set -e
      brew install gnu-time opam gtksourceview3 adwaita-icon-theme
      pip3 install macpack
    displayName: 'Install system dependencies'

  - script: |
      set -e
      export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
      opam init -a -j "$NJOBS" --compiler=ocaml-base-compiler.$COMPILER
      opam switch set ocaml-base-compiler.$COMPILER
      eval $(opam env)
      opam update
      opam install -j "$NJOBS" ocamlfind${FINDLIB_VER} ounit lablgtk3-sourceview3 zarith.1.10
      opam list
    displayName: 'Install OCaml dependencies'
    env:
      COMPILER: "4.11.1"
      FINDLIB_VER: ".1.8.1"
      OPAMYES: "true"

  - script: |
      set -e

      eval $(opam env)
      ./configure -prefix '$(Build.BinariesDirectory)' -warn-error yes -native-compiler no -coqide opt
      make -j "$NJOBS" byte
      make -j "$NJOBS"
    displayName: 'Build Coq'

  - script: |
      eval $(opam env)
      export OCAMLPATH=$(pwd):"$OCAMLPATH"
      make -j "$NJOBS" test-suite PRINT_LOGS=1
    displayName: 'Run Coq Test Suite'

  - script: |
      make install
    displayName: 'Install Coq'

#  - script: |
#      set -e
#      eval $(opam env)
#      export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
#      ./dev/build/osx/make-macos-dmg.sh
#      mv _build/*.dmg "$(Build.ArtifactStagingDirectory)/"
#    displayName: 'Create the dmg bundle'
#    env:
#      OUTDIR: '$(Build.BinariesDirectory)'

#  - task: PublishBuildArtifacts@1
#    inputs:
#      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
#      artifactName: coq-macOS-installer