Compare commits

...

2 Commits
v44 ... v47

Author SHA1 Message Date
Michael Otto
495a4ac049 Pfad der metadate.template angepasst 2026-03-03 11:16:03 +01:00
Michael Otto
a69d00df31 auf plugin.info umgestellt 2026-03-03 11:14:22 +01:00
5 changed files with 152 additions and 42 deletions

View File

@@ -55,28 +55,95 @@ jobs:
echo "DEBUG | Version: $VERSION"
echo "DEBUG | Kanal: $CHANNEL"
# - name: metadata.txt erzeugen
# run: |
# cd repo
# VERSION="${{ steps.releaseinfo.outputs.version }}"
# # Vorlage kopieren
# cp .plugin/metadata.template metadata.txt
# # Platzhalter ersetzen
# sed -i "s/@VERSION@/${VERSION}/g" metadata.txt
# echo "DEBUG | metadata.txt erzeugt:"
# cat metadata.txt
- name: plugin.info einlesen
id: info
run: |
cd repo
while IFS='=' read -r key value; do
echo "$key=$value" >> $GITHUB_OUTPUT
done < plugin.info
echo "DEBUG | plugin.info geladen:"
cat plugin.info
- name: metadata.txt erzeugen
run: |
cd repo
VERSION="${{ steps.releaseinfo.outputs.version }}"
TEMPLATE="templates/metadata.template"
OUT="metadata.txt"
# Vorlage kopieren
cp .plugin/metadata.template metadata.txt
CONTENT=$(cat "$TEMPLATE")
# Platzhalter ersetzen
sed -i "s/@VERSION@/${VERSION}/g" metadata.txt
CONTENT="${CONTENT//\{\{NAME\}\}/${{ steps.info.outputs.name }}}"
CONTENT="${CONTENT//\{\{DESCRIPTION\}\}/${{ steps.info.outputs.description }}}"
CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}"
CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}"
CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}"
printf "%s\n" "$CONTENT" > "$OUT"
echo "DEBUG | metadata.txt erzeugt:"
cat metadata.txt
# - name: ZIP-Datei erstellen
# id: zip
# run: |
# cd repo
# # Plugin-Ordnername aus .plugin/zip_folder lesen
# ZIP_FOLDER=$(cat .plugin/zip_folder)
# echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER"
# VERSION="${{ steps.releaseinfo.outputs.version }}"
# REPO_NAME="${GITHUB_REPOSITORY##*/}"
# ZIP_NAME="${REPO_NAME}-${VERSION}.zip"
# echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME"
# # Temporären Build-Ordner anlegen
# mkdir -p dist/${ZIP_FOLDER}
# # Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse)
# rsync -a \
# --exclude='.git' \
# --exclude='.gitea' \
# --exclude='.plugin' \
# --exclude='dist' \
# ./ dist/${ZIP_FOLDER}/
# # ZIP erzeugen
# cd dist
# zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \
# -x "*.pyc" -x "*/__pycache__/*"
# cd ..
# # ZIP-Name für spätere Steps bereitstellen
# echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT
# echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}"
- name: ZIP-Datei erstellen
id: zip
run: |
cd repo
# Plugin-Ordnername aus .plugin/zip_folder lesen
ZIP_FOLDER=$(cat .plugin/zip_folder)
ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}"
echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER"
VERSION="${{ steps.releaseinfo.outputs.version }}"
@@ -85,10 +152,8 @@ jobs:
echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME"
# Temporären Build-Ordner anlegen
mkdir -p dist/${ZIP_FOLDER}
# Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse)
rsync -a \
--exclude='.git' \
--exclude='.gitea' \
@@ -96,17 +161,13 @@ jobs:
--exclude='dist' \
./ dist/${ZIP_FOLDER}/
# ZIP erzeugen
cd dist
zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \
-x "*.pyc" -x "*/__pycache__/*"
cd ..
# ZIP-Name für spätere Steps bereitstellen
echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT
echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}"
- name: GiteaRelease erstellen
id: create_release
run: |
@@ -177,31 +238,64 @@ jobs:
exit 1
fi
# - name: Payload erzeugen
# run: |
# cd repo
# PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2)
# DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2)
# AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2)
# EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2)
# VERSION="${{ steps.releaseinfo.outputs.version }}"
# CHANNEL="${{ steps.releaseinfo.outputs.channel }}"
# ZIP_NAME="${{ steps.zip.outputs.zip_name }}"
# CHANGELOG="${{ steps.changelog.outputs.log }}"
# DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}"
# jq -n \
# --arg plugin "$PLUGIN_NAME" \
# --arg version "$VERSION" \
# --arg channel "$CHANNEL" \
# --arg description "$DESCRIPTION" \
# --arg author "$AUTHOR" \
# --arg email "$EMAIL" \
# --arg url "$DOWNLOAD_URL" \
# --arg changelog "$CHANGELOG" \
# '{
# plugin: $plugin,
# version: $version,
# channel: $channel,
# description: $description,
# author: $author,
# email: $email,
# url: $url,
# changelog: $changelog
# }' > payload.json
# echo "Payload:"
# cat payload.json
- name: Payload erzeugen
run: |
cd repo
PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2)
DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2)
AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2)
EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2)
VERSION="${{ steps.releaseinfo.outputs.version }}"
CHANNEL="${{ steps.releaseinfo.outputs.channel }}"
ZIP_NAME="${{ steps.zip.outputs.zip_name }}"
CHANGELOG="${{ steps.changelog.outputs.log }}"
DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}"
jq -n \
--arg plugin "$PLUGIN_NAME" \
--arg plugin "${{ steps.info.outputs.name }}" \
--arg version "$VERSION" \
--arg channel "$CHANNEL" \
--arg description "$DESCRIPTION" \
--arg author "$AUTHOR" \
--arg email "$EMAIL" \
--arg description "${{ steps.info.outputs.description }}" \
--arg author "${{ steps.info.outputs.author }}" \
--arg email "${{ steps.info.outputs.email }}" \
--arg url "$DOWNLOAD_URL" \
--arg changelog "$CHANGELOG" \
--arg changelog "Automatischer Release" \
'{
plugin: $plugin,
version: $version,
@@ -213,21 +307,39 @@ jobs:
changelog: $changelog
}' > payload.json
echo "Payload:"
echo "DEBUG | Payload erzeugt:"
cat payload.json
# - name: Repository aktualisieren
# run: |
# OWNER="AG_QGIS"
# WORKFLOW="update.yml"
# # payload.json in Base64 umwandeln
# PAYLOAD_B64=$(base64 -w0 repo/payload.json)
# # JSON für Gitea bauen
# JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}"
# echo "Sende JSON:"
# echo "$JSON"
# curl -X POST \
# -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
# -H "Content-Type: application/json" \
# -d "$JSON" \
# "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches"
- name: Repository aktualisieren
run: |
OWNER="AG_QGIS"
WORKFLOW="update.yml"
# payload.json in Base64 umwandeln
PAYLOAD_B64=$(base64 -w0 repo/payload.json)
# JSON für Gitea bauen
JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}"
echo "Sende JSON:"
echo "DEBUG | Sende JSON:"
echo "$JSON"
curl -X POST \
@@ -235,4 +347,3 @@ jobs:
-H "Content-Type: application/json" \
-d "$JSON" \
"https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches"

3
.gitignore vendored
View File

@@ -174,4 +174,5 @@ cython_debug/
# PyPI configuration file
.pypirc
metadata.txt
metadata.txt
release.cmd

View File

@@ -1 +0,0 @@
sn_test

View File

@@ -1,14 +1,13 @@
[general]
zip_folder=mein_plugin_ordner
name=LNO Sachsen | Plugin Test Action
qgisMinimumVersion=3.0
qgisMaximumVersion=3.99
description=Test plugin for release pipeline
version=26.3.1
author=Michael Otto
email=michael.otto@landkreis-mittelsachsen.de
version=@VERSION@
author=Daniel Helbig, Michael Otto
email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de
homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action
tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues
repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action
experimental=False
deprecated=False
qgisMinimumVersion=3.0
qgisMaximumVersion=3.99
deprecated=False
experimental=True
zip_folder=plugin_folder

View File

@@ -1,8 +1,8 @@
[general]
name=LNO Sachsen | Plugin Test Action
name={{PLUGIN}}
qgisMinimumVersion=3.0
qgisMaximumVersion=3.99
description=Test plugin for release pipeline
description={{DESCRIPTION}}
version=@VERSION@
author=Daniel Helbig, Michael Otto
email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de