2020 - name : Check out code
2121 uses : actions/checkout@v4
2222
23+ - name : Set up QEMU
24+ uses : docker/setup-qemu-action@v3
25+
26+ - name : Set up Docker Buildx
27+ uses : docker/setup-buildx-action@v3
28+
2329 - name : Cache
2430 uses : actions/cache@v4
2531 with :
2834 restore-keys : |
2935 ${{ runner.os }}-go-
3036
31- - name : Build container images
32- run : make container
33-
3437 - name : Log into registry
3538 uses : docker/login-action@v3
3639 with :
@@ -41,22 +44,57 @@ jobs:
4144 - name : Push main
4245 if : github.ref == 'refs/heads/main'
4346 run : |
47+ REV=$(git describe --long --tags --match='v*' --dirty 2>/dev/null || git rev-list -n1 HEAD)
48+ GIT_COMMIT=$(git rev-parse HEAD)
49+ BUILD_DATE=$(date -u -Iseconds)
50+ PKG=github.com/cloudstack/cloudstack-csi-driver
51+ LDFLAGS="-s -w -X ${PKG}/pkg/driver.driverVersion=${REV} -X ${PKG}/pkg/driver.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/driver.buildDate=${BUILD_DATE}"
52+
4453 for img in $IMAGES; do
45- docker tag ${img} ${REGISTRY_NAME}/${img}:main
46- docker push ${REGISTRY_NAME}/${img}:main
54+ docker buildx build \
55+ --platform linux/amd64,linux/arm64 \
56+ --file ./cmd/${img}/Dockerfile \
57+ --build-arg LDFLAGS="${LDFLAGS}" \
58+ --tag ${REGISTRY_NAME}/${img}:main \
59+ --label org.opencontainers.image.revision=${GIT_COMMIT} \
60+ --push \
61+ .
4762 done
4863
4964 - name : Push tagged release
5065 if : startsWith(github.ref, 'refs/tags/v')
5166 run : |
5267 # Strip prefix from version
5368 VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,' | sed -e 's/^v//')
69+ REV=$(git describe --long --tags --match='v*' --dirty 2>/dev/null || git rev-list -n1 HEAD)
70+ GIT_COMMIT=$(git rev-parse HEAD)
71+ BUILD_DATE=$(date -u -Iseconds)
72+ PKG=github.com/cloudstack/cloudstack-csi-driver
73+ LDFLAGS="-s -w -X ${PKG}/pkg/driver.driverVersion=${REV} -X ${PKG}/pkg/driver.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/driver.buildDate=${BUILD_DATE}"
5474
5575 for img in $IMAGES; do
56- docker tag ${img} ${REGISTRY_NAME}/${img}:${VERSION}
57- docker push ${REGISTRY_NAME}/${img}:${VERSION}
76+ docker buildx build \
77+ --platform linux/amd64,linux/arm64 \
78+ --file ./cmd/${img}/Dockerfile \
79+ --build-arg LDFLAGS="${LDFLAGS}" \
80+ --tag ${REGISTRY_NAME}/${img}:${VERSION} \
81+ --label org.opencontainers.image.revision=${GIT_COMMIT} \
82+ --push \
83+ .
5884 done
5985
86+ - name : Build syncer binary for upload
87+ if : startsWith(github.ref, 'refs/tags/v')
88+ run : |
89+ REV=$(git describe --long --tags --match='v*' --dirty 2>/dev/null || git rev-list -n1 HEAD)
90+ GIT_COMMIT=$(git rev-parse HEAD)
91+ BUILD_DATE=$(date -u -Iseconds)
92+ PKG=github.com/cloudstack/cloudstack-csi-driver
93+ LDFLAGS="-s -w -X ${PKG}/pkg/driver.driverVersion=${REV} -X ${PKG}/pkg/driver.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/driver.buildDate=${BUILD_DATE}"
94+
95+ mkdir -p bin
96+ CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o ./bin/cloudstack-csi-sc-syncer ./cmd/cloudstack-csi-sc-syncer
97+
6098 - name : Upload cloudstack-csi-sc-syncer artifact
6199 if : startsWith(github.ref, 'refs/tags/v')
62100 uses : actions/upload-artifact@v4
0 commit comments