104 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # 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:\sr
 | |
| - .stack-work
 | |
| - hledger-lib\.stack-work -> hledger-lib\**
 | |
| - hledger\.stack-work     -> hledger\**
 | |
| - hledger-web\.stack-work -> hledger-web\**
 | |
| 
 | |
| install:
 | |
| - curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
 | |
| - 7z x stack.zip stack.exe
 | |
| # install ghc
 | |
| # 8.2 for hledger-web -> network, https://github.com/haskell/network/issues/313
 | |
| - stack --stack-yaml=stack-ghc8.2.yaml setup
 | |
| # 20180530 no happy today; guess we must ensure it
 | |
| - stack install happy
 | |
| #- 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 --stack-yaml=stack-ghc8.2.yaml build --test --copy-bins --local-bin-path=. hledger hledger-web
 | |
| - 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
 |