diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..a802482 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,49 @@ +name: 배포 + +on: + push: + branches: [main, deploy/33-BE_cd] + workflow_dispatch: + +env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.3.0 + + - name: execute remote ssh + uses: appleboy/ssh-action@master + env: + REMOTE_SSH_PASSWORD: ${{ secrets.REMOTE_SSH_PASSWORD }} + with: + host: ${{ secrets.REMOTE_SSH_HOST }} + username: ${{ secrets.REMOTE_SSH_USERNAME }} + password: ${{ secrets.REMOTE_SSH_PASSWORD }} + port: ${{ secrets.REMOTE_SSH_PORT }} + envs: BRANCH_NAME, REMOTE_SSH_PASSWORD + script_stop: true + script: | + cd workspaces/1day1baek/back + + git reset --hard HEAD + + cur_git_branch=$(git branch --show-current) + if [ "$cur_git_branch" != "$BRANCH_NAME" ]; then + git switch main + fi + git pull origin main + + server_process=$(ps -ef | grep OneDayOneBaek-0.0.1-SNAPSHOT.jar$ | grep java) + server_pid=(${server_process// / }) + server_pid=${server_pid[1]} + + if [ -n "$server_pid" ]; then + echo "existed server pid : $server_pid" + + echo $REMOTE_SSH_PASSWORD | sudo -S kill -9 $server_pid + fi + + ./run_sandbox.sh \ No newline at end of file