summaryrefslogtreecommitdiff
path: root/.forgejo/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.forgejo/workflows')
-rw-r--r--.forgejo/workflows/artcraft-update.yml249
-rw-r--r--.forgejo/workflows/build-theme-send-core-repo.yml17
2 files changed, 16 insertions, 250 deletions
diff --git a/.forgejo/workflows/artcraft-update.yml b/.forgejo/workflows/artcraft-update.yml
deleted file mode 100644
index 21788ee..0000000
--- a/.forgejo/workflows/artcraft-update.yml
+++ /dev/null
@@ -1,249 +0,0 @@
-name: ArtCraft update (manual)
-
-on:
- workflow_dispatch:
-
-concurrency:
- group: raveos-repo-publish
- cancel-in-progress: false
-
-jobs:
- update:
- runs-on: artcraft-builder
-
- steps:
- - name: Checkout PKGBUILDs repo
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- token: ${{ secrets.FORGEJO_TOKEN }}
-
- - name: Install VPS SSH key
- env:
- VPS_SSH_KEY: ${{ secrets.VPS_SSH_KEY }}
- run: |
- set -euo pipefail
- if [ -z "${VPS_SSH_KEY:-}" ]; then
- echo "HIBA: hianyzik a VPS_SSH_KEY secret"
- exit 1
- fi
- install -d -m 700 "$HOME/.ssh"
- (umask 077 && printf '%s\n' "$VPS_SSH_KEY" | tr -d '\r' > "$HOME/.ssh/vps_backup_key")
-
- - name: Install build tools
- run: |
- set -euo pipefail
- sudo pacman -Sy --needed --noconfirm archlinux-keyring
- sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
- sudo pacman -S --needed --noconfirm base-devel git pacman-contrib rsync curl jq cargo
-
- - name: Check latest versions and bump PKGBUILDs
- id: bump
- env:
- GH_TOKEN: ${{ secrets.GH_MIRROR_TOKEN }}
- run: |
- set -euo pipefail
- APPS=(designcraft effectcraft filmcraft lightcraft pdfcraft photocraft vectorcraft)
- CHANGED=0
- HDRFILE=$(mktemp)
- chmod 600 "$HDRFILE"
- trap 'rm -f "$HDRFILE"' EXIT
- AUTH=()
- if [ -n "${GH_TOKEN:-}" ]; then
- printf 'Authorization: Bearer %s\n' "$GH_TOKEN" > "$HDRFILE"
- AUTH=(-H "@${HDRFILE}")
- fi
- for app in "${APPS[@]}"; do
- TAG=$(curl -fsSL --retry 3 "${AUTH[@]}" \
- "https://api.github.com/repos/storytold/${app}/releases/latest" \
- | jq -r '.tag_name // empty' 2>/dev/null || true)
- if [ -z "$TAG" ]; then
- echo "FIGYELEM: ${app}: a legfrissebb verziot nem sikerult lekerdezni -> kihagyva"
- continue
- fi
- if [ "${TAG#v}" = "$TAG" ]; then
- echo "FIGYELEM: ${app}: nem v-elotagos tag (${TAG}) -> kihagyva"
- continue
- fi
- LATEST="${TAG#v}"
- CUR=$(grep '^pkgver=' "artcraft-raveos/${app}/PKGBUILD" | cut -d= -f2)
- if [ "$(vercmp "$LATEST" "$CUR")" -le 0 ]; then
- echo "${app}: naprakesz (${CUR})"
- continue
- fi
- echo "${app}: ${CUR} -> ${LATEST}"
- if ! curl -fsSL --retry 3 -o "/tmp/${app}-src.tar.gz" \
- "https://github.com/storytold/${app}/archive/refs/tags/${TAG}/${app}-${LATEST}.tar.gz"; then
- echo "FIGYELEM: ${app}: a forras letoltese sikertelen -> kihagyva"
- rm -f "/tmp/${app}-src.tar.gz"
- continue
- fi
- SHA=$(sha256sum "/tmp/${app}-src.tar.gz" | cut -d' ' -f1)
- sed -i "s/^pkgver=.*/pkgver=${LATEST}/" "artcraft-raveos/${app}/PKGBUILD"
- sed -i "s/^sha256sums=('.*')$/sha256sums=('${SHA}')/" "artcraft-raveos/${app}/PKGBUILD"
- sed -i "s/^pkgrel=.*/pkgrel=1/" "artcraft-raveos/${app}/PKGBUILD"
- CHANGED=1
- done
- rm -f /tmp/*-src.tar.gz || true
- echo "CHANGED=${CHANGED}" >> "$GITHUB_OUTPUT"
-
- - name: Commit PKGBUILD bumps
- if: steps.bump.outputs.CHANGED == '1'
- run: |
- set -euo pipefail
- git config user.name "RaveOS Bot"
- git config user.email "bot@raveos.hu"
- git add artcraft-raveos
- git commit -m "artcraft: frissites a legujabb upstream verziokra"
- git push origin main
-
- - name: Sync core repo from VPS (rsync pull)
- 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
- mkdir -p /tmp/raveos-core-repo/x86_64
- rsync -az -e "$RSYNC_SSH" \
- root@185.170.114.175:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/
- mkdir -p /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: Build ArtCraft packages
- id: build
- run: |
- set -euo pipefail
- 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)
- PKGREL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2)
- if ls "$CORE/${app}-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then
- echo "${app} ${PKGVER}-${PKGREL} unchanged -> skip"
- cd - >/dev/null
- continue
- fi
- echo "=== Building ${app} ${PKGVER}-${PKGREL} ==="
- rm -rf src pkg *.pkg.tar.zst || true
- if ! makepkg -s --noconfirm -f; then
- echo "HIBA: ${app} build sikertelen"
- FAILED+=("$app")
- cd - >/dev/null
- continue
- fi
- if ! cp -v "${app}"-[0-9]*.pkg.tar.zst /tmp/builtpkgs/; then
- echo "HIBA: ${app} csomag masolasa sikertelen"
- FAILED+=("$app")
- fi
- cd - >/dev/null
- done
- echo "failed=${FAILED[*]:-}" >> "$GITHUB_OUTPUT"
-
- - name: Sign built packages
- env:
- GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
- run: |
- set -euo pipefail
- export GNUPGHOME=/tmp/raveos-gnupg
- gpgconf --launch gpg-agent >/dev/null 2>&1 || true
- BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
- if [ -z "$BUILT" ]; then
- echo "Nincs csomag alairashoz -> kihagyva"
- exit 0
- fi
- PASSFILE=$(mktemp)
- chmod 600 "$PASSFILE"
- trap 'rm -f "$PASSFILE"' EXIT
- printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
- for pkg in $BUILT; do
- gpg --batch --yes --pinentry-mode loopback \
- --passphrase-file "$PASSFILE" \
- --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
- --detach-sign "$pkg"
- echo "Alairva: $(basename "$pkg")"
- done
-
- - name: Publish packages (repo-add + rsync push, only if changed)
- env:
- GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
- run: |
- set -euo pipefail
- CORE="/tmp/raveos-core-repo/x86_64"
- BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
- if [ -z "$BUILT" ]; then
- echo "Nincs uj csomag -> kihagyva"
- exit 0
- fi
- RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=accept-new -o BatchMode=yes"
- rsync -az --delete -e "$RSYNC_SSH" \
- root@185.170.114.175:/root/docker/repo/repo/x86_64/ "$CORE/"
- for pkg in $BUILT; do
- PKGNAME=$(bsdtar -xOf "$pkg" .PKGINFO | awk -F' = ' '/^pkgname =/{print $2; exit}')
- if [[ ! "$PKGNAME" =~ ^[a-zA-Z0-9_+-]+$ ]]; then
- echo "HIBA: Ervenytelen csomagnev: $PKGNAME -> skip"
- continue
- fi
- rm -f "$CORE/${PKGNAME}-"[0-9]*.pkg.tar.zst* 2>/dev/null || true
- cp -v "$pkg" "$CORE/"
- if [ -f "$pkg.sig" ]; then
- cp -v "$pkg.sig" "$CORE/"
- else
- echo "HIBA: hianyzik az alairas: $pkg.sig"
- exit 1
- fi
- done
- export GNUPGHOME=/tmp/raveos-gnupg
- cd "$CORE"
- ALLPKGS=$(ls *.pkg.tar.zst)
- repo-add raveos-core-repo.db.tar.xz $ALLPKGS
- 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
- rm -f raveos-core-repo.db.tar.gz* raveos-core-repo.files.tar.gz* 2>/dev/null || true
- rsync -az --delete -e "$RSYNC_SSH" \
- "$CORE/" root@185.170.114.175:/root/docker/repo/repo/x86_64/
- echo "::notice title=Published packages::ArtCraft csomagok publikálva"
-
- - name: Report failed builds
- if: steps.build.outputs.failed != ''
- run: |
- echo "Sikertelen buildek: ${{ steps.build.outputs.failed }}"
- exit 1
-
- - name: Cleanup
- if: always()
- run: |
- rm -f "$HOME/.ssh/vps_backup_key"
- gpgconf --homedir /tmp/raveos-gnupg --kill gpg-agent || true
- sudo rm -rf /tmp/raveos-gnupg || true
- sudo rm -rf /tmp/builtpkgs || true
- sudo rm -rf /tmp/raveos-core-repo || true
- df -h
diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml
index 7d06c95..2b0cf03 100644
--- a/.forgejo/workflows/build-theme-send-core-repo.yml
+++ b/.forgejo/workflows/build-theme-send-core-repo.yml
@@ -313,6 +313,21 @@ jobs:
makepkg -s --noconfirm -f
cp -v opentubex-*.pkg.tar.zst /tmp/builtpkgs/
+ - name: Build artcraft-launcher
+ run: |
+ set -euo pipefail
+ CORE="/tmp/raveos-core-repo/x86_64"
+ cd artcraft-raveos/artcraft-launcher
+ PKGVER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2)
+ PKGREL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2)
+ if ls "$CORE/artcraft-launcher-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then
+ echo "artcraft-launcher ${PKGVER}-${PKGREL} unchanged -> skip"
+ exit 0
+ fi
+ rm -rf src pkg *.pkg.tar.zst || true
+ makepkg -d --noconfirm -f
+ cp -v artcraft-launcher-[0-9]*.pkg.tar.zst /tmp/builtpkgs/
+
- name: Sign built packages
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
@@ -364,7 +379,7 @@ jobs:
export GNUPGHOME=/tmp/raveos-gnupg
cd "$CORE"
- for old in raveos-app-installer raveos-updater; do
+ for old in raveos-app-installer raveos-updater designcraft effectcraft filmcraft lightcraft pdfcraft photocraft vectorcraft; 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"