aboutsummaryrefslogtreecommitdiff
path: root/.scripts.d/40-publish.sh
blob: 0980f740832c9d647f2bae5daed854fc7aa64f88 (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
46
47
48
49
50
51
#!/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; }

# shellcheck disable=SC2001
REGISTRY=$(echo "${GITHUB_SERVER_URL}" | sed -e 's|^[^/]*//||')
TAG="${GITHUB_RUN_ID}"
IMAGE_TEST_NAME="${REGISTRY}/${GITHUB_REPOSITORY,,}:${TAG}"
IMAGE_INTERNAL_RELEASE_NAME_VERSIONED="${REGISTRY}/${GITHUB_REPOSITORY,,}:${LT_VERSION}"
IMAGE_INTERNAL_RELEASE_NAME_LATEST="${REGISTRY}/${GITHUB_REPOSITORY,,}:latest"
IMAGE_EXTERNAL_RELEASE_NAME_VERSIONED="docker.io/${DOCKERHUB_REGISTRY_USER}/languagetool:${LT_VERSION}"
IMAGE_EXTERNAL_RELEASE_NAME_LATEST="docker.io/${DOCKERHUB_REGISTRY_USER}/languagetool:latest"

mkdir -p ~/.docker
auth=$(printf '%s:%s' "$GITEA_REGISTRY_USER" "$GITEA_REGISTRY_TOKEN" | base64 -w0)
cat > ~/.docker/config.json <<EOF
{"auths":{"${REGISTRY}":{"auth":"${auth}"}}}
EOF
docker login docker.io -u "${DOCKERHUB_REGISTRY_USER}" --password-stdin <<<"${DOCKERHUB_REGISTRY_TOKEN}"

mkdir -p ~/.config/containers
cat > ~/.config/containers/registries.conf <<EOF
[[registry]]
location = "hagher.elk-terrapin.ts.net:3202"
insecure = true
EOF

skopeo copy \
    --all \
    "docker://${IMAGE_TEST_NAME}" \
    "docker://${IMAGE_INTERNAL_RELEASE_NAME_VERSIONED}"

skopeo copy \
    --all \
    "docker://${IMAGE_TEST_NAME}" \
    "docker://${IMAGE_INTERNAL_RELEASE_NAME_LATEST}"

skopeo copy \
    --all \
    "docker://${IMAGE_TEST_NAME}" \
    "docker://${IMAGE_EXTERNAL_RELEASE_NAME_VERSIONED}"

skopeo copy \
    --all \
    "docker://${IMAGE_TEST_NAME}" \
    "docker://${IMAGE_EXTERNAL_RELEASE_NAME_LATEST}"