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

flyway ci 검증 추가 #730

Merged
merged 72 commits into from
Nov 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e2cc1c6
chore: flyway 플러그인 추가
JJ503 Nov 1, 2023
d1819a4
ci: dev flyway ci 검증 설정 추가
JJ503 Nov 1, 2023
7d44f62
ci: flyway 검증 설정 파일 수정
JJ503 Nov 1, 2023
6ee470a
ci: flyway 검증 설정 수정
JJ503 Nov 1, 2023
4677a01
ci: flyway ci 설정 수정
JJ503 Nov 1, 2023
800be2f
ci: flyway ci 설정 수정
JJ503 Nov 1, 2023
61902fb
ci: flyway ci 검증 스크립트 수정
JJ503 Nov 1, 2023
39e96d4
ci: flyway ci 스크립트 수정
JJ503 Nov 1, 2023
607b5b2
ci: flyway ci 스크립트 수정
JJ503 Nov 1, 2023
de07d23
ci: flyway ci 검증 스크립트 수정
JJ503 Nov 1, 2023
02db6d8
ci: flyway ci 스크립트 수정
kwonyj1022 Nov 1, 2023
3bd176e
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 1, 2023
2abd09e
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 1, 2023
145fc64
ci: flyway ci 검증 스크립트 추가
kwonyj1022 Nov 1, 2023
cdc1b38
ci: flyway ci 검증 스크립트 수정
JJ503 Nov 1, 2023
518ff68
ci: flyway ci 검증 스크립트 수정
JJ503 Nov 2, 2023
aac49e1
ci: db url 수정
JJ503 Nov 2, 2023
54f5921
db url 수정
kwonyj1022 Nov 2, 2023
1c4f41a
ci: mysql 실행 시 sleep 추가
JJ503 Nov 2, 2023
3eaf825
ci: 잘못된 mysql url 수정
JJ503 Nov 2, 2023
338352d
ci: mysql 연결이 잘 됐는지 확인하는 로직 추가
JJ503 Nov 2, 2023
c0833f8
ci: mysql service 추가
kwonyj1022 Nov 2, 2023
226f155
ci: url에 포트 변경
kwonyj1022 Nov 2, 2023
742404f
ci: flyway ci 검증 스크립트 수정
JJ503 Nov 2, 2023
4eee187
ci: docker를 실행하는 로직 추가
JJ503 Nov 2, 2023
d83745b
ci: flyway ci 스크립트 수정
JJ503 Nov 2, 2023
d00ade2
ci: flyway ci 스크립트 수정
JJ503 Nov 2, 2023
e41c44a
ci: flyway 검증을 위한 docker-compose.yml 추가
kwonyj1022 Nov 2, 2023
3297c18
ci: docker 실행 명령어 추가
kwonyj1022 Nov 2, 2023
fc93fc3
ci: docker-compose 경로 지정 변경
kwonyj1022 Nov 2, 2023
3c186b3
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 2, 2023
7e6b1c5
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 2, 2023
9c4c11d
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 2, 2023
e48f4ff
ci: flyway ci 검증 스크립트 수정
kwonyj1022 Nov 2, 2023
819b8a1
ci: docker compose start 확인
JJ503 Nov 2, 2023
8e500d4
ci: $DATABASE_URL를 가져오는 지 확인
JJ503 Nov 2, 2023
e4e01a6
ci: $DATABASE_URL 출력 위치 수정
JJ503 Nov 2, 2023
16ba4a9
ci: flyway 검증 로직 추가
JJ503 Nov 2, 2023
2810db7
ci: docker 검증 로직 추가
JJ503 Nov 2, 2023
bce7faf
ci: 포트 수정
JJ503 Nov 2, 2023
d37fb65
ci: 포트 수정
JJ503 Nov 2, 2023
d5287f7
ci: talnet 제거
JJ503 Nov 2, 2023
568985e
ci: url 수정
JJ503 Nov 2, 2023
3dfd056
chore: flyway 의존성 추가
JJ503 Nov 2, 2023
d86ce1a
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
403d4d5
ci: 경로 수정
JJ503 Nov 2, 2023
bce506b
chore: build.gradle 스크립트 수정
JJ503 Nov 2, 2023
8bee7e9
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
9f88ee6
ci: migration 폴더에 수정 사항이 있어야지만 수행하도록 수정
JJ503 Nov 2, 2023
a09bc09
test: flyway ci 스크립트 수행 테스트
JJ503 Nov 2, 2023
d0083f3
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
94c9a56
ci: 경로 수정
JJ503 Nov 2, 2023
0b82461
test: flyway ci 스크립트 수행 테스트
JJ503 Nov 2, 2023
bed6a74
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
2d8c48c
ci: 경로 수정
JJ503 Nov 2, 2023
b0f854c
ci: 파일 명과 경로 수정
JJ503 Nov 2, 2023
979d6c2
ci: 경로 수정
JJ503 Nov 2, 2023
0eb0013
ci: 경로 수정
JJ503 Nov 2, 2023
ca69231
ci: 경로 수정
JJ503 Nov 2, 2023
f60ddab
test: flyway ci 제거 후 스크립트 수행 테스트
JJ503 Nov 2, 2023
012cd87
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
1f09f69
ci: 서비스를 통해 mysql 실행
JJ503 Nov 2, 2023
bb643fb
test: flyway ci 스크립트 수행 테스트
JJ503 Nov 2, 2023
0ae099e
Merge remote-tracking branch 'origin/env/728' into env/728
JJ503 Nov 2, 2023
04061ab
ci: 포트 번호 수정
JJ503 Nov 2, 2023
45ab6c8
ci: 필요없는 docker compose 파일 제거
JJ503 Nov 2, 2023
e6300fa
test: 오류가 나는 flyway 스크립트 수행 테스트
JJ503 Nov 2, 2023
a7a5815
test: 오류가 나는 flyway 스크립트 수행 테스트
JJ503 Nov 2, 2023
c79fd23
test: 테스트를 위한 스크립트 제거
JJ503 Nov 2, 2023
63af4ae
ci: pr 슬랙 메시지 중 리뷰어 항목 제거
JJ503 Nov 3, 2023
2324b82
ci: 검증 이름 수정
JJ503 Nov 3, 2023
ed6cfb9
ci: 메시지에 리뷰 요청에 대한 방법 추가
JJ503 Nov 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/backend_flyway.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: flyway 스크립트 검증

