name: Deploy (build on server) on: push: branches: [ "main" ] workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest permissions: contents: read steps: - name: Deploy via SSH uses: appleboy/ssh-action@v1.0.3 with: host: ${{ vars.SSH_HOST }} username: ${{ vars.SSH_USER }} key: ${{ secrets.SSH_KEY }} port: ${{ vars.SSH_PORT }} script: | set -e cd ${{ secrets.DEPLOY_PATH }} cat << 'ENVEOF' > .env ${{ secrets.DEPLOY_ENV_FILE }} ENVEOF # .env가 비어 있으면 중단 if [ ! -s .env ]; then echo ".env가 비어 있습니다. DEPLOY_ENV_FILE 설정을 확인하세요." exit 1 fi # Export variables from .env file set -a source .env set +a git fetch origin main git checkout main git pull --ff-only docker compose --env-file .env up -d --build