SF workflow: upload to pulsar-linux /Antergos-NeXT ISO's/, add validation and release logic

This commit is contained in:
2026-06-15 20:08:39 +02:00
parent d115d48110
commit de3f815195
+91 -6
View File
@@ -27,7 +27,9 @@ jobs:
imagemagick \ imagemagick \
sudo \ sudo \
base-devel \ base-devel \
python-pip python-pip \
rsync \
openssh
- name: Create build user - name: Create build user
run: | run: |
@@ -52,9 +54,92 @@ jobs:
env: env:
SF_SSH_KEY: ${{ secrets.SF_SSH_KEY }} SF_SSH_KEY: ${{ secrets.SF_SSH_KEY }}
run: | run: |
mkdir -p ~/.ssh mkdir -p /root/.ssh
printf '%s' "$SF_SSH_KEY" > ~/.ssh/id_ed25519 echo "$SF_SSH_KEY" > /root/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519 chmod 600 /root/.ssh/id_ed25519
ssh-keyscan frs.sourceforge.net >> ~/.ssh/known_hosts 2>/dev/null ssh-keyscan -t rsa,ed25519 frs.sourceforge.net >> /root/.ssh/known_hosts 2>/dev/null || true
chmod 644 /root/.ssh/known_hosts
# Find ISO
ISO=$(ls out/*.iso | head -1) ISO=$(ls out/*.iso | head -1)
rsync -avP "$ISO" "antergos-txen@frs.sourceforge.net:/home/frs/project/antergos-next/" DATE=$(date +%Y.%m.%d)
REMOTE_DIR="/home/frs/project/pulsar-linux/Antergos-NeXT ISO's/${DATE}"
# Validate ISO exists
if [[ -z "$ISO" || ! -f "$ISO" ]]; then
echo "ERROR: No ISO found!"
exit 1
fi
# Debug SSH
echo "Testing SSH key..."
ssh -i /root/.ssh/id_ed25519 -o BatchMode=yes -o StrictHostKeyChecking=no pulsar-dev@frs.sourceforge.net "echo SSH_OK" 2>&1 || echo "SSH_TEST_FAILED"
# Check ISO size (must be > 500MB)
SIZE=$(stat -c%s "$ISO")
if [[ $SIZE -lt 524288000 ]]; then
echo "WARNING: ISO smaller than expected (${SIZE} bytes), checking..."
if file "$ISO" | grep -q "ISO 9660\|UDF"; then
echo "ISO appears valid, proceeding..."
else
echo "ERROR: ISO is corrupted!"
exit 1
fi
fi
# Check if ISO already exists and auto-increment release number
RELEASE=1
if ssh pulsar-dev@frs.sourceforge.net ls "${REMOTE_DIR}/"*.iso &>/dev/null; then
EXISTING=$(ssh pulsar-dev@frs.sourceforge.net ls "${REMOTE_DIR}/"*.iso 2>/dev/null)
for f in $EXISTING; do
if echo "$f" | grep -q "release-"; then
N=$(echo "$f" | sed 's/.*release-\([0-9]*\)\.iso/\1/')
if [ "$N" -gt "$RELEASE" ]; then RELEASE=$N; fi
fi
done
RELEASE=$((RELEASE + 1))
echo "Existing ISOs found, uploading as release #${RELEASE}"
fi
# Rename ISO with release number
ISO_BASENAME=$(basename "$ISO" .iso)
ISO_DIR=$(dirname "$ISO")
NEW_ISO="${ISO_DIR}/${ISO_BASENAME}-release-${RELEASE}.iso"
mv "$ISO" "$NEW_ISO"
ISO="$NEW_ISO"
# Create README
echo "# Antergos NeXT ISO" > README.md
echo "" >> README.md
echo "## Build Info" >> README.md
echo "- **Date**: ${DATE}" >> README.md
echo "- **Version**: rolling (release ${RELEASE})" >> README.md
echo "- **Architecture**: x86_64" >> README.md
echo "" >> README.md
echo "## Desktop Environments" >> README.md
echo "- GNOME (default), KDE Plasma, XFCE, Cinnamon, and more..." >> README.md
echo "" >> README.md
echo "## Why is this on the pulsar-linux SourceForge project?" >> README.md
echo "The old Antergos-NeXT SourceForge project was deleted. ISOs are now hosted" >> README.md
echo "under /Antergos-NeXT ISO's/ on the shared pulsar-linux project." >> README.md
echo "This folder is exclusively for Antergos NeXT releases." >> README.md
echo "" >> README.md
echo "Antergos NeXT is a separate project from Pulsar Linux. See:" >> README.md
echo "- https://github.com/Antergos-NeXT/antergos-iso" >> README.md
echo "" >> README.md
echo "## Installation" >> README.md
echo "1. Boot from ISO" >> README.md
echo "2. Select desktop environment" >> README.md
echo "3. Run Cnchi installer" >> README.md
echo "" >> README.md
echo "## Issues" >> README.md
echo "Report at: https://github.com/Antergos-NeXT/antergos-iso/issues" >> README.md
echo "" >> README.md
echo "## Source" >> README.md
echo "- ISO Build: https://github.com/Antergos-NeXT/antergos-iso" >> README.md
echo "- Cnchi: https://github.com/Antergos-NeXT/cnchi-next" >> README.md
echo "- Packages: https://github.com/Antergos-NeXT/antergos-packages" >> README.md
# Upload ISO + README
rsync -avP -e "ssh -i /root/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=no" "$ISO" README.md "pulsar-dev@frs.sourceforge.net:${REMOTE_DIR}/"
echo "Uploaded ${ISO} to ${REMOTE_DIR}"