@@ -10,13 +10,29 @@ executors:
1010 docker :
1111 - image : cimg/go:1.26.0
1212
13+ # Machine executor: Docker and binfmt run on the VM host so armv7 builds work (QEMU).
14+ release-machine :
15+ machine :
16+ image : ubuntu-2004:current
17+ resource_class : large
18+ shell : /bin/bash
19+
1320commands :
1421 install_goreleaser_dependencies :
1522 description : Register Docker platforms for multi-arch builds (arm64, armv7)
1623 steps :
1724 - run : docker run --privileged --rm tonistiigi/binfmt --install all
1825
1926references :
27+ install_vault_ubuntu : &install_vault_ubuntu
28+ run :
29+ name : install hashicorp vault (Ubuntu)
30+ command : |
31+ sudo apt-get update -qq && sudo apt-get install -y -qq unzip curl
32+ curl -sLo /tmp/vault.zip https://releases.hashicorp.com/vault/1.12.2/vault_1.12.2_linux_amd64.zip
33+ echo "116c143de377a77a7ea455a367d5e9fe5290458e8a941a6e2dd85d92aaedba67 /tmp/vault.zip" | sha256sum -c -
34+ unzip -o /tmp/vault.zip -d /tmp && sudo mv /tmp/vault /usr/local/bin/vault
35+ vault version
2036 e2e_config : &e2e_config
2137 command_runner_image : quay.io/reactiveops/ci-images:v14-bullseye
2238 kind_node_image : " kindest/node:v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb"
8298 - install_goreleaser_dependencies
8399 - run : echo 'export GORELEASER_CURRENT_TAG="${CIRCLE_TAG}"' >> $BASH_ENV
84100 - run : goreleaser
101+
102+ # Uses machine executor so Docker + binfmt run on same host; armv7 image builds succeed.
103+ release_machine :
104+ executor : release-machine
105+ working_directory : ~/pluto
106+ steps :
107+ - checkout
108+ - *install_vault_ubuntu
109+ - rok8s/get_vault_env :
110+ vault_path : repo/global/env
111+ - rok8s/get_vault_env :
112+ vault_path : repo/pluto/env
113+ - run :
114+ name : docker login
115+ command : |
116+ docker login -u _json_key -p "$(echo $GCP_ARTIFACTREADWRITE_JSON_KEY | base64 -d)" us-docker.pkg.dev
117+ - install_goreleaser_dependencies
118+ - run :
119+ name : run goreleaser (host Docker + binfmt for armv7)
120+ command : |
121+ export GORELEASER_CURRENT_TAG="${CIRCLE_TAG}"
122+ docker run --rm \
123+ -v "$(pwd)":/workspace \
124+ -v /var/run/docker.sock:/var/run/docker.sock \
125+ -w /workspace \
126+ --env-file <(env) \
127+ goreleaser/goreleaser:v2.14.0
85128 snapshot :
86129 working_directory : /home/circleci/go/src/github.com/fairwindsops/pluto
87130 resource_class : large
@@ -147,15 +190,15 @@ workflows:
147190 << : *e2e_config
148191 release :
149192 jobs :
150- - release :
193+ - release_machine :
151194 filters :
152195 branches :
153196 ignore : /.*/
154197 tags :
155198 only : /.*/
156199 - oss-docs/publish-docs :
157200 requires :
158- - release
201+ - release_machine
159202 repository : pluto
160203 filters :
161204 branches :
0 commit comments