forked from 2024GanzithonPYTHON/13_GANZI_BE
-
Notifications
You must be signed in to change notification settings - Fork 0
55 lines (55 loc) · 1.81 KB
/
CI-CD.yml
File metadata and controls
55 lines (55 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#name: Java CI/CD with Gradle and Docker
#
#on:
# push:
# branches: main
#
#jobs:
# build:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
#
# # JDK Setting
# - name: Set up JDK 17
# uses: actions/setup-java@v4
# with:
# java-version: '17'
# distribution: 'temurin'
#
# # Generate application-prod.yml
# - name: generate application-prod.yml
# env:
# APPLICATION_PROD: ${{ secrets.APPLICATION_PROD }}
# run: |
# echo $APPLICATION_PROD | base64 --decode > src/main/resources/application-prod.yml
#
# # Grant execute permission for gradlew
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
#
# - name: Build with Gradle (without test)
# run: ./gradlew clean build -x test --stacktrace
#
# ######## CD(Continuous Deployment) ########
# - name: Docker build & push to repository
# if: contains(github.ref, 'main')
# run: |
# docker login -u "${{ secrets.DOCKER_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}"
# docker build -f Dockerfile -t "${{ secrets.DOCKER_USERNAME }}"/talent-trade .
# docker push "${{ secrets.DOCKER_USERNAME }}"/talent-trade
#
# # Deploy
# - name: Deploy to EC2
# uses: appleboy/ssh-action@v0.1.6
# with:
# host: ${{ secrets.HOST_DOMAIN }}
# username: ${{ secrets.HOST_USERNAME }}
# key: ${{ secrets.PRIVATE_KEY }}
# script: |
# docker login -u "${{ secrets.DOCKER_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}"
# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)
# docker pull "${{ secrets.DOCKER_USERNAME }}"/talent-trade:latest
# docker compose up -d
# docker image prune -a -f