Skip to content

Clean up print

Clean up print #128

Workflow file for this run

name: Deploy and Sync Changed Files
on:
push:
branches:
- master # master 브랜치에 푸시될 때 트리거
pull_request:
branches:
- master # master 브랜치에 PR이 열릴 때 트리거
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10.12' # Python 3.10.12 버전 설정
- name: Run setup script
run: |
bash setup.sh
- name: Add SSH key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to Server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_HOST: ${{ secrets.SERVER_HOST }}
SERVER_USER: ${{ secrets.SERVER_USER }}
PROJECT_DIR: ${{ secrets.PROJECT_DIR }}
run: |
echo "Starting deployment..."
echo "SERVER_HOST: $SERVER_HOST"
echo "SERVER_USER: $SERVER_USER"
echo "PROJECT_DIR: $PROJECT_DIR"
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST << 'EOF'
cd $PROJECT_DIR # 실제 배포할 프로젝트 경로
echo "Current directory: $(pwd)"
cd ${{ secrets.PROJECT_DIR }}
echo "Current directory: $(pwd)"
git fetch --all && git reset --hard origin/master
git pull origin master
source venv/bin/activate
# setup.sh 스크립트 실행
if [ -f setup.sh ]; then
echo "Running setup.sh in $PROJECT_DIR..."
bash setup.sh
fi
echo "Deployment completed in $PROJECT_DIR."
EOF
sync_branches:
needs: deploy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Git user
run: |
git config user.name "seunghoon shin"
git config user.email "[email protected]"
- name: Get list of changed files
id: changed-files
run: |
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r HEAD)
echo "CHANGED_FILES<<EOF" >> $GITHUB_ENV
echo "$CHANGED_FILES" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Sync changed files with test branch
run: |
git checkout test
for file in $(echo "$CHANGED_FILES" | tr '\n' ' '); do
git checkout master -- "$file"
done
if ! git diff-index --quiet HEAD; then
git commit -m "Sync changed files from master to test"
git push origin test
else
echo "No changes to commit"
fi
- name: Sync changed files with dev branch
run: |
git checkout dev
for file in $(echo "$CHANGED_FILES" | tr '\n' ' '); do
git checkout master -- "$file"
done
if ! git diff-index --quiet HEAD; then
git commit -m "Sync changed files from master to dev"
git push origin dev
else
echo "No changes to commit"
fi