@@ -83,10 +83,14 @@ jobs:
8383 -tags=static \
8484 github.com/omegaup/quark/cmd/omegaup-broadcaster
8585 go build -o artifacts/runner/usr/bin/omegaup-runner \
86- -ldflags "-X main.ProgramVersion=${VERSION}" \
86+ -ldflags "-linkmode external -extldflags '-static' - X main.ProgramVersion=${VERSION}" \
8787 -tags=static \
8888 github.com/omegaup/quark/cmd/omegaup-runner
8989
90+ if ldd artifacts/runner/usr/bin/omegaup-runner; then
91+ echo 'omegaup-runner must be statically linked' >&2
92+ exit 1
93+ fi
9094 cp artifacts/runner/usr/bin/omegaup-runner docker/bin/omegaup-runner
9195 test "$(artifacts/runner/usr/bin/omegaup-runner -version)" = \
9296 "omegaup-runner ${VERSION}"
@@ -131,35 +135,27 @@ jobs:
131135 username : ${{ secrets.DOCKER_USERNAME }}
132136 password : ${{ secrets.DOCKER_PASSWORD }}
133137
134- - name : Build and publish runner sandbox image
138+ - name : Build runner sandbox image
135139 uses : docker/build-push-action@v7
136140 with :
137141 context : docker
138142 file : docker/Dockerfile
139143 platforms : ${{ env.PLATFORM }}
140- push : true
141- tags : |
142- ghcr.io/${{ github.repository_owner }}/runner-ci:${{ steps.version.outputs.version }}
143- ghcr.io/${{ github.repository_owner }}/runner-ci:sha-${{ steps.version.outputs.revision }}
144- omegaup/runner-ci:${{ steps.version.outputs.version }}
145- omegaup/runner-ci:sha-${{ steps.version.outputs.revision }}
144+ load : true
145+ tags : omegaup/runner-ci:${{ steps.version.outputs.version }}
146146 labels : |
147147 org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
148148 org.opencontainers.image.revision=${{ steps.version.outputs.revision }}
149149 org.opencontainers.image.version=${{ steps.version.outputs.version }}
150150
151- - name : Build and publish runner image
151+ - name : Build runner image
152152 uses : docker/build-push-action@v7
153153 with :
154154 context : docker
155155 file : docker/Dockerfile.runner
156156 platforms : ${{ env.PLATFORM }}
157- push : true
158- tags : |
159- ghcr.io/${{ github.repository_owner }}/runner:${{ steps.version.outputs.version }}
160- ghcr.io/${{ github.repository_owner }}/runner:sha-${{ steps.version.outputs.revision }}
161- omegaup/runner:${{ steps.version.outputs.version }}
162- omegaup/runner:sha-${{ steps.version.outputs.revision }}
157+ load : true
158+ tags : omegaup/runner:${{ steps.version.outputs.version }}
163159 labels : |
164160 org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
165161 org.opencontainers.image.revision=${{ steps.version.outputs.revision }}
@@ -176,6 +172,30 @@ jobs:
176172 /usr/bin/omegaup-runner -version)" = \
177173 "omegaup-runner ${VERSION}"
178174 test "$(docker image inspect "${image}" --format '{{.Architecture}}')" = amd64
175+ test "$(docker run --rm --platform linux/amd64 \
176+ "omegaup/runner-ci:${VERSION}" -version)" = \
177+ "omegaup-runner ${VERSION}"
178+ test "$(docker image inspect "omegaup/runner-ci:${VERSION}" \
179+ --format '{{.Architecture}}')" = amd64
180+
181+ - name : Publish verified runner images
182+ env :
183+ VERSION : ${{ steps.version.outputs.version }}
184+ REVISION : ${{ steps.version.outputs.revision }}
185+ shell : bash
186+ run : |
187+ set -euo pipefail
188+ for image in runner runner-ci; do
189+ source_image="omegaup/${image}:${VERSION}"
190+ docker push "${source_image}"
191+ for target_image in \
192+ "omegaup/${image}:sha-${REVISION}" \
193+ "ghcr.io/${{ github.repository_owner }}/${image}:${VERSION}" \
194+ "ghcr.io/${{ github.repository_owner }}/${image}:sha-${REVISION}"; do
195+ docker tag "${source_image}" "${target_image}"
196+ docker push "${target_image}"
197+ done
198+ done
179199
180200 - name : Create or update GitHub release
181201 env :
0 commit comments