chore(release): switch to SCP-only upload, remove rsync dependency
This commit is contained in:
@@ -114,7 +114,7 @@ jobs:
|
|||||||
$SUDO apt-get update
|
$SUDO apt-get update
|
||||||
# sshpass from apt, fdroidserver via pip to get a newer androguard that
|
# sshpass from apt, fdroidserver via pip to get a newer androguard that
|
||||||
# can parse modern Flutter/AGP APKs (apt ships fdroidserver 2.2.1 which crashes)
|
# can parse modern Flutter/AGP APKs (apt ships fdroidserver 2.2.1 which crashes)
|
||||||
$SUDO apt-get install -y sshpass rsync python3-pip
|
$SUDO apt-get install -y sshpass python3-pip
|
||||||
pip3 install --break-system-packages --upgrade fdroidserver
|
pip3 install --break-system-packages --upgrade fdroidserver
|
||||||
|
|
||||||
- name: Initialize or fetch F-Droid Repository
|
- name: Initialize or fetch F-Droid Repository
|
||||||
@@ -157,24 +157,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
REMOTE_REPO_DIR="dev/fdroid/repo"
|
REMOTE_REPO_DIR="dev/fdroid/repo"
|
||||||
SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=20 -o ServerAliveInterval=30 -o ServerAliveCountMax=5"
|
SCP_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=20"
|
||||||
|
|
||||||
# Ensure target directory exists before upload.
|
# Use SCP/SFTP path only (some hosts deny SSH exec channels required by rsync/ssh).
|
||||||
sshpass -p "$PASS" ssh $SSH_OPTS "$USER@$HOST" "mkdir -p '$REMOTE_REPO_DIR'"
|
if sshpass -p "$PASS" scp $SCP_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"; then
|
||||||
|
|
||||||
if sshpass -p "$PASS" ssh $SSH_OPTS "$USER@$HOST" "command -v rsync >/dev/null 2>&1"; then
|
|
||||||
ATTEMPT=1
|
|
||||||
until [ "$ATTEMPT" -gt 3 ]; do
|
|
||||||
echo "Rsync upload attempt $ATTEMPT/3"
|
|
||||||
if sshpass -p "$PASS" rsync -avz --timeout=60 -e "ssh $SSH_OPTS" fdroid/repo/ "$USER@$HOST:$REMOTE_REPO_DIR/"; then
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
sleep $((ATTEMPT * 5))
|
|
||||||
ATTEMPT=$((ATTEMPT + 1))
|
|
||||||
done
|
|
||||||
echo "Rsync failed after retries, falling back to scp"
|
|
||||||
else
|
|
||||||
echo "Remote rsync not found, using scp fallback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sshpass -p "$PASS" scp $SSH_OPTS -r fdroid/repo/. "$USER@$HOST:$REMOTE_REPO_DIR/"
|
# 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/"
|
||||||
|
|||||||
Reference in New Issue
Block a user