fix(ci): Fix multi-arch build problem

Added build linux/arm64 binary to default ci
This commit is contained in:
Yuxing Deng 2023-11-15 16:23:33 +08:00
parent 4dc1acb1f2
commit 2b39db9f07
2 changed files with 48 additions and 33 deletions

View File

@ -27,6 +27,8 @@ steps:
image: rancher/dapper:v0.6.0 image: rancher/dapper:v0.6.0
commands: commands:
- dapper ci - dapper ci
environment:
CROSS: "${DRONE_BUILD_EVENT}"
privileged: true privileged: true
volumes: volumes:
- name: docker - name: docker
@ -120,7 +122,7 @@ steps:
- dapper ci - dapper ci
privileged: true privileged: true
environment: environment:
CROSS: 1 CROSS: "${DRONE_BUILD_EVENT}"
volumes: volumes:
- name: docker - name: docker
path: /var/run/docker.sock path: /var/run/docker.sock

View File

@ -14,40 +14,53 @@ LD_INJECT_VALUES="-X github.com/rancher/steve/pkg/version.Version=$VERSION
pushd $GIT_SOURCE pushd $GIT_SOURCE
if [ -n "$CROSS" ]; then case "$CROSS" in
for ARCH in ${OS_ARCH_ARG_LINUX}; do "push")
OUTPUT_BIN="bin/kube-explorer-linux-$ARCH" for ARCH in ${OS_ARCH_ARG_LINUX}; do
echo "Building binary for linux/$ARCH..." OUTPUT_BIN="bin/kube-explorer-linux-$ARCH"
GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \ echo "Building binary for linux/$ARCH..."
-ldflags \ GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \
"$LD_INJECT_VALUES $LINKFLAGS" \ -ldflags \
-o ${OUTPUT_BIN} "$LD_INJECT_VALUES $LINKFLAGS" \
done -o ${OUTPUT_BIN}
done
;;
"tag")
for ARCH in ${OS_ARCH_ARG_LINUX}; do
OUTPUT_BIN="bin/kube-explorer-linux-$ARCH"
echo "Building binary for linux/$ARCH..."
GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \
-ldflags \
"$LD_INJECT_VALUES $LINKFLAGS" \
-o ${OUTPUT_BIN}
done
for ARCH in ${OS_ARCH_ARG_DARWIN}; do for ARCH in ${OS_ARCH_ARG_DARWIN}; do
OUTPUT_BIN="bin/kube-explorer-darwin-$ARCH" OUTPUT_BIN="bin/kube-explorer-darwin-$ARCH"
echo "Building binary for darwin/$ARCH..." echo "Building binary for darwin/$ARCH..."
GOARCH=$ARCH GOOS=darwin CGO_ENABLED=0 go build -tags embed \ GOARCH=$ARCH GOOS=darwin CGO_ENABLED=0 go build -tags embed \
-ldflags \ -ldflags \
"$LD_INJECT_VALUES" \ "$LD_INJECT_VALUES" \
-o ${OUTPUT_BIN} -o ${OUTPUT_BIN}
done done
for ARCH in ${OS_ARCH_ARG_WINDOWS}; do for ARCH in ${OS_ARCH_ARG_WINDOWS}; do
OUTPUT_BIN="bin/kube-explorer-windows-$ARCH.exe" OUTPUT_BIN="bin/kube-explorer-windows-$ARCH.exe"
echo "Building binary for windows/$ARCH..." echo "Building binary for windows/$ARCH..."
GOARCH=$ARCH GOOS=windows CGO_ENABLED=0 go build -tags embed \ GOARCH=$ARCH GOOS=windows CGO_ENABLED=0 go build -tags embed \
-ldflags \ -ldflags \
"$LD_INJECT_VALUES" \ "$LD_INJECT_VALUES" \
-o ${OUTPUT_BIN} -o ${OUTPUT_BIN}
done done
else ;;
# only build one for current platform *)
CGO_ENABLED=0 go build -tags embed \ # only build one for current platform
-ldflags \ CGO_ENABLED=0 go build -tags embed \
"$LD_INJECT_VALUES $LINKFLAGS" \ -ldflags \
-o "bin/kube-explorer-$(uname | tr '[:upper:]' '[:lower:]')-${ARCH}" "$LD_INJECT_VALUES $LINKFLAGS" \
fi -o "bin/kube-explorer-$(uname | tr '[:upper:]' '[:lower:]')-${ARCH}"
;;
esac
mkdir -p $DAPPER_SOURCE/bin mkdir -p $DAPPER_SOURCE/bin