#!/bin/bash # vim: ai:ts=8:sw=8:noet set -EeufCo pipefail export SHELLOPTS # propagate set to children by default IFS=$'\t\n' # check required commands are in place command -v docker >/dev/null 2>&1 || { echo 'please install docker-client' exit 1 } docker login --username "chn2guevara" \ --password-stdin <<<"$DOCKERHUB_TOKEN" BUILDER_SUFFIX=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 5 ; echo '') docker run --privileged --rm tonistiigi/binfmt --install arm64 docker buildx create --use --name multi-arch-builder trap "docker buildx rm 'multi-arch-builder-""${BUILDER_SUFFIX}""'" EXIT DOCKER_TAG="latest" if [ "$GIT_BRANCH" != "master" ]; then DOCKER_TAG="${GIT_BRANCH//\//-}" fi if [ "$(git tag --contains)" = "" ]; then docker buildx build \ --platform linux/amd64,linux/arm64 \ --builder "multi-arch-builder-${BUILDER_SUFFIX}" \ --no-cache \ --pull \ --push \ --tag "chn2guevara/jenkins-agent-docker-cli:${DOCKER_TAG}" \ . else docker buildx build \ --platform linux/amd64,linux/arm64 \ --builder "multi-arch-builder-${BUILDER_SUFFIX}" \ --no-cache \ --pull \ --push \ --tag "chn2guevara/jenkins-agent-docker-cli:${DOCKER_TAG}" \ --tag "chn2guevara/jenkins-agent-docker-cli:$(git tag --contains | head -1)" \ . fi