@@ -34,41 +34,56 @@ jobs:
3434 set -euo pipefail
3535 set -x
3636
37- go get github.com/mitchellh/gox
38- sudo apt-get install -y upx
37+ sudo apt- get update
38+ sudo apt-get install -y upx file curl
3939
4040 export CGO_ENABLED=0
41-
4241 export GIT_COMMIT=$(git rev-list -1 HEAD)
43-
44- export ldflags="-X github.com/cdk-team/CDK/pkg/cli.GitCommit=$GIT_COMMIT"
45- gox -parallel 5 -osarch="darwin/amd64 linux/386 linux/amd64 linux/arm linux/arm64" -ldflags="-s -w $ldflags " -output="bin/{{.Dir}}_{{.OS}}_{{.Arch}}" ./cmd/cdk/
46- gox -parallel 5 -osarch="linux/386 linux/amd64 linux/arm64" -ldflags="-s -w $ldflags " -tags="thin" -output="bin/{{.Dir}}_{{.OS}}_{{.Arch}}_thin" ./cmd/cdk/
47-
48- # cdk_linux_386 cdk_linux_amd64 cdk_linux_arm cdk_linux_arm64
49- cp bin/cdk_linux_amd64 bin/cdk_linux_amd64_upx
50- upx bin/cdk_linux_amd64_upx
51-
52- cp bin/cdk_linux_386 bin/cdk_linux_386_upx
53- upx bin/cdk_linux_386_upx
54-
55- cp bin/cdk_linux_amd64_thin bin/cdk_linux_amd64_thin_upx
56- upx bin/cdk_linux_amd64_thin_upx
57-
58- cp bin/cdk_linux_386_thin bin/cdk_linux_386_thin_upx
59- upx bin/cdk_linux_386_thin_upx
42+ export ldflags="-s -w -extldflags \"-static\" -X github.com/cdk-team/CDK/pkg/cli.GitCommit=$GIT_COMMIT"
43+
44+ mkdir -p bin
45+
46+ echo "Building standard versions..."
47+ GOOS=darwin GOARCH=amd64 go build -ldflags="$ldflags" -o bin/cdk_darwin_amd64 ./cmd/cdk/ || echo "Darwin build failed"
48+ GOOS=linux GOARCH=386 go build -ldflags="$ldflags" -o bin/cdk_linux_386 ./cmd/cdk/
49+ GOOS=linux GOARCH=amd64 go build -ldflags="$ldflags" -o bin/cdk_linux_amd64 ./cmd/cdk/
50+ GOOS=linux GOARCH=arm go build -ldflags="$ldflags" -o bin/cdk_linux_arm ./cmd/cdk/
51+ GOOS=linux GOARCH=arm64 go build -ldflags="$ldflags" -o bin/cdk_linux_arm64 ./cmd/cdk/
52+
53+ echo "Building thin versions..."
54+ GOOS=linux GOARCH=386 go build -ldflags="$ldflags" -tags="thin" -o bin/cdk_linux_386_thin ./cmd/cdk/
55+ GOOS=linux GOARCH=amd64 go build -ldflags="$ldflags" -tags="thin" -o bin/cdk_linux_amd64_thin ./cmd/cdk/
56+ GOOS=linux GOARCH=arm64 go build -ldflags="$ldflags" -tags="thin" -o bin/cdk_linux_arm64_thin ./cmd/cdk/
57+
58+ echo "Creating UPX compressed versions..."
59+ for file in bin/cdk_linux_{386,amd64}{,_thin}; do
60+ if [ -f "$file" ]; then
61+ cp "$file" "${file}_upx"
62+ upx "${file}_upx" || echo "UPX compression failed for ${file}"
63+ fi
64+ done
6065
6166 UPLOAD_URL=$(echo -n $UPLOAD_URL | sed s/\{.*//g)
6267
63- for FILE in bin/*
64- do
65- echo "Uploading ${FILE}";
66- curl \
67- -H "${API_HEADER}" \
68- -H "${AUTH_HEADER}" \
69- -H "Content-Type: $(file -b --mime-type ${FILE})" \
70- --data-binary "@${FILE}" \
71- "${UPLOAD_URL}?name=$(basename ${FILE})";
68+ echo "Uploading files..."
69+
70+ for FILE in bin/*; do
71+ if [ -f "$FILE" ]; then
72+ echo "Uploading ${FILE}"
73+ MIME_TYPE=$(file -b --mime-type "${FILE}")
74+ RESPONSE=$(curl -w "%{http_code}" \
75+ -H "${API_HEADER}" \
76+ -H "${AUTH_HEADER}" \
77+ -H "Content-Type: ${MIME_TYPE}" \
78+ --data-binary "@${FILE}" \
79+ "${UPLOAD_URL}?name=$(basename ${FILE})" \
80+ -o /dev/null)
81+
82+ if [ "$RESPONSE" -ne 201 ]; then
83+ echo "Error uploading ${FILE}, status code: ${RESPONSE}"
84+ fi
85+ fi
7286 done
7387
7488 bash ".github/workflows/changelog.sh"
89+
0 commit comments