Files
spring-credhub/ci/scripts/build-project.sh
2024-05-23 13:14:13 +01:00

52 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
readonly DOCKERHUB_MIRROR_REGISTRY="${DOCKERHUB_MIRROR_REGISTRY:?must be set}"
readonly DOCKERHUB_MIRROR_REGISTRY_USERNAME="${DOCKERHUB_MIRROR_REGISTRY_USERNAME:?must be set}"
readonly DOCKERHUB_MIRROR_REGISTRY_PASSWORD="${DOCKERHUB_MIRROR_REGISTRY_PASSWORD:?must be set}"
# shellcheck source=common.sh
source "$(dirname "$0")/common.sh"
repository=$(pwd)/distribution-repository
start_docker() {
pushd credhub-server >/dev/null
echo "{\"registry-mirrors\": [\"https://$DOCKERHUB_MIRROR_REGISTRY\"]}" > /etc/docker/daemon.json
service cgroupfs-mount start
service docker start
# Work around https://github.com/moby/moby/issues/30880
cat >> /etc/hosts << EOF
127.0.0.1 index.docker.io
127.0.0.1 registry-1.docker.io
127.0.0.1 docker.io
EOF
mkdir -p "$HOME/.docker"
jq --arg username "$DOCKERHUB_MIRROR_REGISTRY_USERNAME" \
--arg password "$DOCKERHUB_MIRROR_REGISTRY_PASSWORD" \
'reduce .[] as $registry ({"auths": {}}; .auths += {($registry): {"auth": [$username, $password] | join(":") | @base64}})' \
<<< "[\"index.docker.io\", \"$DOCKERHUB_MIRROR_REGISTRY\"]" \
> "$HOME/.docker/config.json"
docker-compose up --detach
trap "stop_docker" EXIT
popd >/dev/null
}
stop_docker() {
pushd credhub-server >/dev/null
docker-compose stop
service cgroupfs-mount stop
service docker stop
popd >/dev/null
}
main() {
cd git-repo >/dev/null
start_docker
./gradlew build publish -PpublicationRepository="${repository}" -PintegrationTests --no-parallel
}
main