Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 깃허브액션을 이용한 CI/CD 구현 #2

Merged
merged 12 commits into from
Jan 15, 2024
112 changes: 112 additions & 0 deletions .github/workflows/cicd-be.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Backend CI/CD

on:
push:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out Repository
uses: actions/checkout@v3
with:
token: ${{ secrets.ACTION_TOKEN }}
submodules: true

- name: Display first three lines of application.yml (debug)
run: head -n 3 src/main/resources/application.yml

- name: Set up JDK11
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
Comment on lines +20 to +24
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jdk 21로 바꾸면 이것도 바꿔야겠네요??


- 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: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew clean build

- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: cicdsample
path: build/libs/*.jar

- name: Slack notification when build fail
if: failure()
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: [CI/CD] 백엔드 빌드 실패
fields: repo, message, commit, author, action, eventName, ref, workflow, job, took
env:
SLACK_COLOR: '#FF2D00'
SLACK_USERNAME: 'Github Action'
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CICD }}

deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: cicdsample

- name: Setup SSH
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

- name: Add known hosts
run: |
ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts

- name: SCP transfer
run: scp *.jar ${{ secrets.SSH_USER }}@${{ secrets.SERVER_IP }}:~/deploy

- name: Execute remote shell script
run: |
ssh ${{ secrets.SSH_USER }}@${{ secrets.SERVER_IP }} "chmod +x ./deploy.sh"
ssh ${{ secrets.SSH_USER }}@${{ secrets.SERVER_IP }} "./deploy.sh"

- name: Slack notification when deploy fail
if: failure()
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: [CI/CD] 백엔드 배포 실패
fields: repo, message, commit, author, action, eventName, ref, workflow, job, took
env:
SLACK_COLOR: '#FF2D00'
SLACK_USERNAME: 'Github Action'
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CICD }}

- name: Slack notification when deploy success
if: success()
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: [CI/CD] 백엔드 배포 성공
fields: repo, message, commit, author, action, eventName, ref, workflow, job, took
env:
SLACK_COLOR: '#0019F4'
SLACK_USERNAME: 'Github Action'
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CICD }}
76 changes: 0 additions & 76 deletions .github/workflows/test-fe.yml

This file was deleted.

9 changes: 2 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ on:
branches:
- main
- develop
paths:
- '.github/**'
- 'backend/**'

jobs:
test:
Expand Down Expand Up @@ -39,11 +36,9 @@ jobs:
${{ runner.os }}-gradle-

- name: Gradle 권한 부여
working-directory: backend/
run: chmod +x ./gradlew
run: chmod +x gradlew

- name: 테스트 실행
working-directory: backend/
run: ./gradlew --info test

- name: 테스트 결과 PR에 코멘트 등록
Expand Down Expand Up @@ -72,5 +67,5 @@ jobs:
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_TITLE: Build Failure - ${{ github.event.pull_request.title }}
SLACK_MESSAGE: PR Url - ${{ github.event.pull_request.url }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_PR_TEST }}
if: failure()
Loading