forked from simonmichael/hledger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.appveyor.yml
132 lines (117 loc) · 5.09 KB
/
.appveyor.yml
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# 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:
# install latest stack release
- curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
- 7z x stack.zip stack.exe
- stack --version
# other stack versions eg for the latest workarounds:
#
# install a stack prerelease
#- curl -skLO https://github.com/commercialhaskell/stack/releases/download/v1.9.0.1/stack-1.9.0.1-windows-x86_64.tar.gz
#- 7z x stack-1.9.0.1-windows-x86_64.tar.gz -so | 7z e -si -ttar stack-1.9.0.1-windows-x86_64/stack.exe -aoa
#- 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
# install ghc
- stack setup
#- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
#- stack install shelltestrunner
# --bench failed 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
# https://sevenzip.osdn.jp/chm/cmdline
- 7z a hledger.zip hledger.exe hledger-web.exe
# or use hledger-install ?
#- hledger-install/hledger-install.sh
#- make stacktest
# functional tests - these don't run well on windows currently
#test_script:
#- stack exec -- shelltest --execdir -a -j16 tests # COLUMNS=80
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