forked from AG_QGIS/Plugin_Test_Action
Erste von claude.ai erstellte Version
This commit is contained in:
@@ -1,20 +1,98 @@
|
|||||||
name: Build custom release zip
|
name: Release Plugin
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- '*' # läuft bei jedem neuen Tag
|
- 'v*'
|
||||||
|
branches:
|
||||||
|
- feature/release # Zum Testen: auch bei Branch-Push auslösen
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-release:
|
release:
|
||||||
runs-on: docker
|
runs-on: alpine-latest
|
||||||
steps:
|
steps:
|
||||||
# 1. Repository auschecken
|
- uses: actions/checkout@v3
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
# 2. ZIP-Datei mit ausgewählten Dateien/Ordnern erstellen
|
- name: Install dependencies
|
||||||
- name: Create custom zip
|
run: apk add --no-cache zip curl
|
||||||
|
|
||||||
|
- name: Determine channel from tag
|
||||||
|
id: channel
|
||||||
run: |
|
run: |
|
||||||
apk add zip
|
# Bei Branch-Push (kein Tag): dev als Default
|
||||||
zip -r my-release-${GITEA_REF_NAME}.zip src/ docs/ README.md
|
TAG="${{ github.ref_name }}"
|
||||||
|
if [[ "$TAG" =~ -dev ]]; then
|
||||||
|
echo "channel=dev" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
||||||
|
elif [[ "$TAG" =~ -beta ]]; then
|
||||||
|
echo "channel=beta" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
||||||
|
elif [[ "$TAG" =~ ^v[0-9] ]]; then
|
||||||
|
echo "channel=stable" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
# Branch-Push ohne Tag → dev-Build
|
||||||
|
echo "channel=dev" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=dev-$(date +%Y%m%d-%H%M)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build plugin ZIP
|
||||||
|
run: |
|
||||||
|
PLUGIN_NAME="Plugin_Test_Action"
|
||||||
|
VERSION="${{ steps.channel.outputs.version }}"
|
||||||
|
mkdir -p dist
|
||||||
|
zip -r dist/${PLUGIN_NAME}-${VERSION}.zip \
|
||||||
|
${PLUGIN_NAME}/ \
|
||||||
|
-x "*.pyc" -x "*/__pycache__/*"
|
||||||
|
echo "ZIP_PATH=dist/${PLUGIN_NAME}-${VERSION}.zip" >> $GITHUB_ENV
|
||||||
|
echo "PLUGIN_NAME=${PLUGIN_NAME}" >> $GITHUB_ENV
|
||||||
|
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Create Gitea Release
|
||||||
|
id: create_release
|
||||||
|
run: |
|
||||||
|
IS_PRERELEASE=true
|
||||||
|
[[ "${{ steps.channel.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false
|
||||||
|
|
||||||
|
RESPONSE=$(curl -s -X POST \
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
"${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases" \
|
||||||
|
-d "{
|
||||||
|
\"tag_name\": \"${VERSION}\",
|
||||||
|
\"name\": \"Release ${VERSION}\",
|
||||||
|
\"prerelease\": ${IS_PRERELEASE}
|
||||||
|
}")
|
||||||
|
echo "RELEASE_ID=$(echo $RESPONSE | grep -o '\"id\":[0-9]*' | head -1 | cut -d: -f2)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Upload ZIP asset
|
||||||
|
run: |
|
||||||
|
curl -s -X POST \
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||||
|
-H "Content-Type: application/zip" \
|
||||||
|
"${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets?name=$(basename ${ZIP_PATH})" \
|
||||||
|
--data-binary @${ZIP_PATH}
|
||||||
|
|
||||||
|
- name: Get asset download URL
|
||||||
|
run: |
|
||||||
|
ASSETS=$(curl -s \
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||||
|
"${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets")
|
||||||
|
DOWNLOAD_URL=$(echo $ASSETS | grep -o '"browser_download_url":"[^"]*' | head -1 | cut -d'"' -f4)
|
||||||
|
echo "DOWNLOAD_URL=${DOWNLOAD_URL}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Trigger Repository update
|
||||||
|
run: |
|
||||||
|
curl -s -X POST \
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
"${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \
|
||||||
|
-d "{
|
||||||
|
\"type\": \"plugin-released\",
|
||||||
|
\"payload\": {
|
||||||
|
\"plugin\": \"${PLUGIN_NAME}\",
|
||||||
|
\"version\": \"${VERSION}\",
|
||||||
|
\"channel\": \"${{ steps.channel.outputs.channel }}\",
|
||||||
|
\"download_url\": \"${DOWNLOAD_URL}\"
|
||||||
|
}
|
||||||
|
}"
|
||||||
26
metadata.txt
26
metadata.txt
@@ -1,21 +1,13 @@
|
|||||||
[general]
|
[general]
|
||||||
name=LNO Sachsen | Basisfunktionen
|
name=LNO Sachsen | Plugin Test Action
|
||||||
qgisMinimumVersion=3.0
|
qgisMinimumVersion=3.0
|
||||||
description=Dieses Plugin ist ein Test
|
qgisMaximumVersion=3.99
|
||||||
version=25.10.3
|
description=Test plugin for release pipeline
|
||||||
|
version=26.3.1
|
||||||
author=Michael Otto
|
author=Michael Otto
|
||||||
email=michael.otto@landkreis-mittelsachsen.de
|
email=michael.otto@landkreis-mittelsachsen.de
|
||||||
|
homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action
|
||||||
about=Provide a brief description of the plugin and its purpose.
|
tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues
|
||||||
|
repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action
|
||||||
hasProcessingProvider=no
|
experimental=False
|
||||||
tags=python
|
deprecated=False
|
||||||
|
|
||||||
category=Plugins
|
|
||||||
icon=icon.png
|
|
||||||
experimental=True
|
|
||||||
|
|
||||||
deprecated=False
|
|
||||||
|
|
||||||
server=False
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user