1
- name : CD Pipeline
1
+ name : CD Workflow
2
2
3
3
on : [workflow_dispatch]
4
4
22
22
- name : Set up Docker
23
23
uses : docker/setup-buildx-action@v3
24
24
25
- - name : Log in to Docker Hub
25
+ - name : Log in to Docker Hubx
26
26
uses : docker/login-action@v3
27
27
with :
28
28
username : ${{ secrets.DOCKERHUB_USERNAME }}
@@ -34,41 +34,44 @@ jobs:
34
34
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
35
35
echo "VERSION=$VERSION" >> $GITHUB_ENV
36
36
37
- - name : Log Extracted Version
37
+ - name : Log Version
38
38
run : |
39
39
echo "Extracted Version: ${{ env.VERSION }}"
40
- echo "aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}"
41
- echo "aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}"
42
- echo "aws-region: ${{ vars.AWS_REGION }}"
43
40
44
- # - name: Build and Tag Docker Image
45
- # run: |
46
- # docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ github.sha }} .
47
- # docker tag ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest
41
+ - name : Build and Tag Docker Image
42
+ run : |
43
+ docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ env.VERSION }} .
44
+ docker tag ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest
48
45
49
- # - name: Push Docker Image to Docker Hub
50
- # run: |
51
- # docker push ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ github.sha }}
52
- # docker push ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest
46
+ - name : Push Docker Image to Docker Hub
47
+ run : |
48
+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:${{ env.VERSION }}
49
+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest
53
50
54
- # - name: Configure AWS Credentials
55
- # uses: aws-actions/configure-aws-credentials@v4
56
- # with:
57
- # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
58
- # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
59
- # aws-region: us-east-1
51
+ - name : Configure AWS Credentials
52
+ uses : aws-actions/configure-aws-credentials@v4
53
+ with :
54
+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
55
+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
56
+ aws-region : ${{ vars.AWS_REGION }}
60
57
61
- # - name: Deploy to EC2 via SSM
62
- # run: |
63
- # aws ssm send-command \
64
- # --document-name "AWS-RunShellScript" \
65
- # --targets "Key=instanceIds,Values=${{ secrets.EC2_INSTANCE_ID }}" \
66
- # --parameters 'commands=[
67
- # "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest",
68
- # "docker stop e-commerce || true",
69
- # "docker rm e-commerce || true",
70
- # "docker run -d --name e-commerce -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest"
71
- # ]' \
72
- # --timeout-seconds 600 \
73
- # --comment "Deploying latest Docker image to EC2" \
74
- # --output text
58
+ - name : Deploy to EC2 via SSM
59
+ run : |
60
+ aws ssm send-command \
61
+ --document-name "AWS-RunShellScript" \
62
+ --targets "Key=instanceIds,Values=${{ secrets.EC2_INSTANCE_ID }}" \
63
+ --parameters 'commands=[
64
+ "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest",
65
+ "docker stop e-commerce || true",
66
+ "docker rm e-commerce || true",
67
+ "docker run -d --name e-commerce \
68
+ -p 8080:8080 \
69
+ -e DB_HOST=${{ secrets.DB_HOST }} \
70
+ -e DB_NAME=${{ secrets.DB_NAME }} \
71
+ -e DB_USER=${{ secrets.DB_USER }} \
72
+ -e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
73
+ ${{ secrets.DOCKERHUB_USERNAME }}/e-commerce:latest"
74
+ ]' \
75
+ --timeout-seconds 600 \
76
+ --comment "Deploying latest Docker image to EC2" \
77
+ --output text
0 commit comments