11name : QA-Prod
22
33on :
4- workflow_dispatch : # used for QA Deployments
4+ workflow_dispatch :
55 push :
66 tags :
77 - ' sandbox-[0-9]+.[0-9]+.[0-9]+'
8- # - '[0-9]+.[0-9]+.[0-9]+'
98
109jobs :
1110 build :
@@ -17,33 +16,38 @@ jobs:
1716 steps :
1817 - uses : actions/checkout@v3
1918
20- - name : Set Docker Tag
19+ - name : Set Docker Variables
2120 id : vars
2221 run : |
23- REPOSITORY1="sandbox-${GITHUB_REPOSITORY#*/}"
24- RAW_TAG="${GITHUB_REF#refs/tags/}"
25- REPOSITORY="${RAW_TAG%%:*}"
26- FULL_TAG="${RAW_TAG#*:}"
27- CLEAN_TAG="${FULL_TAG#sandbox-}"
28-
29- # echo "REPOSITORY1=$REPOSITORY1"
30- # echo "CLEAN_TAG=$CLEAN_TAG"
31-
32- echo "REPOSITORY1=$REPOSITORY1" >> $GITHUB_ENV
33- echo "TAG=$CLEAN_TAG" >> $GITHUB_ENV
34- echo "TARGET=${{ secrets.SLACK_WEBHOOK_PROD }}" >> $GITHUB_ENV
35-
36- echo "::set-output name=REPOSITORY1::$REPOSITORY1"
37- echo "::set-output name=TAG::$CLEAN_TAG"
38- echo "::set-output name=TARGET::${{ secrets.SLACK_WEBHOOK_PROD }}"
22+ REPOSITORY="sandbox-${GITHUB_REPOSITORY#*/}"
23+ echo "REPOSITORY=$REPOSITORY" >> $GITHUB_OUTPUT
24+
25+ if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
26+ RAW_TAG="${GITHUB_REF#refs/tags/}" # e.g., sandbox-adminer-core:sandbox-1.1.3
27+ REPO_NAME="${RAW_TAG%%:*}" # e.g., sandbox-adminer-core
28+ VERSION_WITH_SANDBOX="${RAW_TAG#*:}" # e.g., sandbox-1.1.3
29+ VERSION="${VERSION_WITH_SANDBOX#sandbox-}" # e.g., 1.1.3
30+
31+ FINAL_TAG="${REPO_NAME}:${VERSION}" # e.g., sandbox-adminer-core:1.1.3
32+
33+ echo "TAG=$VERSION" >> $GITHUB_OUTPUT
34+ echo "DOCKER_TAG=$FINAL_TAG" >> $GITHUB_OUTPUT
35+ echo "TARGET=${{ secrets.SLACK_WEBHOOK_PROD }}" >> $GITHUB_OUTPUT
36+ else
37+ TAG="qa-${GITHUB_SHA::7}-$(date +%s)"
38+ FINAL_TAG="${REPOSITORY}:${TAG}"
39+
40+ echo "TAG=$TAG" >> $GITHUB_OUTPUT
41+ echo "DOCKER_TAG=$FINAL_TAG" >> $GITHUB_OUTPUT
42+ echo "TARGET=${{ secrets.SLACK_WEBHOOK }}" >> $GITHUB_OUTPUT
43+ fi
3944
4045 - name : Build and Push Docker Image
4146 env :
4247 LLC_ECR_HOST : ${{ secrets.LLC_ECR_HOST }}
43- REPOSITORY : ${{ steps.vars.outputs.REPOSITORY1 }}
44- TAG : ${{ env.TAG }}
48+ DOCKER_TAG : ${{ steps.vars.outputs.DOCKER_TAG }}
4549 run : |
46- IMAGE=${LLC_ECR_HOST}/${REPOSITORY}:${TAG}
47- echo "Building Docker image: $IMAGE"
50+ IMAGE=" ${LLC_ECR_HOST}/${DOCKER_TAG}"
51+ echo "Building image: $IMAGE"
4852 docker build . --file Dockerfile --tag "$IMAGE"
4953 docker push "$IMAGE"
0 commit comments