on:
pull_request:
paths:
- 'backend/ddang/src/main/resources/db/migration/**.sql'
types: [opened, reopened, synchronize]
branches: [develop-be]

permissions: write-all
jobs:
build:
if: contains(github.event.pull_request.labels.*.name, 'backend')
runs-on: ubuntu-latest
services:
mysql:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: testdb
MYSQL_USER: test
MYSQL_PASSWORD: password
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- uses: actions/checkout@v3

- name: settings java
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: cache gradle
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: chmod gradle
run: chmod +x backend/ddang/gradlew

- name: Wait for MySQL to be ready
run: |
while [ -z "$DATABASE_URL" ]; do
echo "Waiting for MySQL to be ready..."
export DATABASE_URL=$(echo "SELECT 'ready';" | mysql -h127.0.0.1 -P3306 -utest -ppassword testdb --skip-column-names 2>/dev/null)
sleep 1
done

- name: Create flyway.conf
run: |
touch flyway.conf
echo "flyway.driver=com.mysql.cj.jdbc.Driver" >> flyway.conf
echo "flyway.url=jdbc:mysql://127.0.0.1:3306/testdb" >> flyway.conf
echo "flyway.user=test" >> flyway.conf
echo "flyway.password=password" >> flyway.conf
echo "flyway.encoding=UTF-8" >> flyway.conf
echo "flyway.locations=filesystem:src/main/resources/db/migration" >> flyway.conf
echo "flyway.validateOnMigrate=true" >> flyway.conf
working-directory: ./backend/ddang

