-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'BE/dev' into BE/feature/#442-cors
- Loading branch information
Showing
548 changed files
with
28,428 additions
and
2,608 deletions.
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,174 @@ | ||
name: Coduo Backend Production Server CD | ||
|
||
on: | ||
push: | ||
branches: [ "production" ] | ||
|
||
jobs: | ||
build: | ||
environment: production | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'corretto' | ||
|
||
- name: Setup Gradle | ||
uses: gradle/actions/setup-gradle@v3 | ||
with: | ||
cache-write-only: true | ||
|
||
- name: Grant Execute Permission For Gradlew | ||
run: chmod +x gradlew | ||
|
||
- name: Build with Gradle | ||
run: ./gradlew bootJar | ||
|
||
- name: Login to Docker Hub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_HUB_ID }} | ||
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | ||
|
||
- name: Image build and push | ||
run: | | ||
docker build --build-arg PROFILE=prod --build-arg DEPENDENCY=build/dependency -t ${{ secrets.DOCKER_REPO_NAME }}/springboot-app:test-latest --platform linux/arm64 . | ||
docker push ${{ secrets.DOCKER_REPO_NAME }}/springboot-app:test-latest | ||
- name: Upload docker-compose yaml script to artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-compose | ||
path: ${{ github.workspace }}/backend/be_app-docker-compose.yml | ||
|
||
deployA: | ||
environment: production | ||
runs-on: production-ec2-A-runner | ||
needs: build | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: Set docker-compose YAML script to runner | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-compose | ||
path: ${{ github.workspace }}/backend | ||
|
||
- name: Move docker-compose YAML | ||
run: | | ||
sudo mv be_app-docker-compose.yml ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/ | ||
- name: Extract secrets as .be_app-env file | ||
run: | | ||
cat <<EOF > ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env | ||
# Docker Hub info from Github Secrets | ||
DOCKER_REPO_NAME=${{ secrets.DOCKER_REPO_NAME }} | ||
# DB Configuration secrets info from Github Secrets | ||
MYSQL_DB_NAME=${{ secrets.MYSQL_DB_NAME }} | ||
MYSQL_TIME_ZONE=${{ secrets.MYSQL_TIME_ZONE }} | ||
DB_BINDING_PORT=${{ secrets.DB_BINDING_PORT }} | ||
DOCKER_DATA_PATH=${{ secrets.DOCKER_DATA_PATH }} | ||
MASTER_DB_URL=${{ secrets.MASTER_DB_URL }} | ||
MASTER_DB_USERNAME=${{ secrets.MASTER_DB_USERNAME }} | ||
MASTER_DB_PASSWORD=${{ secrets.MASTER_DB_PASSWORD }} | ||
SLAVE_DB_URL=${{ secrets.SLAVE_DB_URL }} | ||
SLAVE_DB_USERNAME=${{ secrets.SLAVE_DB_USERNAME }} | ||
SLAVE_DB_PASSWORD=${{ secrets.SLAVE_DB_PASSWORD }} | ||
DDL_AUTO=${{ secrets.DDL_AUTO }} | ||
# OAUTH & JWT | ||
CLIENT_ID=${{ secrets.CLIENT_ID }} | ||
CLIENT_SECRET=${{ secrets.CLIENT_SECRET }} | ||
CLIENT_REDIRECT_URI=${{ secrets.CLIENT_REDIRECT_URI }} | ||
JWT_KEY=${{ secrets.JWT_KEY}} | ||
# INSTANCE NAME | ||
INSTANCE_NAME=${{ secrets.INSTANCE_A_NAME }} | ||
# Server App | ||
SERVER_BINDING_PORT=${{ secrets.PRODUCTION_SERVER_BINDING_PORT }} | ||
SERVER_LOGS_PATH=${{ secrets.SERVER_LOGS_PATH }} | ||
EOF | ||
- name: Stop and remove existing containers | ||
run: | | ||
sudo docker-compose --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/be_app-docker-compose.yml down --rmi all | ||
- name: Deploy docker container | ||
run: | | ||
sudo docker-compose --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/be_app-docker-compose.yml up -d | ||
deployB: | ||
environment: production | ||
runs-on: production-ec2-B-runner | ||
needs: deployA | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: Set docker-compose YAML script to runner | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-compose | ||
path: ${{ github.workspace }}/backend | ||
|
||
- name: Move docker-compose YAML | ||
run: | | ||
sudo mv be_app-docker-compose.yml ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/ | ||
- name: waiting deployA complete | ||
run: | | ||
sudo ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/scheduler.sh | ||
- name: Extract secrets as .be_app-env file | ||
run: | | ||
cat <<EOF > ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env | ||
# Docker Hub info from Github Secrets | ||
DOCKER_REPO_NAME=${{ secrets.DOCKER_REPO_NAME }} | ||
# DB Configuration secrets info from Github Secrets | ||
MYSQL_DB_NAME=${{ secrets.MYSQL_DB_NAME }} | ||
MYSQL_TIME_ZONE=${{ secrets.MYSQL_TIME_ZONE }} | ||
DB_BINDING_PORT=${{ secrets.DB_BINDING_PORT }} | ||
DOCKER_DATA_PATH=${{ secrets.DOCKER_DATA_PATH }} | ||
MASTER_DB_URL=${{ secrets.MASTER_DB_URL }} | ||
MASTER_DB_USERNAME=${{ secrets.MASTER_DB_USERNAME }} | ||
MASTER_DB_PASSWORD=${{ secrets.MASTER_DB_PASSWORD }} | ||
SLAVE_DB_URL=${{ secrets.SLAVE_DB_URL }} | ||
SLAVE_DB_USERNAME=${{ secrets.SLAVE_DB_USERNAME }} | ||
SLAVE_DB_PASSWORD=${{ secrets.SLAVE_DB_PASSWORD }} | ||
DDL_AUTO=${{ secrets.DDL_AUTO }} | ||
# OAUTH & JWT | ||
CLIENT_ID=${{ secrets.CLIENT_ID }} | ||
CLIENT_SECRET=${{ secrets.CLIENT_SECRET }} | ||
CLIENT_REDIRECT_URI=${{ secrets.CLIENT_REDIRECT_URI }} | ||
JWT_KEY=${{ secrets.JWT_KEY}} | ||
# INSTANCE NAME | ||
INSTANCE_NAME=${{ secrets.INSTANCE_B_NAME }} | ||
# Server App | ||
SERVER_BINDING_PORT=${{ secrets.PRODUCTION_SERVER_BINDING_PORT }} | ||
SERVER_LOGS_PATH=${{ secrets.SERVER_LOGS_PATH }} | ||
EOF | ||
- name: Stop and remove existing containers | ||
run: | | ||
sudo docker-compose --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/be_app-docker-compose.yml down --rmi all | ||
- name: Deploy docker container | ||
run: | | ||
sudo docker-compose --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/.be_app-env -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/be_app-docker-compose.yml up -d |
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
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
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,63 @@ | ||
name: Coduo Frontend CI | ||
|
||
on: | ||
pull_request: | ||
branches: [FE/dev] | ||
|
||
jobs: | ||
test-and-lint: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
shell: bash | ||
working-directory: ./frontend | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "22.4.1" | ||
|
||
- name: Install dependencies | ||
run: yarn install | ||
|
||
- name: Clear test cache | ||
run: yarn jest --clearCache | ||
|
||
- name: Run tests | ||
run: yarn test | ||
|
||
- name: Run lint | ||
run: yarn lint | ||
|
||
- name: Run lint:css | ||
run: yarn lint:css | ||
|
||
- name: Run build | ||
run: yarn build | ||
|
||
publish-storybook: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./frontend | ||
needs: test-and-lint | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "22.4.1" | ||
|
||
- name: Install dependencies | ||
run: yarn install | ||
|
||
- name: Publish storybook | ||
run: npx chromatic --project-token=${{ secrets.CHROMATIC_PROJECT_TOKEN }} --storybook-config-dir=.storybook |
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 |
---|---|---|
@@ -1,6 +1,6 @@ | ||
name: PULL REQUEST | ||
name: pull request | ||
|
||
on: | ||
on: | ||
pull_request: | ||
types: [opened, reopened] | ||
|
||
|
@@ -11,11 +11,11 @@ jobs: | |
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ vars.SLACK_BRANCH}} | ||
ref: ${{vars.SLACK_BRANCH}} | ||
|
||
- name: Install jq | ||
run: sudo apt-get install jq | ||
|
||
- name: Decode base64 and parse JSON | ||
run: | | ||
echo ${{secrets.SLACK_CREW_INFO_JSON}} | base64 --decode > decoded.json | ||
|
@@ -38,11 +38,11 @@ jobs: | |
} | ||
console.log(`::set-output name=names::${outputString.trim()}`); | ||
console.log(`::set-output name=requester::${requester.name}`); | ||
- name: pull_request_noifiy | ||
id: pull_request_notify | ||
uses: slackapi/[email protected] | ||
with: | ||
with: | ||
channel-id: ${{secrets.SLACK_BE_REVIEW_CHANNEL}} | ||
payload: | | ||
{ | ||
|
@@ -52,7 +52,7 @@ jobs: | |
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*📬${{steps.extract_receiver_list.outputs.requester}}님의 PR이 도착했어요.📬*\n\n\n⚡⚡⚡⚡⚡⚡⚡⚡⚡\n*⚡<${{github.event.pull_request.html_url}} | [${{steps.extract_receiver_list.outputs.requester}}] 혼구멍 내러가기~>⚡* \n⚡⚡⚡⚡⚡⚡⚡⚡⚡\n\n _혼내줄 사람들: ${{steps.extract_receiver_list.outputs.names}}_ \n" | ||
"text": "*📬${{steps.extract_receiver_list.outputs.requester}}님의 PR이 도착했어요.📬*\n\n\n⚡⚡⚡⚡⚡⚡⚡⚡⚡\n*⚡<${{github.event.pull_request.html_url}}| [${{steps.extract_receiver_list.outputs.requester}}] 혼구멍 내러가기~>⚡* \n⚡⚡⚡⚡⚡⚡⚡⚡⚡\n\n _혼내줄 사람들: ${{steps.extract_receiver_list.outputs.names}}_ \n" | ||
} | ||
}, | ||
{ | ||
|
@@ -62,7 +62,7 @@ jobs: | |
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | ||
|
||
- name: Append Thread info to JSON | ||
run: | | ||
NEW_THREAD_JSON=$(jq -n \ | ||
|
@@ -73,20 +73,20 @@ jobs: | |
mkdir -p .github/logs | ||
cd .github/logs | ||
if [ -f thread_be.json ]; then | ||
jq --argjson new "$NEW_THREAD_JSON" '. += [$new]' thread_be.json > thread_be.tmp.json | ||
mv thread_be.tmp.json thread_be.json | ||
if [ -f thread_fe.json ]; then | ||
jq --argjson new "$NEW_THREAD_JSON" '. += [$new]' thread_fe.json > thread_fe.tmp.json | ||
mv thread_fe.tmp.json thread_fe.json | ||
else | ||
echo "[$NEW_THREAD_JSON]" > thread_be.json | ||
echo "[$NEW_THREAD_JSON]" > thread_fe.json | ||
fi | ||
- name: Commit updated thread_be.json | ||
- name: Commit updated thread_fe.json | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "GitHub Actions" | ||
git add .github/logs/thread_be.json | ||
git commit -m "Update thread_be.json with new thread data" | ||
git add .github/logs/thread_fe.json | ||
git commit -m "Update thread_fe.json with new thread data" | ||
git push origin ${{ vars.SLACK_BRANCH }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
Oops, something went wrong.