;doc: changelog/relnotes/announcements: note apple ARM binaries #124
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Runs on any push to ci-windows. | |
# Produces optimised windows binaries, | |
# using the default stack.yaml's GHC version. | |
# Currently runs no tests. | |
name: binaries-windows-x64 | |
on: | |
# Avoid, because these run in all forks also. | |
# schedule: | |
# - cron: "0 07 * * 0" # sunday midnight pacific | |
push: | |
branches: [ binaries-windows-x64, binaries ] | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
# have to fetch everything for git describe for --version | |
with: | |
fetch-depth: 0 | |
- name: Confirm all remaining steps should run | |
run: echo "CONTINUE=true" >> $GITHUB_ENV | |
# things to be cached/restored: | |
- name: Uncache stack global package db | |
id: stack-global-package-db | |
uses: actions/cache@v3 | |
with: | |
path: C:\Users\runneradmin\AppData\Roaming\stack\ | |
key: ${{ runner.os }}-appdata-roaming-stack-${{ hashFiles('**.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-appdata-roaming-stack | |
if: env.CONTINUE | |
- name: Uncache stack programs dir # ghc, ghc-included packages and their haddocks, mingw, msys2 | |
id: stack-programs-dir | |
uses: actions/cache@v3 | |
with: | |
path: C:\Users\runneradmin\AppData\Local\Programs\stack\ | |
# which files signal a change in stack's global db ? | |
# **.yaml includes */package.yaml and stack.yaml* (too many), and hopefully no other changing yamls | |
key: ${{ runner.os }}-appdata-local-programs-stack-${{ hashFiles('**.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-appdata-local-programs-stack | |
if: env.CONTINUE | |
- name: Uncache .stack-work | |
uses: actions/cache@v3 | |
with: | |
path: .stack-work | |
key: ${{ runner.os }}-stack-work-${{ hashFiles('**.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-stack-work | |
if: env.CONTINUE | |
- name: Uncache hledger-lib/.stack-work | |
uses: actions/cache@v3 | |
with: | |
path: hledger-lib/.stack-work | |
key: ${{ runner.os }}-hledger-lib-stack-work-${{ hashFiles('hledger-lib/package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-hledger-lib-stack-work | |
if: env.CONTINUE | |
- name: Uncache hledger/.stack-work | |
uses: actions/cache@v3 | |
with: | |
path: hledger/.stack-work | |
key: ${{ runner.os }}-hledger-stack-work-${{ hashFiles('hledger/package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-hledger-stack-work | |
if: env.CONTINUE | |
- name: Uncache hledger-ui/.stack-work | |
uses: actions/cache@v3 | |
with: | |
path: hledger-ui/.stack-work | |
key: ${{ runner.os }}-hledger-ui-stack-work-${{ hashFiles('hledger-ui/package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-hledger-ui-stack-work | |
if: env.CONTINUE | |
- name: Uncache hledger-web/.stack-work | |
uses: actions/cache@v3 | |
with: | |
path: hledger-web/.stack-work | |
key: ${{ runner.os }}-hledger-web-stack-work-${{ hashFiles('hledger-web/package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-hledger-web-stack-work | |
if: env.CONTINUE | |
# - name: showStuff | |
# run: | | |
# ls -lFRa /c/users/runneradmin/appdata/roaming/stack | |
# ls -lFRa /c/users/runneradmin/appdata/local/programs/stack | |
# actions: | |
# - name: Add stack local bin to PATH | |
# run: echo "::add-path::C:\Users\runneradmin\AppData\Roaming\stack\local\bin" | |
# - name: Install stack | |
# run: | | |
# mkdir -p ~/.local/bin | |
# export PATH=~/.local/bin:$PATH | |
# if [[ ! -x ~/.local/bin/stack ]]; then curl -sL https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'; chmod a+x ~/.local/bin/stack; fi | |
# $stack --version | |
# env: | |
# stack: ${{ matrix.plan.stack }} | |
- name: Install stack | |
#if: steps.stack-programs-dir.outputs.cache-hit != 'true' | |
# this step is needed to get stack.exe into PATH, for now | |
run: | | |
curl -sL https://get.haskellstack.org/stable/windows-x86_64.zip -o stack.zip | |
7z x stack.zip stack.exe | |
which stack | |
stack --version | |
which ./stack | |
./stack --version | |
if: env.CONTINUE | |
- name: Install GHC | |
# if: steps.stack-programs-dir.outputs.cache-hit != 'true' | |
# set PATH=C:\Users\runneradmin\AppData\Local\Programs\stack\local\bin;%PATH% | |
run: | | |
./stack --no-terminal setup --install-ghc | |
if: env.CONTINUE | |
# - name: Install shelltestrunner | |
## - export PATH=~/.local/bin:$PATH | |
# - if [[ ! -x ~/.local/bin/shelltest ]]; then stack install shelltestrunner-1.10; fi | |
# - shelltest --version | |
- name: Install haskell deps | |
run: | | |
./stack --no-terminal build --only-dependencies --dry-run | |
./stack --no-terminal build --only-dependencies | |
if: env.CONTINUE | |
# use whichever GHC is in default stack.yaml | |
- name: Build all hledger modules warning free, optimised and minimised | |
run: | | |
./stack --no-terminal install --force-dirty --ghc-options=-fforce-recomp --ghc-options=-Werror | |
# --ghc-options=-split-sections doesn't work on windows, "too many sections" | |
# --pedantic | |
if: env.CONTINUE | |
# run hledger-lib/hledger functional tests, skipping the ones for addons | |
## - export PATH=~/.local/bin:$PATH | |
#- COLUMNS=80 stack exec -- shelltest --execdir -j16 hledger/test -x /_ -x /addons -x ledger-compat/ledger-baseline -x ledger-compat/ledger-regress -x ledger-compat/ledger-collected | |
# artifacts: | |
- name: Gather binaries | |
run: | | |
mkdir tmp | |
cd tmp | |
cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger.exe . | |
cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger-ui.exe . | |
cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger-web.exe . | |
strip hledger.exe | |
strip hledger-ui.exe | |
strip hledger-web.exe | |
if: env.CONTINUE | |
- name: Create binaries artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hledger-windows-x64 | |
path: | | |
tmp/hledger.exe | |
tmp/hledger-ui.exe | |
tmp/hledger-web.exe | |
if: env.CONTINUE |