Skip to content

Commit 94c0699

Browse files
committed
chore: Continuous Delivery
1 parent d603526 commit 94c0699

File tree

4 files changed

+57
-46
lines changed

4 files changed

+57
-46
lines changed

.github/workflows/cd.yml

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CD Pipeline
1+
name: CD Workflow
22

33
on: [workflow_dispatch]
44

@@ -22,7 +22,7 @@ jobs:
2222
- name: Set up Docker
2323
uses: docker/setup-buildx-action@v3
2424

25-
- name: Log in to Docker Hub
25+
- name: Log in to Docker Hubx
2626
uses: docker/login-action@v3
2727
with:
2828
username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -34,41 +34,44 @@ jobs:
3434
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
3535
echo "VERSION=$VERSION" >> $GITHUB_ENV
3636
37-
- name: Log Extracted Version
37+
- name: Log Version
3838
run: |
3939
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 }}"
4340
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
4845
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
5350
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 }}
6057

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

.github/workflows/ci.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
name: CI Workflow
22

3-
on: [push]
3+
on:
4+
push:
5+
paths:
6+
- 'src/**'
7+
- '.github/workflows/**'
48

59
jobs:
610
build-and-test:
@@ -24,4 +28,11 @@ jobs:
2428
run: make build
2529

2630
- name: Run tests
27-
run: make test
31+
run: make test
32+
33+
- name: Upload Test Results
34+
if: always()
35+
uses: actions/upload-artifact@v4
36+
with:
37+
name: test-results
38+
path: target/surefire-reports/

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@ hs_err_pid*
3636
.settings/
3737

3838
# Maven
39-
**/target/
39+
**/target/
40+
41+
# Environment Variables
42+
.env

docker-compose.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,16 @@ services:
66
container_name: ecommerce
77
ports:
88
- "8080:8080"
9-
environment:
10-
SPRING_PROFILES_ACTIVE: prod
11-
TOPIC_ARN: arn:aws:sns:us-east-1:597088021509:order-events
12-
DB_URL: jdbc:postgresql://host.docker.internal:5432/ecommerce
13-
DB_USER: ecommerce
14-
DB_PASSWORD: password123
15-
DB_SCHEMA: orders
16-
AWS_REGION: us-east-1
9+
env_file:
10+
- etc/.env
1711
volumes:
1812
- ~/.aws/:/root/.aws:ro
1913
depends_on:
2014
db:
2115
condition: service_healthy
2216

2317
db:
24-
image: postgres:latest
18+
image: postgres:16.6-alpine3.21
2519
environment:
2620
POSTGRES_DB: ecommerce
2721
POSTGRES_USER: ecommerce

0 commit comments

Comments
 (0)