- name: flywayValidate
run: |
./gradlew -Dflyway.configFiles=flyway.conf flywayMigrate --stacktrace
working-directory: ./backend/ddang
30 changes: 3 additions & 27 deletions .github/workflows/backend_pr_decorator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,31 +61,6 @@ jobs:
echo "AUTHOR_NAME=${AUTHOR_NAME}" >> $GITHUB_OUTPUT
echo "AUTHOR_ID=${AUTHOR_ID}" >> $GITHUB_OUTPUT

- name: set variables
id: variables
run: |
REVIEWERS_GIT_ID='${{ toJson(github.event.pull_request.requested_reviewers[*].login) }}'
reviewers=$(echo "$REVIEWERS_GIT_ID" | jq -r '.[]')

REVIEWERS_SLACK_ID=""

for reviewer in $reviewers; do
echo "Reviewer: $reviewer"
if [ "$reviewer" == "apptie" ]; then
REVIEWERS_SLACK_ID+="<@${{ secrets.apptie_slack_id }}> "
elif [ "$reviewer" == "swonny" ]; then
REVIEWERS_SLACK_ID+="<@${{ secrets.swonny_slack_id }}> "
elif [ "$reviewer" == "JJ503" ]; then
REVIEWERS_SLACK_ID+="<@${{ secrets.JJ503_slack_id }}> "
elif [ "$reviewer" == "kwonyj1022" ]; then
REVIEWERS_SLACK_ID+="<@${{ secrets.kwonyj1022_slack_id }}> "
fi
done

echo "AUTHOR=${AUTHOR}" >> $GITHUB_OUTPUT
echo "REVIEWERS=${REVIEWERS}" >> $GITHUB_OUTPUT
echo "REVIEWERS_SLACK_ID=${REVIEWERS_SLACK_ID}" >> $GITHUB_OUTPUT

- name: slack notification
if: github.event_name == 'pull_request' && github.event.action != 'synchronize'
run: |
Expand All @@ -97,8 +72,7 @@ jobs:
SLACK_MESSAGE+="${{ github.event.pull_request.title }}"
SLACK_MESSAGE+="\n>\n>분석 결과\n>"
SLACK_MESSAGE+=":white_check_mark:"
SLACK_MESSAGE+="\n>\n>*리뷰어*\n>"
SLACK_MESSAGE+="${{ steps.variables.outputs.REVIEWERS_SLACK_ID }}"
SLACK_MESSAGE+="\n\n리뷰 요청은 스레드로 직접 멘션해주세요."
SLACK_MESSAGE+='"}}]}'

curl -X POST ${{ secrets.SLACK_WEBHOOK }} -d "${SLACK_MESSAGE}"
Expand All @@ -116,6 +90,7 @@ jobs:
SLACK_MESSAGE+="${{ github.event.pull_request.title }}"
SLACK_MESSAGE+="\n>\n>분석 결과\n>"
SLACK_MESSAGE+=":x:"
SLACK_MESSAGE+="\n\n리뷰 요청은 문제 해결 후 스레드로 직접 멘션해주세요."
SLACK_MESSAGE+='"}}]}'

curl -X POST ${{ secrets.SLACK_WEBHOOK }} -d "${SLACK_MESSAGE}"
Expand All @@ -133,6 +108,7 @@ jobs:
SLACK_MESSAGE+="${{ github.event.pull_request.title }}"
SLACK_MESSAGE+="\n>\n>분석 결과\n>"
SLACK_MESSAGE+=":black_square_for_stop:"
SLACK_MESSAGE+="\n\n리뷰 요청은 문제 해결 후 스레드로 직접 멘션해주세요."
SLACK_MESSAGE+='"}}]}'

curl -X POST ${{ secrets.SLACK_WEBHOOK }} -d "${SLACK_MESSAGE}"
10 changes: 10 additions & 0 deletions backend/ddang/build.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.flywaydb:flyway-mysql:9.16.0'
}
}

plugins {
id 'java'
id 'org.springframework.boot' version '3.0.8'
id 'io.spring.dependency-management' version '1.1.0'
id 'jacoco'
id 'org.asciidoctor.jvm.convert' version '3.3.2'
id 'org.flywaydb.flyway' version '9.16.0'
}

configurations {
Expand Down