Skip to content

Commit e570dbe

Browse files
committed
Add GitHub Actions workflow for building and deploying application
1 parent fa4b4fd commit e570dbe

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

.github/workflows/main.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Build and Deploy
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout Code
13+
uses: actions/checkout@v4
14+
15+
- name: Setup Java
16+
uses: actions/setup-java@v4
17+
with:
18+
distribution: 'corretto'
19+
java-version: '17'
20+
21+
- name: Build
22+
run: mvn clean install -DskipTests
23+
24+
- name: Login to Docker Hub
25+
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
26+
27+
- name: Build Docker Image
28+
run: docker build -t subproblem/fitness-tracking-app .
29+
30+
- name: Publish Image to Docker Hub
31+
run: docker push subproblem/fitness-tracking-app:latest
32+
33+
deploy:
34+
needs: build
35+
runs-on: aws-ec2-fitness-tracking-app
36+
steps:
37+
- name: Pull Image from Docker Hub
38+
run: docker pull subproblem/fitness-tracking-app:latest
39+
40+
- name: Delete Old Container
41+
run: docker rm -f springboot-fitness-tracking-app-container
42+
43+
- name: Run Docker Container
44+
run: docker run -d -p 8080:8080 --restart always --name springboot-fitness-tracking-app-container subproblem/simple-api:latest

0 commit comments

Comments
 (0)