Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .circleci/build/release-docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/bash
set -e

HELP="Args:
-v - Semver (2.42.0)
-d - Build image repository (Ex: -d redisinsight)
-r - Target repository (Ex: -r redis/redisinsight)
"

while getopts "v:d:r:h:" opt; do
case $opt in
v) VERSION="$OPTARG";;
d) DEV_REPO="$OPTARG";;
r) RELEASE_REPO="$OPTARG";;
h) echo "$HELP"; exit 0;;
?) echo "$HELP" >&2; exit 1 ;;
esac
done

V_ARR=( ${VERSION//./ } )
TAGS[0]=$VERSION
TAGS[1]="${V_ARR[0]}.${V_ARR[1]}"
TAGS[2]="latest"

DEV_IMAGE_AMD64=$DEV_REPO:amd64
DEV_IMAGE_ARM64=$DEV_REPO:arm64
RELEASE_IMAGE_AMD64=$RELEASE_REPO:$VERSION-amd64
RELEASE_IMAGE_ARM64=$RELEASE_REPO:$VERSION-arm64

echo "
TAGS: [${TAGS[0]}, ${TAGS[1]}, ${TAGS[2]}]
DEV_REPO: $DEV_REPO
RELEASE_REPO: $RELEASE_REPO

DEV_IMAGE_AMD64: $DEV_IMAGE_AMD64
DEV_IMAGE_ARM64: $DEV_IMAGE_ARM64

RELEASE_IMAGE_AMD64: $RELEASE_IMAGE_AMD64
RELEASE_IMAGE_ARM64: $RELEASE_IMAGE_ARM64
"

# Load images from tar archives
docker rmi $DEV_IMAGE_AMD64 || true
docker rmi $DEV_IMAGE_ARM64 || true
docker load -i release/docker/docker-linux-alpine.amd64.tar
docker load -i release/docker/docker-linux-alpine.arm64.tar

echo "Push AMD64 image"
docker tag $DEV_IMAGE_AMD64 $RELEASE_IMAGE_AMD64
docker push $RELEASE_IMAGE_AMD64

echo "Push ARM64 image"
docker tag $DEV_IMAGE_ARM64 $RELEASE_IMAGE_ARM64
docker push $RELEASE_IMAGE_ARM64

for TAG in "${TAGS[@]}"; do
echo "Releasing: $RELEASE_REPO:$TAG"
docker manifest rm $RELEASE_REPO:$TAG || true
docker manifest create --amend "$RELEASE_REPO:$TAG" $RELEASE_IMAGE_AMD64 $RELEASE_IMAGE_ARM64
docker manifest push "$RELEASE_REPO:$TAG"
done

echo "Success"
29 changes: 28 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -956,7 +956,11 @@ jobs:
at: .
- run:
command: |
aws s3 cp release/ s3://${AWS_BUCKET_NAME_TEST}/public/manual-builds/${CIRCLE_BUILD_NUM} --recursive --exclude "*" --include "RedisInsight*"
aws s3 cp release/ s3://${AWS_BUCKET_NAME_TEST}/public/manual-builds/${CIRCLE_BUILD_NUM} --recursive \
--exclude "*" \
--include "RedisInsight*" \
--include "web/*" \
--include "docker/*"

release-aws-private:
executor: linux-executor
Expand All @@ -980,6 +984,24 @@ jobs:

aws s3 cp release/ s3://${AWS_BUCKET_NAME}/private/${applicationVersion} --recursive

release-docker:
executor: linux-executor
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Release docker images
command: |
appVersion=$(jq -r '.version' redisinsight/package.json)

docker login -u $DOCKER_USER -p $DOCKER_PASS

./.circleci/build/release-docker.sh \
-d redisinsight \
-r $DOCKER_REPO \
-v $appVersion

publish-prod-aws:
executor: linux-executor
steps:
Expand Down Expand Up @@ -1613,6 +1635,11 @@ workflows:
requires:
- Approve Publish Release (prod)
<<: *prodFilter # double check for "latest"
- release-docker:
name: Release docker images
requires:
- Approve Publish Release (prod)
<<: *prodFilter # double check for "latest"
# Nightly tests
nightly:
triggers:
Expand Down