diff --git a/.github/workflows/next-build.yml b/.github/workflows/next-build.yml index a7e51d3087..00631006e2 100644 --- a/.github/workflows/next-build.yml +++ b/.github/workflows/next-build.yml @@ -50,7 +50,7 @@ jobs: run: mvn -B clean install -U -Pintegration - name: Build docker images id: build - run: + run: | SHORT_SHA1=$(git rev-parse --short HEAD) echo ::set-output name=short_sha1::${SHORT_SHA1} ./dockerfiles/build.sh --tag:next --sha-tag @@ -71,11 +71,11 @@ jobs: docker push quay.io/eclipse/che-server:next docker push quay.io/eclipse/che-server:${{ steps.build.outputs.short_sha1 }} - name: Build ubi8 Che Server image - run: + run: | ./dockerfiles/che/build.sh --dockerfile:"rhel.Dockerfile" --tag:"rhel-next" docker tag quay.io/eclipse/che-server:rhel-next quay.io/eclipse/che-server:rhel-${{ steps.build.outputs.short_sha1 }} - name: Push ubi8 Che Server image - run: + run: | docker push quay.io/eclipse/che-server:rhel-next docker push quay.io/eclipse/che-server:rhel-${{ steps.build.outputs.short_sha1 }} - name: Create failure MM message diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 00794c4303..dadbdbe90f 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -49,7 +49,7 @@ jobs: run: mvn -B clean install -U -Pintegration - name: Build docker images id: build - run: + run: | SHORT_SHA1=$(git rev-parse --short HEAD) echo ::set-output name=short_sha1::${SHORT_SHA1} ./dockerfiles/build.sh --tag:nightly --sha-tag @@ -70,11 +70,11 @@ jobs: docker push quay.io/eclipse/che-server:nightly docker push quay.io/eclipse/che-server:${{ steps.build.outputs.short_sha1 }} - name: Build ubi8 Che Server image - run: + run: | ./dockerfiles/che/build.sh --dockerfile:"rhel.Dockerfile" --tag:"rhel-nightly" docker tag quay.io/eclipse/che-server:rhel-nightly quay.io/eclipse/che-server:rhel-${{ steps.build.outputs.short_sha1 }} - name: Push ubi8 Che Server image - run: + run: | docker push quay.io/eclipse/che-server:rhel-nightly docker push quay.io/eclipse/che-server:rhel-${{ steps.build.outputs.short_sha1 }} - name: Create failure MM message diff --git a/dockerfiles/build.include b/dockerfiles/build.include index 9aec25d7db..641be64a26 100755 --- a/dockerfiles/build.include +++ b/dockerfiles/build.include @@ -13,6 +13,7 @@ set -u IMAGE_ALIASES=${IMAGE_ALIASES:-} ERROR=${ERROR:-} DIR=${DIR:-} +SHA_TAG=${SHA_TAG:-} skip_tests() { if [ $SKIP_TESTS = "true" ]; then @@ -141,13 +142,21 @@ build_image() { rm ${DIR}/.Dockerfile if [ $DOCKER_BUILD_STATUS -eq 0 ]; then printf "Build of ${BLUE}${IMAGE_NAME} ${GREEN}[OK]${NC}\n" + if [ ! -z "${SHA_TAG}" ]; then + SHA_IMAGE_NAME=${ORGANIZATION}/${PREFIX}-${NAME}:${SHA_TAG} + docker tag ${IMAGE_NAME} ${SHA_IMAGE_NAME} + DOCKER_TAG_STATUS=$? + if [ $DOCKER_TAG_STATUS -eq 0 ]; then + printf "Re-tagging with SHA based tag ${BLUE}${SHA_IMAGE_NAME} ${GREEN}[OK]${NC}\n" + else + printf "${RED}Failure when tagging docker image ${SHA_IMAGE_NAME}${NC}\n" + exit 1 + fi + fi if [ ! -z "${IMAGE_ALIASES}" ]; then for TMP_IMAGE_NAME in ${IMAGE_ALIASES} do docker tag ${IMAGE_NAME} ${TMP_IMAGE_NAME}:${TAG} - if [ -n "${SHA_TAG}" ]; then - docker tag ${IMAGE_NAME} ${TMP_IMAGE_NAME}:${SHA_TAG} - fi DOCKER_TAG_STATUS=$? if [ $DOCKER_TAG_STATUS -eq 0 ]; then printf " /alias ${BLUE}${TMP_IMAGE_NAME}:${TAG}${NC} ${GREEN}[OK]${NC}\n"