stages: - build - deploy image: archlinux/archlinux:base-devel variables: Desktop: "gnome" build_iso: stage: build script: - ./build.sh - echo "Renaming the output ISO file" - mv out/*.iso out/ParchLinux-$Desktop-latest.iso - echo "Generating MD5 checksum" - md5sum out/ParchLinux-$Desktop-latest.iso > out/md5sum.txt - bash -c 'echo "Build Date: $(date +"%Y-%m-%d")" >> out/md5sum.txt' - echo "Build completed. Files generated:" - ls -lh out/ artifacts: paths: - out/ParchLinux-$Desktop-latest.iso - out/md5sum.txt rules: - if: $CI_COMMIT_TAG deploy_iso: stage: deploy dependencies: - build_iso script: - echo "Installing sshpass and rsync" - pacman -Syu --noconfirm sshpass rsync - echo "Determining the remote directory based on the tag" - bash -c '[[ "$CI_COMMIT_TAG" == *"beta"* ]] && export REMOTE_DIR="/srv/http/beta/$Desktop/" || export REMOTE_DIR="/srv/http/$Desktop"' - echo "Removing old ISO files from remote directory" - sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT rm -rf "$REMOTE_DIR/" - echo "Creating new directory on remote host" - sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT mkdir -p "$REMOTE_DIR/" - echo "Uploading new ISO via rsync" - sshpass -p "$PASS" rsync -r out/ParchLinux-$Desktop-latest.iso out/md5sum.txt parch@$SSH_ROOT:"$REMOTE_DIR/" rules: - if: $CI_COMMIT_TAG