diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..38d3c69 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,50 @@ +name: Build and Deploy ISO +on: + release: + types: [published] + +jobs: + build_iso: + runs-on: ubuntu-latest + container: + image: archlinux/archlinux:base-devel + privileged: true + + env: + Desktop: "XFCE" + steps: + - name: Install Node.js + run: pacman -Syyu --noconfirm nodejs npm git sudo + - name: Checkout code + uses: actions/checkout@v4 + - name: Update system + run: pacman -Syyuu --noconfirm + - name: Check user + run: whoami + - name: Build ISO + run: | + sudo ./build.sh + echo "Renaming the output ISO file" + mv out/*.iso out/ParchLinux-${{ env.Desktop }}-latest.iso + echo "Generating MD5 checksum" + md5sum out/ParchLinux-${{ env.Desktop }}-latest.iso > out/md5sum.txt + echo "Build completed. Files generated:" + ls -lh out/ + - name: Setup dependencies + run: pacman -Syu --noconfirm sshpass rsync + + - name: Determine remote directory + run: | + if [[ "${{ github.event.release.tag_name }}" == *"beta"* ]]; then + echo "REMOTE_DIR=/srv/http/beta/${{ env.Desktop }}/" >> $GITHUB_ENV + else + echo "REMOTE_DIR=/srv/http/${{ env.Desktop }}/" >> $GITHUB_ENV + fi + + - name: Deploy files + env: + PASS: ${{ secrets.PASS }} + HOST: ${{ secrets.HOST }} + run: | + sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$HOST "rm -rf $REMOTE_DIR && mkdir -p $REMOTE_DIR" + sshpass -p "$PASS" rsync -avz out/ParchLinux-${{ env.Desktop }}-latest.iso out/md5sum.txt parch@$HOST:$REMOTE_DIR