From 0f66ebf52aa85093ad99d6690f7e8e2892122236 Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Fri, 20 Mar 2026 09:23:43 +0100 Subject: [PATCH] dist: brew --- .gitea/workflows/publish-aur-git.yml | 1 + .gitea/workflows/publish-homebrew.yml | 68 +++++++++++++++++++++++++++ .gitea/workflows/release.yml | 1 + packaging/homebrew/kewt.rb.template | 16 +++++++ 4 files changed, 86 insertions(+) create mode 100644 .gitea/workflows/publish-homebrew.yml create mode 100644 packaging/homebrew/kewt.rb.template diff --git a/.gitea/workflows/publish-aur-git.yml b/.gitea/workflows/publish-aur-git.yml index 016a06e..98ee7a2 100644 --- a/.gitea/workflows/publish-aur-git.yml +++ b/.gitea/workflows/publish-aur-git.yml @@ -7,6 +7,7 @@ on: paths: - 'packaging/AUR/PKGBUILD.git' - 'packaging/AUR/.SRCINFO.git' + workflow_dispatch: jobs: publish-aur-git: diff --git a/.gitea/workflows/publish-homebrew.yml b/.gitea/workflows/publish-homebrew.yml new file mode 100644 index 0000000..8bf9434 --- /dev/null +++ b/.gitea/workflows/publish-homebrew.yml @@ -0,0 +1,68 @@ +name: Publish Homebrew Tap + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + publish-homebrew: + runs-on: local + needs: [] + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Wait for release asset + run: | + TAG="${GITHUB_REF#refs/tags/}" + VERSION="${TAG#v}" + ASSET_URL="https://github.com/n0va-bot/kewt/releases/download/${TAG}/kewt" + + # Wait for the GitHub release asset to be available + for i in $(seq 1 12); do + if curl -sLf -o /dev/null "$ASSET_URL" 2>/dev/null; then + echo "Asset available at $ASSET_URL" + break + fi + echo "Waiting for release asset... (attempt $i)" + sleep 10 + done + + - name: Render Formula + run: | + TAG="${GITHUB_REF#refs/tags/}" + VERSION="${TAG#v}" + ASSET_URL="https://github.com/n0va-bot/kewt/releases/download/${TAG}/kewt" + + curl -sL -o kewt-binary "$ASSET_URL" + CHECKSUM=$(sha256sum kewt-binary | awk '{print $1}') + rm -f kewt-binary + + mkdir -p brew-work/Formula + sed -e "s/VERSION_PLACEHOLDER/${VERSION}/g" \ + -e "s/SHA256SUM_PLACEHOLDER/${CHECKSUM}/g" \ + packaging/homebrew/kewt.rb.template > brew-work/Formula/kewt.rb + + echo "Generated Formula:" + cat brew-work/Formula/kewt.rb + + - name: Push to GitHub homebrew-tap + run: | + TAG="${GITHUB_REF#refs/tags/}" + cd brew-work + + git init + git remote add origin https://x-access-token:${{ secrets.GH_RELEASE_TOKEN }}@github.com/n0va-bot/homebrew-tap.git + git fetch origin main || git checkout --orphan main + git checkout main 2>/dev/null || git checkout --orphan main + + # Overwrite with the rendered Formula + mkdir -p Formula + cp Formula/kewt.rb Formula/kewt.rb + + git add Formula/kewt.rb + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor }}@users.noreply.github.com" + git commit -m "Update kewt to ${TAG}" || echo "No changes to commit" + git push origin main diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a529238..aa454f1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -3,6 +3,7 @@ name: Release Standalone Builder on: release: types: [published] + workflow_dispatch: jobs: build: diff --git a/packaging/homebrew/kewt.rb.template b/packaging/homebrew/kewt.rb.template new file mode 100644 index 0000000..031116f --- /dev/null +++ b/packaging/homebrew/kewt.rb.template @@ -0,0 +1,16 @@ +class Kewt < Formula + desc "Minimalist static site generator inspired by werc" + homepage "https://kewt.krzak.org" + url "https://github.com/n0va-bot/kewt/releases/download/VERSION_PLACEHOLDER/kewt" + sha256 "SHA256SUM_PLACEHOLDER" + license "ISC" + version "VERSION_PLACEHOLDER" + + def install + bin.install "kewt" + end + + test do + system "#{bin}/kewt", "--version" + end +end