Skip to content

Commit 3d4f3a2

Browse files
authored
fix(CI): build arm64 artifacts (#26807)
1 parent 95e86be commit 3d4f3a2

File tree

2 files changed

+54
-29
lines changed

2 files changed

+54
-29
lines changed

.circleci/config.yml

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,42 +57,62 @@ jobs:
5757
- run:
5858
name: Build binaries
5959
command: |
60-
export CC="$(xcc linux x86_64)"
61-
export CGO_ENABLED=1
60+
mkdir -p ./bins/linux-amd64 \
61+
./bins/linux-arm64 \
62+
./artifacts
63+
64+
build() {
65+
for binary in \
66+
influx \
67+
influx_inspect \
68+
influxd
69+
do
70+
go build \
71+
-tags "netgo,osusergo,static_build" \
72+
-buildmode=pie \
73+
-ldflags="-s
74+
-X \"main.version=${VERSION}\"
75+
-X \"main.branch=${CIRCLE_BRANCH}\"
76+
-X \"main.commit=${CIRCLE_SHA1}\"
77+
-linkmode=external
78+
-extld=${CC}
79+
-extldflags \"-fno-PIC -static-pie -Wl,-z,stack-size=8388608\"" \
80+
-o "bins/${GOOS}-${GOARCH}/${binary}" \
81+
"github.com/influxdata/influxdb/cmd/${binary}"
82+
done
83+
}
84+
85+
archive() {
86+
target="artifacts/influxdb_bin_${GOOS}_${GOARCH}-${CIRCLE_SHA1}.tar.gz"
87+
tar -czf "${target}" -C "bins/${GOOS}-${GOARCH}" \
88+
influx \
89+
influx_inspect \
90+
influxd
91+
md5sum "${target}" > "${target}.md5"
92+
sha256sum "${target}" > "${target}.sha256"
93+
}
6294
6395
# linux amd64 (static build)
64-
export GOOS=linux
96+
export CC="$(xcc linux x86_64)"
97+
export CGO_ENABLED=1
6598
export GOARCH=amd64
66-
for cmd in github.com/influxdata/influxdb/cmd/{influxd,influx,influx_inspect}
67-
do
68-
go build \
69-
-tags "netgo,osusergo,static_build" \
70-
-buildmode=pie \
71-
-ldflags="-s
72-
-X \"main.version=${VERSION}\"
73-
-X \"main.branch=${CIRCLE_BRANCH}\"
74-
-X \"main.commit=${CIRCLE_SHA1}\"
75-
-linkmode=external
76-
-extld=${CC}
77-
-extldflags \"-fno-PIC -static-pie -Wl,-z,stack-size=8388608\"" \
78-
${cmd}
79-
done
80-
81-
mkdir -p ./bins
99+
export GOOS=linux
100+
build
101+
archive
82102
83-
target="bins/influxdb_bin_${GOOS}_${GOARCH}-${CIRCLE_SHA1}.tar.gz"
84-
tar -czf "${target}" \
85-
influx \
86-
influx_inspect \
87-
influxd
88-
md5sum "${target}" > "${target}.md5"
89-
sha256sum "${target}" > "${target}.sha256"
103+
# linux arm64 (static build)
104+
export CC="$(xcc linux aarch64)"
105+
export CGO_ENABLED=1
106+
export GOARCH=arm64
107+
export GOOS=linux
108+
build
109+
archive
90110
- store_artifacts:
91-
path: bins/
111+
path: artifacts/
92112
- persist_to_workspace:
93113
root: .
94114
paths:
95-
- bins
115+
- artifacts
96116
- save_cache:
97117
key: influxdb-cache-v1-{{ checksum "go.mod" }}
98118
paths:

.circleci/packages/config.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@ version:
77
value: '1.x-{{env.CIRCLE_SHA1[:8]}}'
88

99
sources:
10-
- binary: /tmp/workspace/bins/influxdb_bin_linux_amd64-*.tar.gz
10+
- binary: /tmp/workspace/artifacts/influxdb_bin_linux_amd64-*.tar.gz
1111
target: packages/
1212
arch: amd64
1313
plat: linux
1414

15+
- binary: /tmp/workspace/artifacts/influxdb_bin_linux_arm64-*.tar.gz
16+
target: packages/
17+
arch: arm64
18+
plat: linux
19+
1520
packages:
1621
- name: influxdb
1722
description: Distributed time-series database.

0 commit comments

Comments
 (0)