diff options
Diffstat (limited to '.forgejo/workflows')
| -rw-r--r-- | .forgejo/workflows/build-kernel.yml | 62 | ||||
| -rw-r--r-- | .forgejo/workflows/build-theme-send-core-repo.yml | 18 |
2 files changed, 43 insertions, 37 deletions
diff --git a/.forgejo/workflows/build-kernel.yml b/.forgejo/workflows/build-kernel.yml index 7dab4bf..a532055 100644 --- a/.forgejo/workflows/build-kernel.yml +++ b/.forgejo/workflows/build-kernel.yml @@ -28,13 +28,16 @@ jobs: sudo pacman -S --needed --noconfirm \ base-devel clang llvm lld bc binutils cpio gettext \ libelf openssl pahole perl python rust rust-bindgen \ - rust-src xxhash xz zlib zstd + rust-src xxhash xz zlib zstd rsync - - name: Clone core repo + - name: Fetch core repo via rsync run: | set -euo pipefail + RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no" rm -rf /tmp/raveos-core-repo - git clone --depth 1 git@git.rp1.hu:RaveOS/raveos-core-repo.git /tmp/raveos-core-repo + mkdir -p /tmp/raveos-core-repo/x86_64 + rsync -az -e "$RSYNC_SSH" \ + root@10.66.66.1:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/ || true mkdir -p /tmp/builtpkgs - name: Import GPG signing key @@ -63,45 +66,40 @@ jobs: echo "linux-cachyos ${FULLVER} build indul..." fi - - name: Build linux-cachyos - if: steps.check.outputs.SKIP == 'no' + - name: Build linux-raveos + if: steps.check.outputs.SKIP != 'yes' run: | set -euo pipefail cd linux-raveos - rm -f *.pkg.tar.zst || true - makepkg -s --noconfirm - cp -v linux-cachyos-*.pkg.tar.zst /tmp/builtpkgs/ + chmod -R 777 . + sudo -u builder makepkg -s --noconfirm --needed + mkdir -p /tmp/builtpkgs + cp -v *.pkg.tar.zst /tmp/builtpkgs/ - name: Sign built packages - if: steps.check.outputs.SKIP == 'no' + if: steps.check.outputs.SKIP != 'yes' run: | set -euo pipefail export GNUPGHOME=/tmp/raveos-gnupg for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do + [ -f "$pkg" ] || continue gpg --batch --yes --pinentry-mode loopback \ --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \ --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \ - --detach-sign "$pkg" - echo "Alairva: $(basename "$pkg")" + --detach-sign --no-armor "$pkg" done - - name: Publish to core repo - if: steps.check.outputs.SKIP == 'no' + - name: Update repo database and sync to VPS + if: steps.check.outputs.SKIP != 'yes' run: | set -euo pipefail - CORE="/tmp/raveos-core-repo/x86_64" - mkdir -p "$CORE" - BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true) if [ -z "$BUILT" ]; then echo "Nincs csomag -> kihagyva" exit 0 fi - cd /tmp/raveos-core-repo - git config user.name "Forgejo Actions" - git config user.email "actions@forgejo.local" - + CORE="/tmp/raveos-core-repo/x86_64" for pkg in $BUILT; do PKGFILE=$(basename "$pkg") PKGNAME=$(echo "$PKGFILE" | sed 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//') @@ -111,18 +109,22 @@ jobs: done export GNUPGHOME=/tmp/raveos-gnupg - repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \ - "$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-[^h]*.pkg.tar.zst - repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \ - "$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-headers-*.pkg.tar.zst + cd "$CORE" + ALLPKGS=$(ls *.pkg.tar.zst) + repo-add raveos-core-repo.db.tar.xz $ALLPKGS - git add -A - git commit -m "kernel: linux-cachyos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}" - git push origin main + for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do + gpg --batch --yes --pinentry-mode loopback \ + --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \ + --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 - TAG="vrepo-$(date +%Y%m%d-%H%M%S)" - git tag -a "$TAG" -m "linux-raveos ${GITHUB_SHA:0:7}" - git push origin "$TAG" + RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no" + rsync -az --delete -e "$RSYNC_SSH" \ + "$CORE/" root@10.66.66.1:/root/docker/repo/repo/x86_64/ echo "::notice title=Kernel published::linux-raveos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}" diff --git a/.forgejo/workflows/build-theme-send-core-repo.yml b/.forgejo/workflows/build-theme-send-core-repo.yml index b8aab1f..1ad9a43 100644 --- a/.forgejo/workflows/build-theme-send-core-repo.yml +++ b/.forgejo/workflows/build-theme-send-core-repo.yml @@ -352,21 +352,25 @@ jobs: REPO="/tmp/raveos-core-repo" [ -d "$REPO/x86_64" ] || { echo "Nincs mit tükrözni -> kihagyva"; exit 0; } - # A "Publish" lepes mar szinkron modon, ugyanebben a jobban rsync-elte - # ki a friss allapotot a VPS-re - nincs tobbe kulon aszinkron repo-add - # job/webhook-lanc, amire varni kellene. + TOKEN="${{ secrets.GH_MIRROR_TOKEN }}" + if [ -z "${TOKEN:-}" ]; then + echo "FIGYELMEZTETES: GH_MIRROR_TOKEN nincs beallitva -> GitHub tukrozes kihagyva" + exit 0 + fi OWNER="rave-os" GH_REPO="RaveOS-core-repo-mirror" TAG="core-repo-x86_64" API="https://api.github.com/repos/${OWNER}/${GH_REPO}" - TOKEN="${{ secrets.GH_MIRROR_TOKEN }}" - release_json=$(curl -sf -H "Authorization: Bearer ${TOKEN}" \ - "${API}/releases/tags/${TAG}") || { echo "HIBA: nincs '${TAG}' release a GitHub repoban -> kihagyva"; exit 0; } + "${API}/releases/tags/${TAG}" || true) + if [ -z "$release_json" ] || ! echo "$release_json" | jq -e .id &>/dev/null; then + echo "FIGYELMEZTETES: GitHub release nem erheto el (${TAG}) -> kihagyva" + exit 0 + fi release_id=$(echo "$release_json" | jq -r .id) - existing_assets=$(echo "$release_json" | jq -r '.assets[] | "\(.id)\t\(.name)"') + existing_assets=$(echo "$release_json" | jq -r '.assets[]? | "\(.id)\t\(.name)"' 2>/dev/null || true) cd "$REPO/x86_64" |