chore(release): enhance upload script with SFTP mkdir pre-checks and SCP improvements
This commit is contained in:
@@ -124,11 +124,17 @@ jobs:
|
||||
PASS: ${{ secrets.HETZNER_PASS }}
|
||||
run: |
|
||||
mkdir -p fdroid
|
||||
cd fdroid
|
||||
|
||||
# Try to download the existing repo/ folder from Hetzner to keep older versions and the keystore
|
||||
# If it fails (first time), we just initialize a new one
|
||||
sshpass -p "$PASS" scp -o StrictHostKeyChecking=no -r $USER@$HOST:dev/fdroid/repo . || fdroid init
|
||||
# Ensure remote path exists (sftp mkdir, ignoring errors if already present).
|
||||
sshpass -p "$PASS" sftp -o StrictHostKeyChecking=no "$USER@$HOST" <<'SFTP'
|
||||
-mkdir dev
|
||||
-mkdir dev/fdroid
|
||||
-mkdir dev/fdroid/repo
|
||||
SFTP
|
||||
|
||||
# Try to download the existing repo/ folder from Hetzner to keep older versions and the keystore.
|
||||
# If it fails (first time), initialize a new local repo.
|
||||
sshpass -p "$PASS" scp -o StrictHostKeyChecking=no -r "$USER@$HOST:dev/fdroid/repo" fdroid/ || (cd fdroid && fdroid init)
|
||||
|
||||
- name: Copy new APK to repo
|
||||
run: |
|
||||
@@ -157,12 +163,15 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
REMOTE_REPO_DIR="dev/fdroid/repo"
|
||||
SCP_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=20"
|
||||
SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=20"
|
||||
|
||||
# Use SCP/SFTP path only (some hosts deny SSH exec channels required by rsync/ssh).
|
||||
if sshpass -p "$PASS" scp $SCP_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"; then
|
||||
exit 0
|
||||
fi
|
||||
# Create remote directory tree via SFTP batch (no exec channel needed).
|
||||
# Leading '-' on each mkdir means "ignore error if already exists".
|
||||
sshpass -p "$PASS" sftp $SSH_OPTS "$USER@$HOST" <<'SFTP'
|
||||
-mkdir dev
|
||||
-mkdir dev/fdroid
|
||||
-mkdir dev/fdroid/repo
|
||||
SFTP
|
||||
|
||||
# Fallback for older SSH servers that require legacy SCP protocol.
|
||||
sshpass -p "$PASS" scp -O $SCP_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"
|
||||
# Upload all files from fdroid/repo into the remote directory.
|
||||
sshpass -p "$PASS" scp $SSH_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"
|
||||
|
||||
Reference in New Issue
Block a user