diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 7f8222c..fae48f9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -24,13 +24,11 @@ jobs: - name: Extract metadata from plugin.xml id: meta run: | - # Ensure plugin.xml exists if [ ! -f plugin.xml ]; then echo "❌ plugin.xml not found!" >&2 exit 1 fi - # Extract name and version (adjust XPath to your XML structure) NAME=$(xmllint --xpath "string(//name)" plugin.xml) VERSION=v$(xmllint --xpath "string(//version)" plugin.xml) @@ -39,23 +37,27 @@ jobs: exit 1 fi - echo "PLUGIN_NAME=$NAME" >> $GITHUB_ENV - echo "VERSION=$VERSION" >> $GITHUB_ENV - echo "FILENAME=${NAME}-${VERSION}.zip" >> $GITHUB_ENV + # Sanitize the name to a safe slug (lowercase, replace non-alnum with '-') + SLUG=$(echo "$NAME" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+//; s/-+$//') - echo "✅ Plugin: $NAME, Version: $VERSION" + echo "PLUGIN_NAME=$NAME" >> $GITHUB_ENV + echo "SLUG=$SLUG" >> $GITHUB_ENV + echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "FILENAME=${SLUG}-${VERSION}.zip" >> $GITHUB_ENV + + echo "✅ Plugin: $NAME, Slug: $SLUG, Version: $VERSION" # ------------------------------------------------------------ # 2. Prepare package (copy everything EXCEPT plugin.xml, .git, .github) # ------------------------------------------------------------ - name: Prepare package run: | - mkdir -p build/"$PLUGIN_NAME" + mkdir -p build/"$SLUG" rsync -a \ --exclude='.git' \ --exclude='.github' \ --exclude='plugin.xml' \ - ./ build/"$PLUGIN_NAME"/ + ./ build/"$SLUG"/ # ------------------------------------------------------------ # 3. Build the zip @@ -63,7 +65,7 @@ jobs: - name: Build plugin zip run: | cd build - zip -r "../$FILENAME" "$PLUGIN_NAME" + zip -r "../$FILENAME" "$SLUG" cd .. # ------------------------------------------------------------