3
3
push :
4
4
branches :
5
5
- main
6
+ workflow_dispatch :
7
+ inputs :
8
+ build_number :
9
+ description : " Docker image tag to be deployed"
10
+ required : true
11
+ default : " "
6
12
jobs :
7
13
build-and-deploy :
8
14
runs-on : ubuntu-latest
@@ -24,28 +30,35 @@ jobs:
24
30
java-version : ' 21'
25
31
- name : Generate Build Number
26
32
run : |
27
- BUILD_NUMBER=$(date +'%d%m%Y%H%M%S')
33
+ if [ -z "${{ github.event.inputs.build_number }}]; then
34
+ BUILD_NUMBER=$(date +'%d%m%Y%H%M%S')
35
+ echo "No build number provided. Using $BUILD_NUMBER"
36
+ else
37
+ BUILD_NUMBER="${{ github.event.inputs.build_number }}
38
+ echo "Using provided build number $BUILD_NUMBER"
39
+ fi
28
40
echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV
29
- echo "Generated Build Number: $BUILD_NUMBER"
30
41
- name : Login to Docker Hub
42
+ if : ${{ github.event.inputs.build_number == '' }}
31
43
uses : docker/login-action@v3
32
44
with :
33
45
username : ${{ env.DOCKER_USERNAME }}
34
46
password : ${{ env.DOCKER_PASSWORD }}
35
47
- name : Maven Clean Verify
48
+ if : ${{ github.event.inputs.build_number == '' }}
36
49
run : mvn -B -ntp clean verify jib:build -Ddocker.image.tag=$BUILD_NUMBER
37
50
- name : Setup SSH Agent
38
51
uses : webfactory/ssh-agent@v0.9.0
39
52
with :
40
53
ssh-private-key : ${{ env.EC2_SSH_PRIVATE_KEY }}
41
54
- name : SSH To EC2 and Deploy
42
55
run : |
43
- ssh -o StrictHostKeyChecking=no ec2-user@$EC2_PUBLIC_IP_ADDRESS << EOF
56
+ ssh -o StrictHostKeyChecking=no ec2-user@$EC2_PUBLIC_IP_ADDRESS << ' EOF'
44
57
cd ~
45
- sed -i ' s|image: '"$ DOCKER_USERNAME"'/'"$ DOCKER_IMAGE_NAME"' :.*$|image: '"$ DOCKER_USERNAME"'/'"$ DOCKER_IMAGE_NAME"':'" $BUILD_NUMBER"'|' docker-compose.yml
58
+ sed -i " s|image: ${ DOCKER_USERNAME}/${ DOCKER_IMAGE_NAME} :.*$|image: ${ DOCKER_USERNAME}/${ DOCKER_IMAGE_NAME}: $BUILD_NUMBER|" docker-compose.yml
46
59
docker-compose pull
47
60
docker-compose up -d '$DOCKER_COMPOSE_APP_SERVICE_NAME'
48
61
docker image prune -f
49
62
docker ps
50
63
echo "$BUILD_NUMBER" > build-number.txt
51
- EOF
64
+ EOF
0 commit comments