parch-runit/.gitlab-ci.yml
2024-09-28 17:09:37 +03:30

57 lines
1.9 KiB
YAML

stages:
- build
- deploy
image: artixlinux/artixlinux:base-runit
variables:
Desktop: "runit"
build_iso:
stage: build
script:
- echo "Installing artools"
- pacman --noconfirm -Sy artools iso-profiles curl wget
- echo "Setting up filesystem for the build"
- losetup -d /dev/loop3
- dd if=/dev/zero of=/tmp/loopfs.img bs=1024 count=8000000
- losetup /dev/loop3 /tmp/loopfs.img
- mkfs.ext4 /dev/loop3
- mkdir -p /var/lib/artools
- mount /dev/loop3 /var/lib/artools
- echo "Starting the ISO build process"
- mkdir -p ~/artools-workspace/iso-profiles
- cp base ~/artools-workspace/iso-profiles -r
- mkdir -p ~/.config/artools
- ls config/
- cp config/pacman.conf /usr/share/artools/pacman.conf.d/default.conf
- mkdir -p /root/.config/artools/
- cp config/pacman.conf /root/.config/artools/pacman-default.conf
- cp config/pacman.conf /etc/pacman.conf
- cp -r config/parch-mirrors /etc/pacman.d/
- ./build-iso.sh
- echo "Renaming the output ISO file"
- mv ~/artools-workspace/iso/base/*.iso ~/artools-workspace/ParchLinux-$Desktop-latest.iso
artifacts:
paths:
- ~/artools-workspace/ParchLinux-$Desktop-latest.iso
rules:
- if: $CI_COMMIT_TAG
deploy_iso:
stage: deploy
dependencies:
- build_iso
script:
- echo "Installing sshpass and rsync"
- pacman -Syu --noconfirm sshpass rsync
- echo "Removing old ISO files from remote directory"
- sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT rm -rf /srv/http/$Desktop/
- echo "Creating new directory on remote host"
- sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT mkdir -p /srv/http/$Desktop/
- echo "Uploading new ISO via rsync"
- sshpass -p "$PASS" rsync -r ~/artools-workspace/ParchLinux-$Desktop-latest.iso parch@$SSH_ROOT:/srv/http/$Desktop/
rules:
- if: $CI_COMMIT_TAG