From c9de2e6f4709f72e23b0508cff2faf8785b6106e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 16 Mar 2026 14:14:40 +0100 Subject: [PATCH] =?UTF-8?q?Ver=C3=A4nderter=20Release=20Ablauf,=20jetzt=20?= =?UTF-8?q?wieder=20mit=20metadata.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 95 ++++++++++++++++++------------------ .gitignore | 3 +- metadata.txt | 14 ++++++ plugin.cfg | 10 ---- 4 files changed, 62 insertions(+), 60 deletions(-) create mode 100644 metadata.txt diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index fc4e5ce..928a9c9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -40,8 +40,20 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - VERSION="${TAG#v}" - + TAG_VERSION="${TAG#v}" + + # Version aus metadata.txt auslesen + VERSION=$(grep -m1 '^version=' repo/metadata.txt | cut -d'=' -f2-) + if [ -z "$VERSION" ]; then + echo "Fehler: Version in repo/metadata.txt nicht gefunden" >&2 + exit 1 + fi + + if [ "$VERSION" != "$TAG_VERSION" ]; then + echo "Fehler: Tag-Version ($TAG_VERSION) stimmt nicht mit metadata.txt-Version ($VERSION) überein" >&2 + exit 1 + fi + case "$TAG" in *-unstable*) CHANNEL="unstable" @@ -65,15 +77,34 @@ jobs: echo "draft=$DRAFT" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT + - name: metadata.txt einlesen + id: metadata + run: | + cd repo + + # Hilfsfunktion, um einen Schlüssel aus metadata.txt auszulesen + get() { + grep -m1 -E "^$1=" metadata.txt | cut -d'=' -f2- || true + } + + echo "name=$(get name)" >> $GITHUB_OUTPUT + echo "description=$(get description)" >> $GITHUB_OUTPUT + echo "author=$(get author)" >> $GITHUB_OUTPUT + echo "email=$(get email)" >> $GITHUB_OUTPUT + echo "qgisMinimumVersion=$(get qgisMinimumVersion)" >> $GITHUB_OUTPUT + echo "qgisMaximumVersion=$(get qgisMaximumVersion)" >> $GITHUB_OUTPUT + echo "experimental=$(get experimental)" >> $GITHUB_OUTPUT + echo "deprecated=$(get deprecated)" >> $GITHUB_OUTPUT + echo "supportsQt6=$(get supportsQt6)" >> $GITHUB_OUTPUT + - name: plugin.cfg einlesen - id: info + id: config run: | cd repo while read -r line || [ -n "$line" ]; do key="${line%%=*}" value="${line#*=}" echo "$key=$value" >> $GITHUB_OUTPUT - echo "$key=$value" done < plugin.cfg - name: Changelog einlesen @@ -103,45 +134,13 @@ jobs: echo "$FULL" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - - name: metadata.txt erzeugen - run: | - cd repo - - # ------------------------ GEÄNDERT ------------------------ - # Temporär die Vorlage aus dem hidden/templates Branch holen - git fetch origin hidden/templates - git checkout origin/hidden/templates -- metadata.template - TEMPLATE="metadata.template" - # ----------------------------------------------------------- - - # TEMPLATE="templates/metadata.template" - OUT="metadata.txt" - - CONTENT=$(cat "$TEMPLATE") - - CONTENT="${CONTENT//\{\{NAME\}\}/${{ steps.info.outputs.name }}}" - CONTENT="${CONTENT//\{\{QGIS_MIN\}\}/${{ steps.info.outputs.qgisMinimumVersion }}}" - CONTENT="${CONTENT//\{\{QGIS_MAX\}\}/${{ steps.info.outputs.qgisMaximumVersion }}}" - CONTENT="${CONTENT//\{\{DESCRIPTION\}\}/${{ steps.info.outputs.description }}}" - CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" - CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}" - CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}" - CONTENT="${CONTENT//\{\{HOMEPAGE\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{TRACKER\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{REPOSITORY\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{EXPERIMENTAL\}\}/${{ steps.info.outputs.experimental }}}" - CONTENT="${CONTENT//\{\{DEPRECATED\}\}/${{ steps.info.outputs.deprecated }}}" - CONTENT="${CONTENT//\{\{QT6\}\}/${{ steps.info.outputs.supportsQt6 }}}" - - printf "%s\n" "$CONTENT" > "$OUT" - rm $TEMPLATE - name: ZIP-Datei erstellen id: zip run: | cd repo - ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" + ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" ZIP_FILE="${ZIP_FOLDER}.zip" echo "ZIP_FOLDER: $ZIP_FOLDER" @@ -233,21 +232,21 @@ jobs: DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_FILE}" jq -n \ - --arg name "${{ steps.info.outputs.name }}" \ + --arg name "${{ steps.metadata.outputs.name }}" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ - --arg description "${{ steps.info.outputs.description }}" \ - --arg author "${{ steps.info.outputs.author }}" \ - --arg email "${{ steps.info.outputs.email }}" \ - --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ - --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ + --arg description "${{ steps.metadata.outputs.description }}" \ + --arg author "${{ steps.metadata.outputs.author }}" \ + --arg email "${{ steps.metadata.outputs.email }}" \ + --arg qgis_min "${{ steps.metadata.outputs.qgisMinimumVersion }}" \ + --arg qgis_max "${{ steps.metadata.outputs.qgisMaximumVersion }}" \ --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ --arg tracker "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ --arg repository "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg experimental "${{ steps.info.outputs.experimental }}" \ - --arg deprecated "${{ steps.info.outputs.deprecated }}" \ - --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ - --arg id "${{ steps.info.outputs.zip_folder }}" \ + --arg experimental "${{ steps.metadata.outputs.experimental }}" \ + --arg deprecated "${{ steps.metadata.outputs.deprecated }}" \ + --arg qt6 "${{ steps.metadata.outputs.supportsQt6 }}" \ + --arg id "${{ steps.config.outputs.zip_folder }}" \ --arg url "$DOWNLOAD_URL" \ --arg changelog "${{ steps.changelog.outputs.current }}" \ '{ @@ -277,7 +276,7 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) - FULL_NAME="${{ steps.info.outputs.name }}" + FULL_NAME="${{ steps.metadata.outputs.name }}" NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') TAG="${{ steps.releaseinfo.outputs.version }}" diff --git a/.gitignore b/.gitignore index bab976c..711691d 100644 --- a/.gitignore +++ b/.gitignore @@ -174,5 +174,4 @@ cython_debug/ # PyPI configuration file .pypirc -metadata.txt -release.cmd \ No newline at end of file +release.cmd diff --git a/metadata.txt b/metadata.txt new file mode 100644 index 0000000..bd383c4 --- /dev/null +++ b/metadata.txt @@ -0,0 +1,14 @@ +[general] +name=LNO Sachsen | Plugin Test Action +qgisMinimumVersion=3.40 +qgisMaximumVersion=3.99 +description=Test plugin for release pipeline +version=0 +author=Daniel Helbig +email=daniel.helbig@kreis-meissen.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/src/branch/unstable/ +experimental=true +deprecated=false +supportsQt6=true \ No newline at end of file diff --git a/plugin.cfg b/plugin.cfg index 0709dc9..ca2e625 100644 --- a/plugin.cfg +++ b/plugin.cfg @@ -1,11 +1 @@ -name=LNO Sachsen | Plugin Test Action -description=Test plugin for release pipeline -author=Daniel Helbig -email=daniel.helbig@kreis-meissen.de -qgisMinimumVersion=3.0 -qgisMaximumVersion=3.99 -deprecated=False -experimental=True -supportsQt6=Yes - zip_folder=plugin_folder