ci: update all to preserve executable permission when zipping

This commit is contained in:
Simon Michael 2022-07-26 22:49:47 +01:00
parent 7a8f2c1c8a
commit 863983f0ff
5 changed files with 30 additions and 32 deletions

View File

@ -20,14 +20,13 @@ jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- - name: Set up QEMU
name: Set up QEMU
uses: docker/setup-qemu-action@v1 uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
-
name: Build and push - name: Build and push
id: docker_build id: docker_build
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@ -36,17 +35,16 @@ jobs:
tags: hledger-linux-static-arm32v7:latest tags: hledger-linux-static-arm32v7:latest
load: true load: true
- name: Extract binaries from docker - name: Gather binaries from docker
run: | run: |
# Create temporary container from it
container_id=$(docker create hledger-linux-static-arm32v7:latest) container_id=$(docker create hledger-linux-static-arm32v7:latest)
# Copy stuff from temp container docker cp $container_id:/root/hledger tmp
docker cp $container_id:/root/hledger /tmp/hledger-linux-static-arm32v7
# Delete temp container
docker rm -v $container_id docker rm -v $container_id
cd tmp
zip hledger-linux-static-arm32v7.zip hledger hledger-ui hledger-web
- name: Upload binary - name: Upload binaries artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: hledger-linux-static-arm32v7 name: hledger-linux-static-arm32v7
path: /tmp/hledger-linux-static-arm32v7 path: tmp/hledger-linux-static-arm32v7.zip

View File

@ -54,18 +54,20 @@ jobs:
cabal build --enable-executable-static hledger-ui || echo "ERROR: building hledger failed" cabal build --enable-executable-static hledger-ui || echo "ERROR: building hledger failed"
cabal build --enable-executable-static hledger-web || echo "ERROR: building hledger-web failed" cabal build --enable-executable-static hledger-web || echo "ERROR: building hledger-web failed"
- name: Extract and strip binaries - name: Gather binaries
run: | run: |
mkdir /tmp/hledger mkdir tmp
cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-*/x/hledger/build/hledger/hledger /tmp/hledger/hledger cd tmp
cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-ui-*/x/hledger-ui/build/hledger-ui/hledger-ui /tmp/hledger/hledger-ui cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-*/x/hledger/build/hledger/hledger .
cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-web-*/x/hledger-web/build/hledger-web/hledger-web /tmp/hledger/hledger-web cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-ui-*/x/hledger-ui/build/hledger-ui/hledger-ui .
strip /tmp/hledger/hledger cp dist-newstyle/build/x86_64-linux/ghc-*/hledger-web-*/x/hledger-web/build/hledger-web/hledger-web .
strip /tmp/hledger/hledger-ui strip hledger
strip /tmp/hledger/hledger-web strip hledger-ui
strip hledger-web
zip hledger-linux-x64.zip hledger hledger-ui hledger-web
- name: Upload binaries - name: Upload binaries
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: hledger-linux-x64 name: hledger-linux-x64
path: /tmp/hledger path: tmp/hledger-linux-x64.zip

View File

@ -159,7 +159,7 @@ jobs:
# artifacts: # artifacts:
- name: Gather executables - name: Gather binaries
run: | run: |
mkdir tmp mkdir tmp
cd tmp cd tmp
@ -173,7 +173,7 @@ jobs:
if: env.CONTINUE if: env.CONTINUE
# XXX intermittent upload failures # XXX intermittent upload failures
- name: Upload executables artifact - name: Upload binaries artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: hledger-mac-x64 name: hledger-mac-x64

View File

@ -162,22 +162,21 @@ jobs:
# artifacts: # artifacts:
- name: Gather executables - name: Gather binaries
run: | run: |
mkdir tmp mkdir tmp
cd tmp cd tmp
mkdir hledger-windows-x64
cd hledger-windows-x64
cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger.exe . cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger.exe .
cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger-web.exe . cp /C/Users/runneradmin/AppData/Roaming/local/bin/hledger-web.exe .
strip hledger.exe strip hledger.exe
strip hledger-web.exe strip hledger-web.exe
zip hledger-windows-x64.zip hledger.exe hledger-web.exe
if: env.CONTINUE if: env.CONTINUE
# XXX intermittent upload failures # XXX intermittent upload failures
- name: Create executables artifact - name: Create binaries artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: hledger-windows-x64 name: hledger-windows-x64
path: tmp/hledger-windows-x64 path: tmp/hledger-windows-x64.zip
if: env.CONTINUE if: env.CONTINUE

View File

@ -263,7 +263,7 @@ jobs:
# --no-print-missing-docs is 600% quieter # --no-print-missing-docs is 600% quieter
if: env.CONTINUE if: env.CONTINUE
- name: Gather executables - name: Gather binaries
id: exes id: exes
run: | run: |
mkdir tmp mkdir tmp
@ -275,14 +275,13 @@ jobs:
strip hledger-ui strip hledger-ui
strip hledger-web strip hledger-web
zip hledger-linux-x64.zip hledger hledger-ui hledger-web zip hledger-linux-x64.zip hledger hledger-ui hledger-web
# ^ create zip file ourselves, upload-artifact's zipping drops executable permissions
if: env.CONTINUE if: env.CONTINUE
# how to set a context variable, and an attempt to make a nice artifact version suffix: # how to set a context variable, and an attempt to make a nice artifact version suffix:
# echo "::set-output name=version::$(git branch --show-current | sed 's/-.*//')-$(git rev-parse --short HEAD)" # echo "::set-output name=version::$(git branch --show-current | sed 's/-.*//')-$(git rev-parse --short HEAD)"
# XXX intermittent upload failures # XXX intermittent upload failures
- name: Upload executables artifact - name: Upload binaries artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: hledger-linux-x64 name: hledger-linux-x64