name: Deploy to Proxmox LXC on: push: branches: - main jobs: deploy: runs-on: ubuntu-24.04 steps: - name: Configure SSH key env: DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }} DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} DEPLOY_PORT: ${{ secrets.DEPLOY_PORT }} run: | set -euo pipefail mkdir -p ~/.ssh chmod 700 ~/.ssh # Accept raw private key or base64-encoded private key in DEPLOY_SSH_KEY. if printf "%s" "$DEPLOY_SSH_KEY" | grep -q "BEGIN OPENSSH PRIVATE KEY"; then printf "%s\n" "$DEPLOY_SSH_KEY" | tr -d '\r' > ~/.ssh/id_ed25519 else printf "%s" "$DEPLOY_SSH_KEY" | tr -d '\r' | base64 -d > ~/.ssh/id_ed25519 fi chmod 600 ~/.ssh/id_ed25519 ssh-keygen -y -f ~/.ssh/id_ed25519 >/dev/null ssh-keyscan -p "${DEPLOY_PORT:-22}" -H "$DEPLOY_HOST" >> ~/.ssh/known_hosts - name: Deploy latest main env: DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PORT: ${{ secrets.DEPLOY_PORT }} run: | set -euo pipefail ssh -p "${DEPLOY_PORT:-22}" \ -i ~/.ssh/id_ed25519 \ "$DEPLOY_USER@$DEPLOY_HOST" \ "/usr/local/bin/deploy-go-microservices.sh"