Files
siti-ai-product-content-gen…/.github/workflows/release.yml
Roberto Guagliardo 2f0a44706b
Some checks failed
Generate Manifest & Tag / tag (push) Failing after 3s
fix: improve tag existence check by using local tags
2026-02-01 01:01:41 +00:00

119 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Generate Manifest & Tag
on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'groq-ai-product-text.php'
- 'manifest.json'
- '.github/workflows/release.yml'
jobs:
tag:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Determine plugin version
id: meta
run: |
VERSION=$(grep -E "^\s*\*\s*Version:" -m 1 groq-ai-product-text.php | sed -E 's/.*Version:\s*//')
VERSION=$(echo "$VERSION" | tr -d '\r')
if [ -z "$VERSION" ]; then
echo "::error::Kon pluginversie niet bepalen."
exit 1
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
- name: Genereer manifest.json uit plugin header
run: |
python3 - <<'PY'
import json
import re
with open('groq-ai-product-text.php', 'r', encoding='utf-8') as handle:
content = handle.read()
header_match = re.search(r'/\*\*(.*?)\*/', content, re.S)
header = header_match.group(1) if header_match else ''
def read_field(label: str) -> str:
match = re.search(r'^\s*\*\s*' + re.escape(label) + r'\s*:\s*(.+)$', header, re.M)
return match.group(1).strip() if match else ''
manifest = {
'plugin_name': read_field('Plugin Name'),
'description': read_field('Description'),
'version': read_field('Version'),
'author': read_field('Author'),
'author_url': read_field('Author URI'),
}
with open('manifest.json', 'w', encoding='utf-8') as handle:
json.dump(manifest, handle, ensure_ascii=False, indent=2)
print('manifest.json aangemaakt/bijgewerkt')
PY
- name: Toon manifest.json
run: |
echo "manifest.json inhoud:"
cat manifest.json
- name: Commit & push manifest.json
run: |
if git diff --quiet -- manifest.json; then
echo "manifest.json ongewijzigd; geen commit nodig."
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add manifest.json
git commit -m "chore: update manifest.json"
git push
- name: Check if tag exists
id: tagcheck
run: |
TAG="v${{ steps.meta.outputs.version }}"
git fetch --tags --force
if git tag -l "$TAG" | grep -qx "$TAG"; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Tag bestaat al workflow afronden
if: steps.tagcheck.outputs.exists == 'true'
run: |
echo "Tag v${{ steps.meta.outputs.version }} bestaat al. Tag wordt overgeslagen."
- name: Maak Gitea tag
if: steps.tagcheck.outputs.exists == 'false'
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_SERVER_URL: ${{ vars.GITEA_SERVER_URL }}
GITEA_REPOSITORY: ${{ vars.GITEA_REPOSITORY }}
run: |
VERSION="${{ steps.meta.outputs.version }}"
TAG="v$VERSION"
git tag -a "$TAG" -m "$TAG"
if [ -n "$GITEA_TOKEN" ] && [ -n "$GITEA_SERVER_URL" ] && [ -n "$GITEA_REPOSITORY" ]; then
HOST="${GITEA_SERVER_URL#https://}"
HOST="${HOST#http://}"
AUTH_URL="https://oauth2:${GITEA_TOKEN}@${HOST}/${GITEA_REPOSITORY}.git"
git push "$AUTH_URL" "$TAG"
else
git push origin "$TAG"
fi