Skip to content

Commit 156fd56

Browse files
committed
fix: rework build upload
1 parent 48217f6 commit 156fd56

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

.github/workflows/branchPR.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ jobs:
5151
env:
5252
VERSION: "${{ needs.generate-infos.outputs.version }}"
5353

54+
- name: extracht manifest infos
55+
id: manifest-infos
56+
run: |
57+
echo "filenames=$(cat ./build/package/manifest.json| jq -c '[.[].filename]')" >> "$GITHUB_OUTPUT"
58+
echo "paths=$(cat ./build/package/manifest.json| jq -c '[.[].path]')" >> "$GITHUB_OUTPUT"
59+
5460
- name: Setup UPX
5561
uses: crazy-max/ghaction-upx@v3
5662
with:
@@ -61,11 +67,11 @@ jobs:
6167
VERSION: "${{ needs.generate-infos.outputs.version }}"
6268

6369
- name: upload artifacts
64-
uses: actions/upload-artifact@v4
70+
uses: actions/upload-artifact@BToersche:upload-multiple-artifacts
6571
with:
66-
name: awesome-ci-binaries
67-
path: |
68-
build/package/awesome-ci_*
72+
name: ${{ steps.manifest-infos.outputs.filenames }}
73+
path: ${{ steps.manifest-infos.outputs.paths }}
74+
compression-level: 0
6975

7076
- name: (integration testing) test build Infos
7177
run: build/package/awesome-ci_${{ needs.generate-infos.outputs.version }}_linux-amd64 pr info -n ${{ github.event.pull_request.number }} -v > $GITHUB_STEP_SUMMARY

Makefile

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ PROJECT_PKG = github.com/fullstack-devops/awesome-ci
22
PKG_LIST = "github.com/fullstack-devops/awesome-ci/cmd/awesome-ci"
33
BUILD_DIR = ./build
44

5+
LIST_TARGET_ARCH ?= linux/amd64 linux/arm64 windows/amd64 windows/arm64 darwin/amd64 darwin/arm64
6+
LIST_TARGET_ARCH_COMP ?= linux/amd64 linux/arm64 windows/amd64
7+
58
LATEST_VERSION ?= "1.0.0"
69
VERSION ?=$(shell git describe --tags --exact-match 2>/dev/null || echo "dev-pr")
710
COMMIT_HASH ?= $(shell git rev-parse --short HEAD 2>/dev/null)
811
BUILD_DATE ?= $(shell date +%FT%T%z)
912

10-
1113
# remove debug info from the binary & make it smaller
1214
LDFLAGS += -s -w
1315
# inject build info
@@ -58,18 +60,34 @@ test/cover:
5860
## build: build the application
5961
.PHONY: build
6062
build:
61-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_linux-amd64 ./cmd/awesome-ci
62-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_linux-arm64 ./cmd/awesome-ci
63-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_windows-amd64.exe ./cmd/awesome-ci
64-
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_windows-arm64.exe ./cmd/awesome-ci
63+
@echo "[" > ${BUILD_DIR}/package/manifest.json
64+
@for TARGET in ${LIST_TARGET_ARCH}; do \
65+
GOOS=$$(echo $$TARGET | cut -d'/' -f1); \
66+
GOARCH=$$(echo $$TARGET | cut -d'/' -f2); \
67+
EXT=""; \
68+
if [ "$$GOOS" = "windows" ]; then EXT=".exe"; fi; \
69+
echo "Building for GOOS=$$GOOS GOARCH=$$GOARCH"; \
70+
FILENAME="awesome-ci_${VERSION}_$$GOOS-$$GOARCH$$EXT"; \
71+
CGO_ENABLED=0 GOOS=$$GOOS GOARCH=$$GOARCH go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/$$FILENAME ./cmd/awesome-ci; \
72+
if [ "$$TARGET" = "$$(echo ${LIST_TARGET_ARCH} | awk '{print $$NF}')" ]; then \
73+
echo "{\"filename\":\"$$FILENAME\", \"path\":\"${BUILD_DIR}/package/$$FILENAME\",\"goos\":\"$$GOOS\",\"goarch\":\"$$GOARCH\"}" >> ${BUILD_DIR}/package/manifest.json; \
74+
else \
75+
echo "{\"filename\":\"$$FILENAME\", \"path\":\"${BUILD_DIR}/package/$$FILENAME\",\"goos\":\"$$GOOS\",\"goarch\":\"$$GOARCH\"}," >> ${BUILD_DIR}/package/manifest.json; \
76+
fi; \
77+
done
78+
@echo "]" >> ${BUILD_DIR}/package/manifest.json
6579

6680
## upx: compress binaries
6781
.PHONY: upx
6882
upx:
69-
upx -5 ./build/package/awesome-ci_${VERSION}_linux-amd64
70-
upx -5 ./build/package/awesome-ci_${VERSION}_linux-arm64
71-
upx -5 ./build/package/awesome-ci_${VERSION}_windows-amd64.exe
72-
# upx --best ./build/package/awesome-ci_${VERSION}_windows-arm64.exe
83+
@for TARGET in ${LIST_TARGET_ARCH_COMP}; do \
84+
GOOS=$$(echo $$TARGET | cut -d'/' -f1); \
85+
GOARCH=$$(echo $$TARGET | cut -d'/' -f2); \
86+
EXT=""; \
87+
if [ "$$GOOS" = "windows" ]; then EXT=".exe"; fi; \
88+
echo "Compressing binary for GOOS=$$GOOS GOARCH=$$GOARCH"; \
89+
upx -5 ./build/package/awesome-ci_${VERSION}_$$GOOS-$$GOARCH$$EXT; \
90+
done
7391

7492
chglog:
7593
go install github.com/git-chglog/git-chglog/cmd/git-chglog@latest

0 commit comments

Comments
 (0)