diff options
| author | Nippy <nippy@Beller-Mac-mini.lan> | 2026-11-06 20:04:39 +0100 |
|---|---|---|
| committer | Nippy <nippy@Beller-Mac-mini.lan> | 2026-11-06 20:06:27 +0100 |
| commit | 5d5cf0db1b830f61279e353579c0074b0bf067f8 (patch) | |
| tree | aebc3069bd008f318f642db2b831764afaee7a7d /.forgejo/workflows/artcraft-update.yml | |
| parent | 45ea95eaf436bd482e0a919c0032327786515bfd (diff) | |
| download | RaveOS-PKGBUILD-5d5cf0db1b830f61279e353579c0074b0bf067f8.tar.gz RaveOS-PKGBUILD-5d5cf0db1b830f61279e353579c0074b0bf067f8.zip | |
art
Diffstat (limited to '.forgejo/workflows/artcraft-update.yml')
| -rw-r--r-- | .forgejo/workflows/artcraft-update.yml | 249 |
1 files changed, 0 insertions, 249 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 |