diff --git a/.gitea/workflows/deploy-main.yml b/.gitea/workflows/deploy-main.yml index 1181951..b52bdb9 100644 --- a/.gitea/workflows/deploy-main.yml +++ b/.gitea/workflows/deploy-main.yml @@ -11,6 +11,9 @@ jobs: - ubuntu-latest env: PROJECT_DIR: /home/act_runner/temp/tspt + GIT_REPO_URL: https://git.mayo.llc/yangli/worldshine-redesign.git + GIT_USERNAME: ${{ secrets.GITEA_USERNAME }} + GIT_PASSWORD: ${{ secrets.GITEA_PASSWORD }} REMOTE_HOST: 34.232.175.208 REMOTE_USER: rocky SSH_KEY: /home/act_runner/ssh-certs/charlie_ws.pem @@ -20,13 +23,61 @@ jobs: BEFORE_SHA: ${{ github.event.before }} AFTER_SHA: ${{ github.sha }} steps: + - name: Ensure project checkout exists + run: | + set -e + mkdir -p "$PROJECT_DIR" + cd "$PROJECT_DIR" + + if [ ! -d ".git" ]; then + if [ -n "$(ls -A . 2>/dev/null)" ]; then + echo "Project dir exists but is not a git repo and not empty: $PROJECT_DIR" + exit 1 + fi + + if [ -z "$GIT_USERNAME" ] || [ -z "$GIT_PASSWORD" ]; then + echo "Missing GITEA_USERNAME/GITEA_PASSWORD secrets." + exit 1 + fi + + export GIT_TERMINAL_PROMPT=0 + ASKPASS_FILE="$(mktemp)" + cat > "$ASKPASS_FILE" <<'EOF' +#!/usr/bin/env sh +case "$1" in + *Username*) echo "$GIT_USERNAME" ;; + *Password*) echo "$GIT_PASSWORD" ;; + *) echo "" ;; +esac +EOF + chmod 700 "$ASKPASS_FILE" + GIT_ASKPASS="$ASKPASS_FILE" git clone "$GIT_REPO_URL" . + rm -f "$ASKPASS_FILE" + fi + - name: Pull latest main run: | set -e cd "$PROJECT_DIR" - git fetch origin main + if [ -z "$GIT_USERNAME" ] || [ -z "$GIT_PASSWORD" ]; then + echo "Missing GITEA_USERNAME/GITEA_PASSWORD secrets." + exit 1 + fi + export GIT_TERMINAL_PROMPT=0 + ASKPASS_FILE="$(mktemp)" + cat > "$ASKPASS_FILE" <<'EOF' +#!/usr/bin/env sh +case "$1" in + *Username*) echo "$GIT_USERNAME" ;; + *Password*) echo "$GIT_PASSWORD" ;; + *) echo "" ;; +esac +EOF + chmod 700 "$ASKPASS_FILE" + GIT_ASKPASS="$ASKPASS_FILE" git fetch origin main git checkout main - git pull origin main + GIT_ASKPASS="$ASKPASS_FILE" git pull origin main + rm -f "$ASKPASS_FILE" - name: Build client run: |