diff options
Diffstat (limited to 'appveyor.yml')
-rw-r--r-- | appveyor.yml | 80 |
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 |