2019-08-09 12:51:42 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2020-02-09 21:55:12 +00:00
|
|
|
set -eo pipefail
|
|
|
|
|
|
2021-01-01 10:26:31 +00:00
|
|
|
image_name="babashka/babashka"
|
2020-02-09 21:55:12 +00:00
|
|
|
image_tag=$(cat resources/BABASHKA_VERSION)
|
2021-12-15 15:28:39 +00:00
|
|
|
platform=${PLATFORM:-"linux/amd64"}
|
2019-08-09 12:51:42 +00:00
|
|
|
latest_tag="latest"
|
|
|
|
|
|
|
|
|
|
if [[ $image_tag =~ SNAPSHOT$ ]]; then
|
|
|
|
|
echo "This is a snapshot version"
|
|
|
|
|
snapshot="true"
|
|
|
|
|
else
|
|
|
|
|
echo "This is a non-snapshot version"
|
|
|
|
|
snapshot="false"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -z "$CIRCLE_PULL_REQUEST" ] && [ "$CIRCLE_BRANCH" = "master" ]; then
|
2021-12-15 15:28:39 +00:00
|
|
|
echo "Building & pushing $platform Docker image(s) $image_name:$image_tag"
|
2019-08-09 12:51:42 +00:00
|
|
|
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USER" --password-stdin
|
2021-12-15 15:28:39 +00:00
|
|
|
IFS=',' read -r -a platforms <<< "$platform"
|
|
|
|
|
for p in "${platforms[@]}"; do
|
|
|
|
|
tarball_platform=${p//\//-}
|
|
|
|
|
if [[ $tarball_platform == "linux-arm64" ]]; then tarball_platform="linux-aarch64"; fi
|
|
|
|
|
mkdir -p $p
|
|
|
|
|
tar zxvf "/tmp/release/babashka-${image_tag}-${tarball_platform}.tar.gz" -C $p
|
|
|
|
|
done
|
|
|
|
|
docker buildx build -t "$image_name:$image_tag" --platform "$platform" --push -f Dockerfile.ci .
|
2021-01-03 14:57:30 +00:00
|
|
|
if [[ $snapshot == "false" ]]; then
|
2021-12-15 15:28:39 +00:00
|
|
|
echo "Building & pushing $platform Docker image(s) $image_name:$latest_tag"
|
|
|
|
|
docker buildx build -t "$image_name:$latest_tag" --platform "$platform" --push -f Dockerfile.ci .
|
|
|
|
|
fi
|
|
|
|
|
for p in "${platforms[@]}"; do
|
|
|
|
|
rm -rf $p
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# alpine doesn't provide upstream arm64 images yet
|
|
|
|
|
if [[ $platform == "linux-amd64" ]]; then
|
|
|
|
|
tar zxvf "/tmp/release/babashka-${image_tag}-${platform}-static.tar.gz"
|
2021-01-03 14:57:30 +00:00
|
|
|
docker build -t "$image_name:alpine" -f Dockerfile.alpine .
|
2021-12-15 15:28:39 +00:00
|
|
|
rm -f bb
|
2021-01-03 14:57:30 +00:00
|
|
|
docker tag "$image_name:alpine" "$image_name:$image_tag-alpine"
|
2021-12-15 15:28:39 +00:00
|
|
|
echo "Pushing image $image_name:$image_tag-alpine"
|
2021-01-03 14:57:30 +00:00
|
|
|
docker push "$image_name:$image_tag-alpine"
|
2021-12-15 15:28:39 +00:00
|
|
|
if [[ $snapshot == "false" ]]; then
|
|
|
|
|
echo "Pushing image $image_name:alpine"
|
|
|
|
|
docker push "$image_name:alpine"
|
|
|
|
|
fi
|
2021-01-03 14:57:30 +00:00
|
|
|
fi
|
2019-08-09 12:51:42 +00:00
|
|
|
else
|
|
|
|
|
echo "Not publishing Docker image"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
exit 0;
|