-
Notifications
You must be signed in to change notification settings - Fork 0
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
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
6925b48
feat: cicd 테스트
hanueleee 1734d2e
fix: Add known hosts 단계 추가
hanueleee 24da70a
fix: 디렉토리명 수정
hanueleee bf1261f
feat: gradle 캐싱 단계 추가
hanueleee e905647
fix: deploy.sh 파일 권한 설정 단계 추가
hanueleee c149ff8
fix: deploy.sh 파일 권한 설정 수정
hanueleee afa2968
feat: submodule 관련 설정 추가
hanueleee 2285e38
feat: 디버깅용 단계 추가
hanueleee f444d87
feat: main브랜치에 push시 작동하도록 수정
hanueleee 144ea07
feat: slack 알림 기능 추가
hanueleee 8ff8d6e
fix: PR TEST파일 에러 처리
hanueleee da2ea73
fix: PR TEST파일 경로 설정 수정
hanueleee File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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 }} |
This file was deleted.
Oops, something went wrong.
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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jdk 21로 바꾸면 이것도 바꿔야겠네요??