10
10
jobs :
11
11
build :
12
12
runs-on : ubuntu-20.04
13
- name : Release
13
+ name : Build
14
+ strategy :
15
+ matrix :
16
+ arch : ["amd64", "arm-v7", "arm64", "ppc64le", "s390x"]
14
17
env :
15
18
OUTPUT_DIR : ${{ github.workspace }}/out
16
19
steps :
@@ -21,10 +24,33 @@ jobs:
21
24
run : |
22
25
mkdir ${OUTPUT_DIR}
23
26
RELEASE_TAG="${GITHUB_REF##*/}"
24
- TAR_FILE_NAME="stargz-snapshotter-${RELEASE_TAG}-linux-amd64.tar.gz"
27
+ ARCH_ID="${{ matrix.arch }}"
28
+ BUILD_ARGS=--build-arg=TARGETARCH=${ARCH_ID}
29
+ if [ "${ARCH_ID}" == "arm-v7" ] ; then
30
+ BUILD_ARGS="--build-arg=TARGETARCH=arm --build-arg=GOARM=7"
31
+ fi
32
+ TAR_FILE_NAME="stargz-snapshotter-${RELEASE_TAG}-linux-${ARCH_ID}.tar.gz"
25
33
SHA256SUM_FILE_NAME="${TAR_FILE_NAME}.sha256sum"
26
- docker build --target release-binaries -o - . | gzip > "${OUTPUT_DIR}/${TAR_FILE_NAME}"
34
+ docker build ${BUILD_ARGS} --target release-binaries -o - . | gzip > "${OUTPUT_DIR}/${TAR_FILE_NAME}"
27
35
( cd ${OUTPUT_DIR}; sha256sum ${TAR_FILE_NAME} ) > "${OUTPUT_DIR}/${SHA256SUM_FILE_NAME}"
36
+ - name : Save Binary
37
+ uses : actions/upload-artifact@v2
38
+ with :
39
+ name : builds-${{ matrix.arch }}
40
+ path : ${{ env.OUTPUT_DIR }}/*
41
+
42
+ release :
43
+ runs-on : ubuntu-20.04
44
+ name : Release
45
+ needs : [build]
46
+ env :
47
+ OUTPUT_DIR : ${{ github.workspace }}/builds
48
+ steps :
49
+ - uses : actions/checkout@v2
50
+ - name : Download Builds
51
+ uses : actions/download-artifact@v2
52
+ with :
53
+ path : ${{ env.OUTPUT_DIR }}
28
54
- name : Create Release
29
55
env :
30
56
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
36
62
(TBD)
37
63
EOF
38
64
ASSET_FLAGS=()
39
- for F in ${OUTPUT_DIR}/*; do ASSET_FLAGS+=("-a" "$F"); done
65
+ ls -al ${OUTPUT_DIR}/
66
+ for A in "amd64" "arm-v7" "arm64" "ppc64le" "s390x" ; do
67
+ for F in ${OUTPUT_DIR}/builds-${A}/* ; do
68
+ ASSET_FLAGS+=("-a" "$F")
69
+ done
70
+ done
40
71
hub release create "${ASSET_FLAGS[@]}" -F ${GITHUB_WORKSPACE}/release-note.txt --draft "${RELEASE_TAG}"
0 commit comments