Unverified Commit df40aa5e authored by Ryan Belgrave's avatar Ryan Belgrave Committed by GitHub
Browse files

push multi-arch images to the dev registry (#890)

* push multi-arch images to the dev registry

* cleam things up with a array of arches

* missed setting a GOARCH

* put quotes and {} everywhere

* one of these isn't a variable
parent 1af329c4
base PR902 apply-both-ingress-egress-pol bgppolicies closed-channel consolidate_network_policy_chains dependabot/go_modules/github.com/aws/aws-sdk-go-1.44.211 dependabot/go_modules/github.com/osrg/gobgp/v3-3.11.0 dependabot/go_modules/k8s.io/api-0.26.2 dependabot/go_modules/k8s.io/apimachinery-0.26.2 dependabot/go_modules/k8s.io/cri-api-0.26.2 disable-policy-routing drop-flag fix-build-break fix_network_policy_cleanup_code gobgp-update gomod goreleaser-ldflags health_check_give_more_grace issue-905 issue-templates linters master mrueg-patch-1 npc-refactor pr914-feedback rel-v0.0.1 release-test/22.02.3 release/21.06-BETA.1 release/21.08-BETA.1 release/21.08-BETA.2 release/22.02 release/22.02-RC.1 release/22.02-RC.2 release/22.02-test release/22.02.1 release/22.02.2 release/22.02.3 release/22.02.4 release/22.12 release/22.12-BETA.1 release/22.12-BETA.2 release/22.12-RC.1 release/22.12.1 release/22.12.2 release/22.12.3 release/22.12.4 release/22.2-RC.1 release/23.10-BETA.1 release/23.10-RC.1 release/23.10.0 release/23.10.1 release/23.10.1.2 release/23.10.1.3 release/23.10.2 release/24.04-BETA.1 release/24.04-RC.1 release/24.04.0 remove_deprecated_cluster-cidr_option stable/angelfish stable/angelfish-backup-06-04-22 stable/angelfish-backup-28-05-22 stable/bluefin stable/cobia stable/dragonfish testing-refine-branchout-process testing-refine-branchout-process2 tmprelease/test-21.08 tmprelease/test-21.09 tmprelease/test2-21.09 tmprelease/test3-21.09 tmprelease/test4-21.09 truenas/master truenas/master-backup-03-4-22 truenas/master-backup-10-7-21 truenas/master-backup-2-7-23 truenas/master-backup-21-08-22 truenas/master-backup-28-7-21 truenas/master-backup-29-05-22 truenas/master-backup-29-4-21 v1.0 v1.1 v1.0.1 v1.0.0 v1.0.0-rc6 v1.0.0-rc5 v1.0.0-rc4 v1.0.0-rc3 v1.0.0-rc2 TS-24.04-RC.1 TS-24.04-BETA.1 TS-23.10.2 TS-23.10.1.3 TS-23.10.1.2 TS-23.10.1.1 TS-23.10.1 TS-23.10.0.1 TS-23.10.0 TS-23.10-RC.1 TS-23.10-BETA.1 TS-22.12.4.2 TS-22.12.4.1 TS-22.12.4 TS-22.12.3.3 TS-22.12.3.2 TS-22.12.3.1 TS-22.12.3 TS-22.12.2 TS-22.12.1 TS-22.12.0 TS-22.12-RC.1 TS-22.12-BETA.2 TS-22.12-BETA.1 TS-22.12-ALPHA.1 TS-22.02.4 TS-22.02.3 TS-22.02.2.1 TS-22.02.2 TS-22.02.1 TS-22.02.0.1 TS-22.02.0 TS-22.2.0 TS-22.02.RELEASE.1 TS-22.02-RC.2 TS-22.02-RC.1 TS-22.02-RC.1-2 TS-22.02-RC.1-1 TS-21.08-BETA.2 TS-21.08-BETA.1 TS-21.06-BETA.1 TS-21.04-ALPHA.1 TS-21.02-ALPHA.1 TS-20.12-ALPHA TS-20.10-ALPHA TS-12.12.3 DN110M-CS-v2.0
No related merge requests found
Showing with 35 additions and 29 deletions
+35 -29
......@@ -8,6 +8,7 @@ IMG_NAMESPACE?=cloudnativelabs
GIT_COMMIT=$(shell git describe --tags --dirty)
GIT_BRANCH?=$(shell git rev-parse --abbrev-ref HEAD)
IMG_TAG?=$(if $(IMG_TAG_PREFIX),$(IMG_TAG_PREFIX)-)$(if $(ARCH_TAG_PREFIX),$(ARCH_TAG_PREFIX)-)$(GIT_BRANCH)
MANIFEST_TAG?=$(if $(IMG_TAG_PREFIX),$(IMG_TAG_PREFIX)-)$(GIT_BRANCH)
RELEASE_TAG?=$(GOARCH)-$(shell build/get-git-tag.sh)
REGISTRY?=$(if $(IMG_FQDN),$(IMG_FQDN)/$(IMG_NAMESPACE)/$(NAME),$(IMG_NAMESPACE)/$(NAME))
REGISTRY_DEV?=$(REGISTRY)$(DEV_SUFFIX)
......@@ -126,6 +127,13 @@ push: container docker-login ## Pushes a Docker container image to a registry.
$(DOCKER) push "$(REGISTRY_DEV):$(IMG_TAG)"
@echo Finished kube-router container image push.
push-manifest:
@echo Starting kube-router manifest push.
./manifest-tool push from-args \
--platforms linux/amd64,linux/arm64,linux/arm,linux/s390x,linux/ppc64le \
--template "$(REGISTRY_DEV):ARCH-$(MANIFEST_TAG)" \
--target "$(REGISTRY_DEV):$(MANIFEST_TAG)"
push-release: push
@echo Starting kube-router release container image push.
@test -n "$(RELEASE_TAG)"
......@@ -133,7 +141,7 @@ push-release: push
$(DOCKER) push "$(REGISTRY)"
@echo Finished kube-router release container image push.
push-manifest:
push-manifest-release:
@echo Starting kube-router manifest push.
./manifest-tool push from-args \
--platforms linux/amd64,linux/arm64,linux/arm,linux/s390x,linux/ppc64le \
......
......@@ -2,45 +2,43 @@
set -o errexit
set -o pipefail
GOARCHES=(amd64 arm64 arm s390x ppc64le)
# Pull Request image tag format: PR00
if [ "${TRAVIS_EVENT_TYPE}" = "pull_request" ]; then
PR_USER=$(echo "$TRAVIS_PULL_REQUEST_SLUG" | sed -e 's/\/.*//')
if [ "$PR_USER" != "cloudnativelabs" ]; then
echo "Not building/pushing PR $TRAVIS_PULL_REQUEST since only the cloudnativelabs user can access docker hub credentials"
PR_USER=$(echo "${TRAVIS_PULL_REQUEST_SLUG}" | sed -e 's/\/.*//')
if [ "${PR_USER}" != "cloudnativelabs" ]; then
echo "Not building/pushing PR ${TRAVIS_PULL_REQUEST} since only the cloudnativelabs user can access docker hub credentials"
exit 0
fi
echo "Building/pushing PR$TRAVIS_PULL_REQUEST from $PR_USER"
make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=amd64
make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=amd64
make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm64
make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm64
make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm
make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm
make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=s390x
make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=s390x
make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=ppc64le
make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=ppc64le
echo "Building/pushing PR${TRAVIS_PULL_REQUEST} from ${PR_USER}"
for GOARCH in "${GOARCHES[@]}"; do
make push IMG_TAG="${GOARCH}-PR${TRAVIS_PULL_REQUEST}" GOARCH="${GOARCH}"
make clean IMG_TAG="${GOARCH}-PR${TRAVIS_PULL_REQUEST}" GOARCH="${GOARCH}"
done
echo "Pushing PR manifest on Travis"
make push-manifest MANIFEST_TAG="PR${TRAVIS_PULL_REQUEST}"
exit 0
fi
# Release image tag format: v0.0.0 and latest
if [ -n "$TRAVIS_TAG" ]; then
if [ -n "${TRAVIS_TAG}" ]; then
echo "Running Release build on Travis"
make push-release RELEASE_TAG="amd64-$TRAVIS_TAG" GOARCH=amd64
make clean RELEASE_TAG="amd64-$TRAVIS_TAG" GOARCH=amd64
make push-release RELEASE_TAG="arm64-$TRAVIS_TAG" GOARCH=arm64
make clean RELEASE_TAG="arm64-$TRAVIS_TAG" GOARCH=arm64
make push-release RELEASE_TAG="arm-$TRAVIS_TAG" GOARCH=arm
make clean RELEASE_TAG="arm-$TRAVIS_TAG" GOARCH=arm
make push-release RELEASE_TAG="s390x-$TRAVIS_TAG" GOARCH=s390x
make clean RELEASE_TAG="s390x-$TRAVIS_TAG" GOARCH=s390x
make push-release RELEASE_TAG="ppc64le-$TRAVIS_TAG" GOARCH=ppc64le
make clean RELEASE_TAG="ppc64le-$TRAVIS_TAG" GOARCH=ppc64le
echo "Pushing manifest on Travis"
make push-manifest RELEASE_TAG="$TRAVIS_TAG"
for GOARCH in "${GOARCHES[@]}"; do
make push-release RELEASE_TAG="${GOARCH}-${TRAVIS_TAG}" GOARCH="${GOARCH}"
make clean RELEASE_TAG="${GOARCH}-${TRAVIS_TAG}" GOARCH="${GOARCH}"
done
echo "Pushing release manifest on Travis"
make push-manifest-release RELEASE_TAG="${TRAVIS_TAG}"
exit 0
fi
# Push image tag format: COMMIT
echo "Running push build on Travis"
make push
for GOARCH in "${GOARCHES[@]}"; do
make push GOARCH="${GOARCH}"
make clean GOARCH="${GOARCH}"
done
echo "Pushing manifest on Travis"
make push-manifest
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment