aboutsummaryrefslogtreecommitdiff
path: root/.scripts.d/40-publish.sh
blob: efb1b215b0963f3b59f6ca131a1d36920ae4d2b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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/languagetool:${DOCKER_TAG}" \
		.
else
	docker buildx build \
		--platform linux/amd64,linux/arm64 \
		--builder "multi-arch-builder-${BUILDER_SUFFIX}" \
		--no-cache \
		--pull \
		--push \
		--tag "chn2guevara/languagetool:${DOCKER_TAG}" \
		--tag "chn2guevara/languagetool:$(git tag --contains | head -1)" \
		.
fi