Merge pull request #105 from HyeJiJUN11/feature/104-diary #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: master ๋ฐ weekly ๋ธ๋์น merge ์ CI/CD ํ์ดํ๋ผ์ธ | |
on: | |
push: | |
branches: | |
- 'master' | |
- 'weekly/**' | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: ํ๋ก์ ํธ ์ฝ๋๋ฅผ CI ์๋ฒ๋ก ์ฎ๊ฒจ์ค๊ธฐ | |
uses: actions/checkout@v4 | |
- name: Gradle ์บ์ ์ค์ | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: JDK 21 ์ค์น | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: '21' | |
- name: FCM ์๋น์ค ๊ณ์ ํค ํ์ผ ์์ฑ | |
run: | | |
echo '${{ secrets.FCM_SERVICE_ACCOUNT_KEY }}' > ./src/main/resources/everymoment.json | |
- name: AWS S3 ๊ด๋ จ ์ ๋ณด๋ฅผ ์ค์ ํ์ผ์ ์ฃผ์ | |
uses: microsoft/variable-substitution@v1 | |
with: | |
files: ./src/main/resources/application-prod.yml | |
env: | |
spring.datasource.url: ${{ secrets.RDS_URL }} | |
spring.datasource.username: ${{ secrets.RDS_USERNAME }} | |
spring.datasource.password: ${{ secrets.RDS_PASSWORD }} | |
aws.s3.bucket: ${{ secrets.AWS_S3_BUCKET }} | |
aws.s3.accessKey: ${{ secrets.AWS_S3_ACCESS_KEY }} | |
aws.s3.secretKey: ${{ secrets.AWS_S3_SECRET_KEY }} | |
jwt.secret: ${{ secrets.JWT_SECRET }} | |
- name: ๋น๋๋ก ํ ์คํธ ์ํ ๋ฐ Jar ํ์ผ ์์ฑ | |
run: | | |
chmod +x ./gradlew | |
./gradlew clean build --build-cache | |
- run: mv build/libs/*SNAPSHOT.jar ./app.jar | |
- name: ์์ฑ๋ Jar ํ์ผ EC2 ์๋ฒ๋ก ์ ์กํ๊ธฐ | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_KEY }} | |
script_stop: true | |
overwrite: true | |
source: app.jar | |
target: /home/ubuntu/project | |
- name: EC2 ์๋ฒ์ ์ ์ํ๊ธฐ(SSH) ๋ฐ ์คํ๋ง ์๋ฒ ์คํ | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_KEY }} | |
script_stop: true | |
script: | | |
cd ./project | |
sudo fuser -k -n tcp 8080 || true | |
nohup java -Duser.timezone=Asia/Seoul -jar app.jar > ./output.log 2>&1 & |