aboutsummaryrefslogtreecommitdiff
path: root/appveyor.yml
blob: 55e41a76bd33e886b20052fd8a47b5890293cbf4 (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
image: Visual Studio 2013
clone_folder: "c:\\pandoc"
environment:
  global:
    WIXBIN: "c:\\Program Files (x86)\\WiX Toolset v3.11\\bin"
    CABAL_STORE: "C:\\cs"
    CABAL_PACKAGE_DB: "%CABAL_STORE%\\ghc-%GHC_MINOR_VERSION%\\package.db"
    APPVEYOR_SAVE_CACHE_ON_ERROR: true
    # Override the temp directory to avoid sed escaping issues
    # See https://github.com/haskell/cabal/issues/5386
    TMP: "c:\\tmp"
    # see #4201, https://github.com/haskell-tools/haskell-tools/issues/277
  matrix:
  - OSARCH: "windows-x86_64"
    GHC_VERSION: "8.6.4"
    GHC_MINOR_VERSION: "8.6.4"
    GHC: "C:\\ProgramData\\chocolatey\\lib\\ghc\\tools\\ghc-%GHC_MINOR_VERSION%\\bin\\ghc.exe"
    CABAL_VERSION: "2.4.1.0"
    CABAL_OPTS: "-fembed_data_files -fbibutils --verbose=2"
    GHC_OPTS: "-fhide-source-paths"
    ARCH: "x64"
    CHOCO_OPTS: ""
  - OSARCH: "windows-i386"
    GHC_VERSION: "8.6.4"
    GHC_MINOR_VERSION: "8.6.4"
    GHC: "C:\\ProgramData\\chocolatey\\lib\\ghc\\tools\\ghc-%GHC_MINOR_VERSION%\\bin\\ghc.exe"
    CABAL_VERSION: "2.4.1.0"
    CABAL_OPTS: "-flua_32bits -fembed_data_files -fbibutils --verbose=2"
    GHC_OPTS: "-fhide-source-paths"
    ARCH: "x86"
    CHOCO_OPTS: "--x86"

skip_commits:
  files:
    - '*.md'
    - '*.txt'
    - '.travis.yml'
    - 'Makefile'
    - 'man/pandoc.1'
    - 'linux/*'
    - 'macos/*'

matrix:
  fast_finish: true

cache:
  - '%CABAL_STORE%'

# Note: to reset build cache, do the following in JavaScript
# console on appveyor:
# $.ajax({ url: 'https://ci.appveyor.com/api/projects/jgm/pandoc/buildcache', type: 'DELETE'})

# We don't do a normal C build, but build in test_script
build: off

install:
  - choco install wixtoolset --version 3.11.1 %CHOCO_OPTS%
  - choco install ghc --version %GHC_VERSION% --ignore-dependencies %CHOCO_OPTS%
  - choco install cabal --version %CABAL_VERSION% --ignore-dependencies %CHOCO_OPTS%

# before_test:

test_script:
  # Note: we manually create cabal store, because of a cabal bug:
  # see https://github.com/haskell/cabal/issues/5516
  - if not exist "%CABAL_PACKAGE_DB%" ( mkdir "%CABAL_PACKAGE_DB%" )
  - cabal --store-dir="%CABAL_STORE%" --version
  - cabal --store-dir="%CABAL_STORE%" new-update
  - cabal --store-dir="%CABAL_STORE%" new-configure -w %GHC% --enable-tests %CABAL_OPTS% --ghc-options="%GHC_OPTS%" . pandoc-citeproc
  - cabal --store-dir="%CABAL_STORE%" new-build . pandoc-citeproc
  - cabal --store-dir="%CABAL_STORE%" new-test . pandoc-citeproc
  - forfiles /P .\dist-newstyle /M pandoc*.exe /S /C "cmd /C copy @path C:\pandoc\windows"

after_test:
  # create msi and zip artifacts
  - cd windows
  - .\pandoc.exe -s --toc ..\MANUAL.txt -o MANUAL.html
  - .\pandoc.exe -s ..\COPYING.md -o COPYING.rtf
  - copy ..\COPYRIGHT COPYRIGHT.txt
  - 7z a "pandoc-%OSARCH%.zip" pandoc.exe pandoc-citeproc.exe MANUAL.html COPYING.rtf
  - |
      set VERSION=
      for /f "tokens=1-2 delims= " %%a in ('.\pandoc.exe --version') do ( if not defined VERSION set "VERSION=%%b" )
      echo %VERSION%
      "%WIXBIN%"\candle -arch %ARCH% -dVERSION=%VERSION% -dBINPATH=. *.wxs -out wixobj\
      "%WIXBIN%"\light -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out "pandoc-%OSARCH%.msi" wixobj\*.wixobj

# for debugging
# on_finish:
#   - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

artifacts:
  - path: 'windows\pandoc-%OSARCH%.zip'
    name: exe
  - path: 'windows\pandoc-%OSARCH%.msi'
    name: msi