mirror of
https://github.com/h3pdesign/Neon-Vision-Editor
synced 2026-04-21 13:27:16 +00:00
update-cask.yml erstellen
Moved file
This commit is contained in:
parent
ee08af567f
commit
5fd25a02f6
1 changed files with 106 additions and 0 deletions
106
.github/workflows/update-cask.yml
vendored
Normal file
106
.github/workflows/update-cask.yml
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
name: Update Cask
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
update-cask:
|
||||
runs-on: macos-latest
|
||||
|
||||
env:
|
||||
# Repo, aus dem die Releases kommen (Owner/Repo)
|
||||
APP_REPO: h3pdesign/Neon-Vision-Editor
|
||||
|
||||
# Pfad zur Cask-Datei in diesem Tap
|
||||
CASK_FILE: Casks/neon-vision-editor.rb
|
||||
|
||||
steps:
|
||||
- name: Checkout tap
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Configure git identity
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install Homebrew (if needed) and tools
|
||||
run: |
|
||||
brew --version
|
||||
brew update
|
||||
brew tap homebrew/cask
|
||||
|
||||
- name: Get latest release metadata
|
||||
id: rel
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
# Latest release tag, z.B. v0.4.5-beta
|
||||
TAG="$(gh release view -R "$APP_REPO" --json tagName -q .tagName)"
|
||||
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Version ohne führendes v (Homebrew will meist "0.4.5-beta")
|
||||
VER="${TAG#v}"
|
||||
echo "version=$VER" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Asset-URL: passe den Filter an deine Release-Assets an
|
||||
# Beispiel: eine .zip oder .dmg
|
||||
URL="$(gh release view -R "$APP_REPO" "$TAG" --json assets -q '.assets[] | select(.name | test("\\.(zip|dmg)$")) | .url' | head -n 1)"
|
||||
|
||||
if [ -z "${URL:-}" ]; then
|
||||
echo "No matching asset (.zip/.dmg) found in release $TAG" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "asset_url=$URL" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Download asset and compute sha256
|
||||
id: sha
|
||||
run: |
|
||||
set -euo pipefail
|
||||
URL="${{ steps.rel.outputs.asset_url }}"
|
||||
curl -L --fail -o /tmp/release_asset "$URL"
|
||||
SHA="$(shasum -a 256 /tmp/release_asset | awk '{print $1}')"
|
||||
echo "sha256=$SHA" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Update cask file (version + url + sha256)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
FILE="${CASK_FILE}"
|
||||
VER="${{ steps.rel.outputs.version }}"
|
||||
URL="${{ steps.rel.outputs.asset_url }}"
|
||||
SHA="${{ steps.sha.outputs.sha256 }}"
|
||||
|
||||
test -f "$FILE"
|
||||
|
||||
# version "..."
|
||||
perl -pi -e 's/^(\s*version\s+).*$/${1}"'"$VER"'"/' "$FILE"
|
||||
|
||||
# url "..."
|
||||
perl -pi -e 's/^(\s*url\s+).*$/${1}"'"$URL"'"/' "$FILE"
|
||||
|
||||
# sha256 "..."
|
||||
perl -pi -e 's/^(\s*sha256\s+).*$/${1}"'"$SHA"'"/' "$FILE"
|
||||
|
||||
echo "Updated $FILE:"
|
||||
sed -n '1,120p' "$FILE"
|
||||
|
||||
- name: Commit and push if changed
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if git diff --quiet; then
|
||||
echo "No changes to commit."
|
||||
exit 0
|
||||
fi
|
||||
git add "${CASK_FILE}"
|
||||
git commit -m "chore(cask): bump to ${{ steps.rel.outputs.tag }}"
|
||||
git push
|
||||
Loading…
Reference in a new issue