aboutsummaryrefslogtreecommitdiff
path: root/appveyor.yml
diff options
context:
space:
mode:
Diffstat (limited to 'appveyor.yml')
-rw-r--r--appveyor.yml80
1 files changed, 48 insertions, 32 deletions
diff --git a/appveyor.yml b/appveyor.yml
index f0d4975f9..e0c978887 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -3,18 +3,31 @@ clone_folder: "c:\\pandoc"
environment:
global:
WIXBIN: "c:\\Program Files (x86)\\WiX Toolset v3.11\\bin"
- STACK_YAML: "c:\\pandoc\\stack.yaml"
- STACK_BUILD_OPTS: "-j1 --no-terminal --test --local-bin-path=.\\windows"
+ CABAL_STORE: "C:\\cs"
+ CABAL_PACKAGE_DB: "%CABAL_STORE%\\ghc-%GHC_MINOR_VERSION%\\package.db"
+ # 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:
- - STACK_VERSION: "windows-i386"
- STACK_ROOT: "c:\\sr32"
- STACK: "%STACK_ROOT%\\stack.exe"
- STACK_FLAGS: "--flag=hslua:lua_32bits"
- - STACK_VERSION: "windows-x86_64"
- STACK_ROOT: "c:\\sr64"
- STACK: "%STACK_ROOT%\\stack.exe"
- STACK_FLAGS: ""
+ - OSARCH: "windows-x86_64"
+ GHC_VERSION: "8.6.1.1"
+ GHC_MINOR_VERSION: "8.6.1"
+ GHC: "C:\\ProgramData\\chocolatey\\lib\\ghc\\tools\\ghc-%GHC_MINOR_VERSION%\\bin\\ghc.exe"
+ CABAL_VERSION: "2.4.0.0"
+ CABAL_OPTS: "-fembed_data_files -fbibutils"
+ GHC_OPTS: "-fhide-source-paths"
+ ARCH: "x64"
+ CHOCO_OPTS: ""
+ - OSARCH: "windows-i386"
+ GHC_VERSION: "8.6.1.1"
+ GHC_MINOR_VERSION: "8.6.1"
+ GHC: "C:\\ProgramData\\chocolatey\\lib\\ghc\\tools\\ghc-%GHC_MINOR_VERSION%\\bin\\ghc.exe"
+ CABAL_VERSION: "2.4.0.0"
+ CABAL_OPTS: "-flua_32bits -fembed_data_files -fbibutils"
+ GHC_OPTS: "-fhide-source-paths"
+ ARCH: "x86"
+ CHOCO_OPTS: "--x86"
skip_commits:
files:
@@ -30,50 +43,53 @@ matrix:
fast_finish: true
cache:
- - "%STACK_ROOT%"
- - "%WIXBIN%"
- # This is where stack install ghc by default, but we don't
- # cache it because it's too large:
- # - "c:\\Users\\appveyor\\AppData\\Local\\Programs\\stack"
+ - '%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 via stack
+
+# We don't do a normal C build, but build in test_script
build: off
install:
- - '"%WIXBIN%"\candle -? || choco install wixtoolset'
- - |
- %STACK% --version || curl -ostack.zip -L --insecure http://www.stackage.org/stack/%STACK_VERSION% && 7z e stack.zip -o"%STACK_ROOT%" stack.exe
+ - 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:
- # The ugly echo "" hack is to avoid complaints about 0 being an invalid file
- # descriptor
- - |
- %STACK% setup > nul
- %STACK% path
- echo "" | %STACK% clean
- echo "" | %STACK% install %STACK_BUILD_OPTS% pandoc pandoc-citeproc %STACK_FLAGS%
+ # 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:
- # .\ in the stack commandline seems to be .\windows\ (where the stack-appveyor.yaml is)
+ # 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-%STACK_VERSION%.zip" pandoc.exe pandoc-citeproc.exe MANUAL.html COPYING.rtf
+ - 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" -dVERSION=%VERSION% -dBINPATH=. *.wxs -out wixobj\
- "%WIXBIN%\\light" -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out "pandoc-%STACK_VERSION%.msi" wixobj\*.wixobj
+ "%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-%STACK_VERSION%.zip'
+ - path: 'windows\pandoc-%OSARCH%.zip'
name: exe
- - path: 'windows\pandoc-%STACK_VERSION%.msi'
+ - path: 'windows\pandoc-%OSARCH%.msi'
name: msi