mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 03:42:25 +03:00
61e36173b4
[ci skip]
143 lines
5.7 KiB
YAML
143 lines
5.7 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:\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
|
|
- stack --version
|
|
|
|
# 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
|
|
|
|
#- dir
|
|
|
|
#
|
|
# install ghc
|
|
- stack setup
|
|
# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue
|
|
# https://github.com/haskell/network/issues/313
|
|
# https://github.com/commercialhaskell/stack/issues/3944
|
|
# network 2.7.0.1 is supposed to work around it
|
|
#- stack setup --stack-yaml=stack-ghc8.2.yaml
|
|
|
|
#- 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
|
|
# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue
|
|
#- 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
|