From a69d00df31d339ff5b11e59358792890c76cb612 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 11:14:22 +0100 Subject: [PATCH] auf plugin.info umgestellt --- .gitea/workflows/release.yml | 169 +++++++++++++++++++---- .gitignore | 3 +- .plugin/zip_folder | 1 - .plugin/plugin.cfg => plugin.info | 17 ++- {.plugin => templates}/metadata.template | 4 +- 5 files changed, 152 insertions(+), 42 deletions(-) delete mode 100644 .plugin/zip_folder rename .plugin/plugin.cfg => plugin.info (66%) rename {.plugin => templates}/metadata.template (85%) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0077fef..f5c9ce8 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -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=".plugin/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: Gitea‑Release 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" - diff --git a/.gitignore b/.gitignore index 1e87eb9..bab976c 100644 --- a/.gitignore +++ b/.gitignore @@ -174,4 +174,5 @@ cython_debug/ # PyPI configuration file .pypirc -metadata.txt \ No newline at end of file +metadata.txt +release.cmd \ No newline at end of file diff --git a/.plugin/zip_folder b/.plugin/zip_folder deleted file mode 100644 index 4572dbb..0000000 --- a/.plugin/zip_folder +++ /dev/null @@ -1 +0,0 @@ -sn_test \ No newline at end of file diff --git a/.plugin/plugin.cfg b/plugin.info similarity index 66% rename from .plugin/plugin.cfg rename to plugin.info index 6bd305f..207e5a2 100644 --- a/.plugin/plugin.cfg +++ b/plugin.info @@ -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 \ No newline at end of file +qgisMinimumVersion=3.0 +qgisMaximumVersion=3.99 +deprecated=False +experimental=True +zip_folder=plugin_folder diff --git a/.plugin/metadata.template b/templates/metadata.template similarity index 85% rename from .plugin/metadata.template rename to templates/metadata.template index ea4a937..8a2c85e 100644 --- a/.plugin/metadata.template +++ b/templates/metadata.template @@ -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