name: Deploy Application on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Setup SSH run: | echo "Setting up SSH..." mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa echo "SSH key setup complete" ls -la ~/.ssh/id_rsa - name: Deploy shell: bash env: SSH_USER: ${{ secrets.SSH_USER }} SSH_HOST: ${{ secrets.SSH_HOST }} SSH_PORT: ${{ secrets.SSH_PORT }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} run: | echo "Starting deployment..." echo "Debug: User=$SSH_USER Host=$SSH_HOST Port=$SSH_PORT" if [ -z "$SSH_USER" ] || [ -z "$SSH_HOST" ] || [ -z "$SSH_PORT" ]; then echo "Error: Required SSH variables are not set" exit 1 fi DEST="${SSH_USER}@${SSH_HOST}" echo "Connecting to $DEST" ssh -i ~/.ssh/id_rsa \ -p "${SSH_PORT}" \ -o StrictHostKeyChecking=no \ "${DEST}" \ "cd ${DEPLOY_PATH} && \ git pull && \ docker compose up -d --build"