chore(release): enhance upload script with SFTP mkdir pre-checks and SCP improvements

This commit is contained in:
2026-03-16 21:51:31 +01:00
parent 03ebaac5a8
commit 97eaa6dacc

View File

@@ -124,11 +124,17 @@ jobs:
PASS: ${{ secrets.HETZNER_PASS }} PASS: ${{ secrets.HETZNER_PASS }}
run: | run: |
mkdir -p fdroid mkdir -p fdroid
cd fdroid
# Ensure remote path exists (sftp mkdir, ignoring errors if already present).
# Try to download the existing repo/ folder from Hetzner to keep older versions and the keystore sshpass -p "$PASS" sftp -o StrictHostKeyChecking=no "$USER@$HOST" <<'SFTP'
# If it fails (first time), we just initialize a new one -mkdir dev
sshpass -p "$PASS" scp -o StrictHostKeyChecking=no -r $USER@$HOST:dev/fdroid/repo . || fdroid init -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 - name: Copy new APK to repo
run: | run: |
@@ -157,12 +163,15 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
REMOTE_REPO_DIR="dev/fdroid/repo" 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). # Create remote directory tree via SFTP batch (no exec channel needed).
if sshpass -p "$PASS" scp $SCP_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"; then # Leading '-' on each mkdir means "ignore error if already exists".
exit 0 sshpass -p "$PASS" sftp $SSH_OPTS "$USER@$HOST" <<'SFTP'
fi -mkdir dev
-mkdir dev/fdroid
-mkdir dev/fdroid/repo
SFTP
# Fallback for older SSH servers that require legacy SCP protocol. # Upload all files from fdroid/repo into the remote directory.
sshpass -p "$PASS" scp -O $SCP_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/" sshpass -p "$PASS" scp $SSH_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"