Skip to content

Commit

Permalink
feat: 깃허브액션을 이용한 CI/CD 구현 (#2)
Browse files Browse the repository at this point in the history
* feat: cicd 테스트

* fix: Add known hosts 단계 추가

* fix: 디렉토리명 수정

* feat: gradle 캐싱 단계 추가

* fix: deploy.sh 파일 권한 설정 단계 추가

* fix: deploy.sh 파일 권한 설정 수정

* feat: submodule 관련 설정 추가

* feat: 디버깅용 단계 추가

* feat: main브랜치에 push시 작동하도록 수정

* feat: slack 알림 기능 추가

* fix: PR TEST파일 에러 처리

* fix: PR TEST파일 경로 설정 수정
  • Loading branch information
hanueleee authored Jan 15, 2024
1 parent 75c834d commit 735bf60
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 83 deletions.
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'

- 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()

0 comments on commit 735bf60

Please sign in to comment.