Skip to content

Workflow file for this run

name: Publish Management Center released version image
on:
push:
tags:
- "v*.*"
jobs:
build:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set Release Version
run: echo "RELEASE_VERSION=${GITHUB_REF:11}" >> $GITHUB_ENV
- name: Print Release Version
run: echo ${{ env.RELEASE_VERSION }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Compute tags
run: |
CURRENT_TAG=${GITHUB_REF:10}
TAGS="hazelcast/management-center:${{ env.RELEASE_VERSION }}"
LATEST_TAG=$(git tag --list --sort=refname "v*" | grep -E -v 'v*BETA*' | tail -n 1)
if [[ "$LATEST_TAG" = "${CURRENT_TAG}" ]]; then
TAGS="${TAGS},hazelcast/management-center:latest"
echo "Latest tag added: ${TAGS}"
echo "PUSH_LATEST=yes" >> $GITHUB_ENV
fi
MINOR_TAG=${CURRENT_TAG:0:4}
if [[ "$MINOR_TAG" != "${CURRENT_TAG}" ]]; then
LATEST_TAG_IN_MINOR_LINE=$(git tag --list --sort=refname "${MINOR_TAG}*" | grep -E -v 'v*BETA*' | tail -n 1)
if [[ "$LATEST_TAG_IN_MINOR_LINE" = "${CURRENT_TAG}" ]]; then
TAGS="${TAGS},hazelcast/management-center:${MINOR_TAG:1}"
echo "Latest tag in minor line added: ${TAGS}"
fi
fi
echo "TAGS=${TAGS}" >> $GITHUB_ENV
- name: Print docker image tags
run: echo ${{ env.TAGS }}
- name: Build and push docker image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64,linux/s390x
tags: ${{ env.TAGS }}
provenance: false
push: true
- name: Update Docker Hub Description of Management Center image
if: env.PUSH_LATEST == 'yes'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: hazelcast/management-center
short-description: Hazelcast Management Center Docker Image
readme-filepath: ./README.md