@@ -3,54 +3,54 @@ name: Java CI with Gradle
3
3
on :
4
4
pull_request :
5
5
branches : [ "main" ]
6
- types : [closed]
6
+ types : [ closed ]
7
7
8
8
jobs :
9
9
build :
10
- if : github.event.pull_request.merged == true
10
+ if : github.event.pull_request.merged == true
11
11
runs-on : ubuntu-latest
12
12
permissions :
13
13
contents : read
14
14
15
15
steps :
16
- - uses : actions/checkout@v4
17
- - name : Set up JDK 17
18
- uses : actions/setup-java@v4
19
- with :
20
- java-version : ' 17'
21
- distribution : ' temurin'
22
-
23
- - name : make application-prod.yml
24
- run : |
25
- cd ./src/main/resources
26
- touch ./application-prod.yml
27
- echo "${{ secrets.APPLICATION_PROD }}" > ./application-prod.yml
28
-
29
- - name : Setup Gradle
30
- uses : gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
31
-
32
- - name : Build with Gradle Wrapper
33
- run : ./gradlew build -x test
34
-
35
- - name : Docker build
36
- run : |
37
- docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
38
- docker build -t app .
39
- docker tag app ${{ secrets.DOCKER_USERNAME }}/maru:latest
40
- docker push ${{ secrets.DOCKER_USERNAME }}/maru:latest
41
-
42
- - name : Deploy
43
- uses : appleboy/ssh-action@master
44
- with :
45
- host : ${{ secrets.AWS_HOST }} # EC2 인스턴스 퍼블릭 DNS
46
- username : ec2-user
47
- key : ${{ secrets.AWS_ACCESS_SECRET_KEY }} # pem 키
48
- # 도커 작업
49
- script : |
50
- docker pull ${{ secrets.DOCKER_USERNAME }}/maru:latest
51
- docker stop $(docker ps -a -q)
52
- docker run -d --log-driver=syslog -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod ${{ secrets.DOCKER_USERNAME }}/maru:latest
53
- docker rm $(docker ps --filter 'status=exited' -a -q)
54
- docker image prune -a -f
16
+ - uses : actions/checkout@v4
17
+ - name : Set up JDK 17
18
+ uses : actions/setup-java@v4
19
+ with :
20
+ java-version : ' 17'
21
+ distribution : ' temurin'
22
+
23
+ - name : make application-prod.yml
24
+ run : |
25
+ cd ./src/main/resources
26
+ touch ./application-prod.yml
27
+ echo "${{ secrets.APPLICATION_PROD }}" > ./application-prod.yml
28
+
29
+ - name : Setup Gradle
30
+ uses : gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
31
+
32
+ - name : Build with Gradle Wrapper
33
+ run : ./gradlew build -x test
34
+
35
+ - name : Docker build
36
+ run : |
37
+ docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
38
+ docker build -t app .
39
+ docker tag app ${{ secrets.DOCKER_USERNAME }}/maru:latest
40
+ docker push ${{ secrets.DOCKER_USERNAME }}/maru:latest
41
+
42
+ - name : Deploy
43
+ uses : appleboy/ssh-action@master
44
+ with :
45
+ host : ${{ secrets.AWS_HOST }} # EC2 인스턴스 퍼블릭 DNS
46
+ username : ubuntu
47
+ key : ${{ secrets.AWS_ACCESS_SECRET_KEY }} # pem 키
48
+ # 도커 작업
49
+ script : |
50
+ docker pull ${{ secrets.DOCKER_USERNAME }}/maru:latest
51
+ docker stop $(docker ps -a -q)
52
+ docker run -d --log-driver=syslog -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod ${{ secrets.DOCKER_USERNAME }}/maru:latest
53
+ docker rm $(docker ps --filter 'status=exited' -a -q)
54
+ docker image prune -a -f
55
55
56
56
0 commit comments