Skip to content

Commit e3fdd90

Browse files
build number param
1 parent 3b9d1a9 commit e3fdd90

File tree

1 file changed

+42
-6
lines changed

1 file changed

+42
-6
lines changed

.github/workflows/deploy.yml

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ on:
33
push:
44
branches:
55
- main
6+
workflow_dispatch:
7+
inputs:
8+
build_number:
9+
description: 'Build number to deploy (optional)'
10+
required: false
11+
type: string
12+
613
jobs:
714
build-and-deploy:
815
runs-on: ubuntu-latest
@@ -15,25 +22,54 @@ jobs:
1522
EC2_PUBLIC_IP_ADDRESS: ${{ secrets.EC2_PUBLIC_IP_ADDRESS }}
1623

1724
steps:
18-
- name: Checkout
25+
- name: Checkout (only if no build number provided)
26+
if: ${{ github.event.inputs.build_number == '' }}
1927
uses: actions/checkout@v4
20-
- name: JDK
28+
29+
- name: JDK (only if no build number provided)
30+
if: ${{ github.event.inputs.build_number == '' }}
2131
uses: actions/setup-java@v4
2232
with:
2333
distribution: 'temurin'
2434
java-version: '21'
35+
2536
- name: Generate Build Number
37+
id: build_number
2638
run: |
27-
BUILD_NUMBER=$(date +'%d%m%Y%H%M%S')
39+
if [ -n "${{ github.event.inputs.build_number }}" ]; then
40+
BUILD_NUMBER="${{ github.event.inputs.build_number }}"
41+
echo "Using provided build number: $BUILD_NUMBER"
42+
else
43+
BUILD_NUMBER=$(date +'%d%m%Y%H%M%S')
44+
echo "Generated Build Number: $BUILD_NUMBER"
45+
fi
2846
echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV
29-
echo "Generated Build Number: $BUILD_NUMBER"
47+
echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT
48+
3049
- name: Login to Docker Hub
3150
uses: docker/login-action@v3
3251
with:
3352
username: ${{ env.DOCKER_USERNAME }}
3453
password: ${{ env.DOCKER_PASSWORD }}
35-
- name: Maven Clean Verify
36-
run: mvn -B -ntp clean verify jib:build -Ddocker.image.tag=$BUILD_NUMBER
54+
55+
- name: Check if Docker image exists
56+
id: check_image
57+
run: |
58+
IMAGE_NAME="${{ env.DOCKER_USERNAME }}/${{ env.DOCKER_IMAGE_NAME }}:${{ steps.build_number.outputs.build_number }}"
59+
echo "Checking if image exists: $IMAGE_NAME"
60+
61+
if docker manifest inspect "$IMAGE_NAME" >/dev/null 2>&1; then
62+
echo "Image exists: $IMAGE_NAME"
63+
echo "image_exists=true" >> $GITHUB_OUTPUT
64+
else
65+
echo "Image does not exist: $IMAGE_NAME"
66+
echo "image_exists=false" >> $GITHUB_OUTPUT
67+
fi
68+
69+
- name: Maven Clean Verify (only if no build number provided and image doesn't exist)
70+
if: ${{ github.event.inputs.build_number == '' && steps.check_image.outputs.image_exists == 'false' }}
71+
run: mvn -B -ntp clean verify jib:build -Ddocker.image.tag=${{ steps.build_number.outputs.build_number }}
72+
3773
- name: Setup SSH Agent
3874
uses: webfactory/[email protected]
3975
with:

0 commit comments

Comments
 (0)