# https://www.appveyor.com/docs/appveyor-yml # https://www.appveyor.com/docs/build-configuration # https://www.appveyor.com/docs/branches # https://www.appveyor.com/docs/how-to/filtering-commits # To ignore a commit: [skip ci], [ci skip] or [skip appveyor] in the commit message #build: off platform: x64 clone_folder: c:\pr # shorter file paths were a known workaround in the past environment: global: STACK_ROOT: c:\sr APPVEYOR_SAVE_CACHE_ON_ERROR: true APPVEYOR_CACHE_ENTRY_ZIP_ARGS: "-t7z -m0=lzma -mx=9" # smaller (& slower) cache # Appveyor's free plan allows a 1G cache. https://www.appveyor.com/docs/build-cache # The cache is saved only on the current vm instance, so when appveyor picks a different vm instance it's like starting again with no cache. # To wipe the cache (on the current instance ? all instances ?), eg before a GHC upgrade: # browse ui, open inspector, $.ajax({url: 'https://ci.appveyor.com/api/projects/simonmichael/hledger/buildcache',type: 'DELETE'}) # or curl -s -H "Authorization: Bearer $APPVEYOR_TOKEN" -H "Content-Type: application/json" -X DELETE https://ci.appveyor.com/api/projects/simonmichael/hledger/buildcache # To skip caching: # APPVEYOR_CACHE_SKIP_RESTORE - set to true to disable cache restore # APPVEYOR_CACHE_SKIP_SAVE - set to true to disable cache update # conditionally: #init: #- ps: IF ($env:APPVEYOR_REPO_BRANCH -eq "develop") {$env:APPVEYOR_CACHE_SKIP_SAVE = "true"} # To declare cache dependency on specific files add "-> FILEPATTERN below. Appveyor will checksum # only those files for cache invalidation, quicker than checksumming all cached content. cache: - "%LOCALAPPDATA%\\Programs\\stack" - C:\Users\appveyor\AppData\Roaming\local\bin - C:\sr - .stack-work - hledger-lib\.stack-work -> hledger-lib\** - hledger\.stack-work -> hledger\** - hledger-web\.stack-work -> hledger-web\** install: # temporary, troubleshooting https://github.com/commercialhaskell/stack/issues/4125 #- dir # install latest stack release # - curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64 # - 7z x stack.zip stack.exe # - copy stack.exe stack-release.exe # - stack --version # install latest stack 4125-cabal-style-build-tools branch # - set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH% # - stack-release upgrade --git --git-branch 4125-cabal-style-build-tools # - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe C:\Users\appveyor\AppData\Roaming\local\bin\stack-4125.exe # - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe # install latest stack master - set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH% # show the stack-installed binares that were restored from cache, can vary by instance - dir C:\Users\appveyor\AppData\Roaming\local\bin # - stack-release upgrade --git #- copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe C:\Users\appveyor\AppData\Roaming\local\bin\stack-master.exe # - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe - stack --version #- dir # # install ghc #- stack setup # use ghc 8.2 to avoid a hledger-web -> network/stack build issue on windows, # network 2.7.0.1 should work around it when released # https://github.com/haskell/network/issues/313 # https://github.com/commercialhaskell/stack/issues/3944 - stack --stack-yaml=stack-ghc8.2.yaml setup #- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH% #- stack install shelltestrunner # -j1 was a temporary workaround for https://github.com/simonmichael/hledger/issues/424, https://github.com/commercialhaskell/stack/issues/2617, should be unnecessary with ghc 8.2.1+ # --bench didn't run on windows, not tried recently # hledger-ui's vty dep isn't available on windows # hledger-api not tried recently build_script: #- stack build --test --copy-bins --local-bin-path=. hledger hledger-web - stack build --test --copy-bins --local-bin-path=. hledger hledger-web --stack-yaml=stack-ghc8.2.yaml - 7z a -tzip hledger.zip hledger.exe hledger-web.exe #- hledger-install/hledger-install.sh #- make stacktest #test_script: #- stack exec -- shelltest --execdir -a -j16 tests # COLUMNS=80 # functional tests - these don't run well on windows currently artifacts: - path: hledger.zip branches: only: - master # master is set as default branch in UI, and built nightly by cron - /^[0-9.]+$/ # release branches will be build on each push (would prefer on tag) ## overriding common configuration: #for: # ## settings specific to master branch ## master is set as default branch in UI, and built nightly by cron #- # branches: # only: # - master # ## settings specific to release branches ## release branches are built on tag push #- # branches: # only: # - /^[0-9.]+$/ # on: # https://ci.appveyor.com/tools/validate-yaml: Invalid setting or section: on # appveyor_repo_tag: true # deployment stuff # https://silky.github.io/posts/2016-01-05-build-windows-haskell-app-with-stack-and-appveyor.html # #- cmd: for /f %%i in (".\hledger --version") do set HLEDGER_VERSION=%%i #- cmd: for /f %%i in (".\hledger-web --version") do set HLEDGER_WEB_VERSION=%%i #- cmd: for /f %%i in (".\hledger-api --version") do set HLEDGER_API_VERSION=%%i # #deploy: # - provider: GitHub # tag: "hledger-$(HLEDGER_VERSION)" # release: "Release hledger-$(HLEDGER_VERSION)" # auth_token: # secure: #FZXhwa1ucQwyFtswv/XNUJkclAxoz4YGGu69dSOEEkwG7Rlh/Gho66SJtOUJ57kN # artifact: hledger.exe # on: # branch: master