diff options
Diffstat (limited to '.forgejo/workflows')
| -rw-r--r-- | .forgejo/workflows/artcraft-update.yml | 9 | ||||
| -rw-r--r-- | .forgejo/workflows/build-theme-send-core-repo.yml | 30 | ||||
| -rw-r--r-- | .forgejo/workflows/publish-prebuilt-kernel.yml | 103 |
3 files changed, 123 insertions, 19 deletions
diff --git a/.forgejo/workflows/artcraft-update.yml b/.forgejo/workflows/artcraft-update.yml index 4be1e35..21788ee 100644 --- a/.forgejo/workflows/artcraft-update.yml +++ b/.forgejo/workflows/artcraft-update.yml @@ -124,6 +124,15 @@ jobs: CORE="/tmp/raveos-core-repo/x86_64" APPS=(designcraft effectcraft filmcraft lightcraft pdfcraft photocraft vectorcraft) FAILED=() + CACHE="$HOME/.cache/artcraft" + [ -d "$HOME/runner" ] && CACHE="$HOME/runner/cache/artcraft" + if [ -d "$CACHE/target" ] && [ "$(du -s "$CACHE/target" | cut -f1)" -gt 31457280 ]; then + echo "A build cache 30 GB folott van, uritem: $CACHE/target" + rm -rf "$CACHE/target" + fi + mkdir -p "$CACHE/cargo" "$CACHE/target" + export ARTCRAFT_CARGO_HOME="$CACHE/cargo" ARTCRAFT_TARGET_DIR="$CACHE/target" + echo "Build cache: $CACHE, szalak: $(nproc), szabad memoria: $(awk '/MemAvailable/ {print int($2 / 1048576)}' /proc/meminfo) GB" for app in "${APPS[@]}"; do cd "artcraft-raveos/${app}" || { FAILED+=("$app"); continue; } PKGVER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2) diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml index c3973e3..7d06c95 100644 --- a/.forgejo/workflows/build-theme-send-core-repo.yml +++ b/.forgejo/workflows/build-theme-send-core-repo.yml @@ -221,20 +221,20 @@ jobs: makepkg -s --noconfirm -f cp -v build/raveos-tools-*.pkg.tar.zst /tmp/builtpkgs/ - - name: Build raveos-app-installer + - name: Build raveos-center run: | set -euo pipefail CORE="/tmp/raveos-core-repo/x86_64" - cd raveos-app-installer + cd raveos-center PKGVER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2) PKGREL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2) - if ls "$CORE/raveos-app-installer-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then - echo "raveos-app-installer ${PKGVER}-${PKGREL} unchanged -> skip" + if ls "$CORE/raveos-center-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then + echo "raveos-center ${PKGVER}-${PKGREL} unchanged -> skip" exit 0 fi rm -rf build || true makepkg -s --noconfirm -f - cp -v build/raveos-app-installer-*.pkg.tar.zst /tmp/builtpkgs/ + cp -v build/raveos-center-*.pkg.tar.zst /tmp/builtpkgs/ - name: Build raveos-welcome run: | @@ -266,20 +266,6 @@ jobs: makepkg -s --noconfirm -f cp -v build/raveos-support-*.pkg.tar.zst /tmp/builtpkgs/ - - name: Build raveos-updater - run: | - set -euo pipefail - CORE="/tmp/raveos-core-repo/x86_64" - cd raveos-updater - PKGVER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2) - PKGREL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2) - if ls "$CORE/raveos-updater-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then - echo "raveos-updater ${PKGVER}-${PKGREL} unchanged -> skip" - exit 0 - fi - makepkg -s --noconfirm -f - cp -v raveos-updater-*.pkg.tar.zst /tmp/builtpkgs/ - - name: Build raveos-plymouth-theme run: | set -euo pipefail @@ -378,6 +364,12 @@ jobs: export GNUPGHOME=/tmp/raveos-gnupg cd "$CORE" + for old in raveos-app-installer raveos-updater; do + rm -f "${old}-"[0-9]*.pkg.tar.zst* + if bsdtar -tf raveos-core-repo.db.tar.xz | grep "^${old}-[0-9]" >/dev/null; then + repo-remove raveos-core-repo.db.tar.xz "$old" + fi + done ALLPKGS=$(ls *.pkg.tar.zst) repo-add raveos-core-repo.db.tar.xz $ALLPKGS diff --git a/.forgejo/workflows/publish-prebuilt-kernel.yml b/.forgejo/workflows/publish-prebuilt-kernel.yml new file mode 100644 index 0000000..09ce379 --- /dev/null +++ b/.forgejo/workflows/publish-prebuilt-kernel.yml @@ -0,0 +1,103 @@ +name: Publish prebuilt linux-raveos kernel + +on: + workflow_dispatch: + +concurrency: + group: raveos-repo-publish + cancel-in-progress: false + +jobs: + publish: + runs-on: iso-builder + + steps: + - name: Check prebuilt packages + run: | + set -euo pipefail + SRC="$HOME/kernel-kesz" + ls "$SRC"/linux-*.pkg.tar.zst + for pkg in "$SRC"/linux-*.pkg.tar.zst; do + bsdtar -xOf "$pkg" .PKGINFO | grep -E '^(pkgname|pkgver) =' + done + ( cd "$SRC" && sha256sum -c SHA256SUMS ) + + - name: Fetch core repo via rsync + run: | + set -euo pipefail + RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=accept-new -o BatchMode=yes" + rm -rf /tmp/raveos-core-repo /tmp/builtpkgs + mkdir -p /tmp/raveos-core-repo/x86_64 /tmp/builtpkgs + rsync -az -e "$RSYNC_SSH" \ + root@10.66.66.1:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/ + test -f /tmp/raveos-core-repo/x86_64/raveos-core-repo.db.tar.xz + cp -v "$HOME"/kernel-kesz/linux-*.pkg.tar.zst /tmp/builtpkgs/ + + - name: Import GPG signing key + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + run: | + set -euo pipefail + export GNUPGHOME=/tmp/raveos-gnupg + rm -rf "$GNUPGHOME" + mkdir -m 700 "$GNUPGHOME" + printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import + + - name: Sign packages + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }} + run: | + set -euo pipefail + export GNUPGHOME=/tmp/raveos-gnupg + PASSFILE=$(mktemp) + chmod 600 "$PASSFILE" + trap 'rm -f "$PASSFILE"' EXIT + printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE" + for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do + gpg --batch --yes --pinentry-mode loopback \ + --passphrase-file "$PASSFILE" \ + --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \ + --detach-sign --no-armor "$pkg" + done + + - name: Update repo database and sync to VPS + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }} + run: | + set -euo pipefail + CORE="/tmp/raveos-core-repo/x86_64" + for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do + PKGNAME=$(bsdtar -xOf "$pkg" .PKGINFO | awk -F' = ' '/^pkgname =/{print $2; exit}') + rm -f "$CORE/${PKGNAME}-"[0-9]*.pkg.tar.zst* 2>/dev/null || true + cp -v "$pkg" "$pkg.sig" "$CORE/" + done + + export GNUPGHOME=/tmp/raveos-gnupg + cd "$CORE" + repo-add raveos-core-repo.db.tar.xz *.pkg.tar.zst + + PASSFILE=$(mktemp) + chmod 600 "$PASSFILE" + trap 'rm -f "$PASSFILE"' EXIT + printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE" + for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do + gpg --batch --yes --pinentry-mode loopback \ + --passphrase-file "$PASSFILE" \ + --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \ + --detach-sign --no-armor -o "$f.sig" "$f" + done + ln -sf raveos-core-repo.db.tar.xz.sig raveos-core-repo.db.sig + ln -sf raveos-core-repo.files.tar.xz.sig raveos-core-repo.files.sig + + RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=accept-new -o BatchMode=yes" + rsync -az --delete -e "$RSYNC_SSH" \ + "$CORE/" root@10.66.66.1:/root/docker/repo/repo/x86_64/ + + rm -rf "$HOME/kernel-kesz" + echo "::notice title=Kernel published::prebuilt linux-raveos published" + + - name: Cleanup + if: always() + run: | + gpgconf --homedir /tmp/raveos-gnupg --kill gpg-agent || true + rm -rf /tmp/raveos-gnupg /tmp/builtpkgs /tmp/raveos-core-repo || true |