Skip to content

Commit

Permalink
Merge branch 'BE/dev' into BE/feature/#442-cors
Browse files Browse the repository at this point in the history
  • Loading branch information
koust6u authored Oct 14, 2024
2 parents f3f4361 + 7e3d30d commit 60add02
Show file tree
Hide file tree
Showing 548 changed files with 28,428 additions and 2,608 deletions.
174 changes: 174 additions & 0 deletions .github/workflows/be_cd-production.yml
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
27 changes: 15 additions & 12 deletions .github/workflows/be_cd-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:

deploy:
environment: test
runs-on: coduo_runner_test-server
runs-on: test-ec2-runner
needs: build
defaults:
run:
Expand All @@ -75,21 +75,24 @@ jobs:
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 }}
DB_URL=${{ secrets.DB_URL }}
DB_USERNAME=${{ secrets.DB_USERNAME }}
DB_PASSWORD=${{ secrets.DB_PASSWORD }}
MASTER_DB_URL=${{ secrets.TEST_SERVER_DB_URL }}
MASTER_DB_USERNAME=${{ secrets.TEST_SERVER_DB_USERNAME }}
MASTER_DB_PASSWORD=${{ secrets.TEST_SERVER_DB_PASSWORD }}
SLAVE_DB_URL=${{ secrets.TEST_SERVER_DB_URL }}
SLAVE_DB_USERNAME=${{ secrets.TEST_SERVER_DB_USERNAME }}
SLAVE_DB_PASSWORD=${{ secrets.TEST_SERVER_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 }}
CLIENT_ID=${{ secrets.TEST_CLIENT_ID }}
CLIENT_SECRET=${{ secrets.TEST_CLIENT_SECRET }}
CLIENT_REDIRECT_URI=${{ secrets.TEST_CLIENT_REDIRECT_URI }}
JWT_KEY=${{ secrets.JWT_KEY}}
# Sticky Synchronize
INSTANCE_NAME=${{ secrets.INSTANCE_A_NAME }}
# Server App
SERVER_BINDING_PORT=${{ secrets.SERVER_BINDING_PORT }}
SERVER_LOGS_PATH=${{ secrets.SERVER_LOGS_PATH }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/be_ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Coduo Backend Test Server CI
name: Coduo Backend Production Server CI

on:
pull_request:
branches: [ "BE/dev", "BE/test" ]
branches: [ "BE/dev", "BE/test", "production" ]

jobs:
build-and-test:
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/fe-CI.yml
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
34 changes: 17 additions & 17 deletions .github/workflows/pull_request.yml
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]

Expand All @@ -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
Expand All @@ -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: |
{
Expand All @@ -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"
}
},
{
Expand All @@ -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 \
Expand All @@ -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 }}
Loading

0 comments on commit 60add02

Please sign in to comment.