-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: 릴리즈 태그를 인풋으로 받아 해당 버전으로 프로덕션 서버 배포
- Loading branch information
1 parent
f266e64
commit c0e9f43
Showing
1 changed file
with
37 additions
and
64 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 |
---|---|---|
@@ -1,77 +1,50 @@ | ||
name: Production Server manual deploy | ||
|
||
run-name: ${{ github.actor }} is manually deploying Production Server | ||
name: Manual Deploy to Production | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
# jobs: | ||
# prod_deploy: | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v2 | ||
# with: | ||
# ref: ${{ github.event.release.tag_name }} | ||
# - name: Get Release Notes | ||
# run: | | ||
# echo “Release Tag: ${{ github.event.release.tag_name }}” | ||
# echo “Release Name: ${{ github.event.release.name }}” | ||
|
||
# - name: Install sshpass | ||
# run: sudo apt-get install -y sshpass | ||
|
||
# - name: ProdServer CD | ||
# env: | ||
# SSH_DEVELOPER_PASSWORD: ${{secrets.PROD_SSH_DEVELOPER_PASSWORD}} | ||
# GITHUB_CLIENT_ID: ${{ secrets.PROD_GITHUB_CLIENT_ID }} | ||
# GITHUB_CLIENT_SECRETS: ${{ secrets.PROD_GITHUB_CLIENT_SECRETS }} | ||
# DATABASE_HOST: ${{secrets.PROD_DATABASE_HOST}} | ||
# DATABASE_PORT: ${{secrets.PROD_DATABASE_PORT}} | ||
# DATABASE_USER: ${{ secrets.PROD_DATABASE_USER }} | ||
# DATABASE_PASSWORD: ${{ secrets.PROD_DATABASE_PASSWORD }} | ||
# DATABASE_NAME: ${{ secrets.PROD_DATABASE_NAME }} | ||
# JWT_SECRET: ${{ secrets.PROD_JWT_SECRET }} | ||
# run: | | ||
# sshpass -p $SSH_DEVELOPER_PASSWORD \ | ||
# ssh -o "StrictHostKeyChecking=no" [email protected] \ | ||
# "cd /home/developer/web10-Lesser && git fetch --all && git checkout ${{github.event.release.tag_name}} && \ | ||
# GITHUB_CLIENT_ID=$GITHUB_CLIENT_ID \ | ||
# GITHUB_CLIENT_SECRETS=$GITHUB_CLIENT_SECRETS \ | ||
# DATABASE_HOST=$DATABASE_HOST \ | ||
# DATABASE_PORT=$DATABASE_PORT \ | ||
# DATABASE_USER=$DATABASE_USER \ | ||
# DATABASE_PASSWORD=$DATABASE_PASSWORD \ | ||
# DATABASE_NAME=$DATABASE_NAME \ | ||
# JWT_SECRET=$JWT_SECRET \ | ||
# docker compose -f docker-compose.yml up -d --build" | ||
inputs: | ||
release_tag: | ||
description: 'Release tag to deploy' | ||
required: true | ||
|
||
jobs: | ||
deploy: | ||
prod_deploy: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Get latest release | ||
id: get_release | ||
uses: actions/github-script@v3 | ||
with: | ||
script: | | ||
const { data: latestRelease } = await github.repos.getLatestRelease({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
}); | ||
return latestRelease; | ||
ref: ${{ github.event.inputs.release_tag }} | ||
|
||
- name: Set release note | ||
- name: Get Release Notes | ||
run: | | ||
echo "RELEASE_NOTE<<EOF" >> $GITHUB_ENV | ||
echo "${{ steps.get_release.outputs.result.body }}" >> $GITHUB_ENV | ||
echo "EOF" >> $GITHUB_ENV | ||
- name: Deploy to server | ||
echo "Release Tag: ${{ github.event.inputs.release_tag }}" | ||
echo "Release Name: $(git tag -l --format='%(contents)' ${{ github.event.inputs.release_tag }})" | ||
- name: Install sshpass | ||
run: sudo apt-get install -y sshpass | ||
|
||
- name: ProdServer CD | ||
env: | ||
SSH_DEVELOPER_PASSWORD: ${{secrets.PROD_SSH_DEVELOPER_PASSWORD}} | ||
GITHUB_CLIENT_ID: ${{ secrets.PROD_GITHUB_CLIENT_ID }} | ||
GITHUB_CLIENT_SECRETS: ${{ secrets.PROD_GITHUB_CLIENT_SECRETS }} | ||
DATABASE_HOST: ${{secrets.PROD_DATABASE_HOST}} | ||
DATABASE_PORT: ${{secrets.PROD_DATABASE_PORT}} | ||
DATABASE_USER: ${{ secrets.PROD_DATABASE_USER }} | ||
DATABASE_PASSWORD: ${{ secrets.PROD_DATABASE_PASSWORD }} | ||
DATABASE_NAME: ${{ secrets.PROD_DATABASE_NAME }} | ||
JWT_SECRET: ${{ secrets.PROD_JWT_SECRET }} | ||
run: | | ||
echo "Deploying release note to server..." | ||
# 여기에 서버에 릴리즈 노트를 적용하는 로직을 추가합니다. | ||
echo "Release note deployed successfully." | ||
sshpass -p $SSH_DEVELOPER_PASSWORD \ | ||
ssh -o "StrictHostKeyChecking=no" [email protected] \ | ||
"cd /home/developer/web10-Lesser && git fetch --all && git checkout ${{ github.event.inputs.release_tag }} && \ | ||
GITHUB_CLIENT_ID=$GITHUB_CLIENT_ID \ | ||
GITHUB_CLIENT_SECRETS=$GITHUB_CLIENT_SECRETS \ | ||
DATABASE_HOST=$DATABASE_HOST \ | ||
DATABASE_PORT=$DATABASE_PORT \ | ||
DATABASE_USER=$DATABASE_USER \ | ||
DATABASE_PASSWORD=$DATABASE_PASSWORD \ | ||
DATABASE_NAME=$DATABASE_NAME \ | ||
JWT_SECRET=$JWT_SECRET \ | ||
docker compose -f docker-compose.yml up -d --build" |