SF workflow: upload to pulsar-linux /Antergos-NeXT ISO's/, add validation and release logic
This commit is contained in:
@@ -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}"
|
||||||
|
|||||||
Reference in New Issue
Block a user