|
|
|
@@ -91,10 +91,14 @@ jobs:
|
|
|
|
|
|
|
|
|
|
# 2. Auto-sense from file structure if no manifest
|
|
|
|
|
MANIFEST=$(find . -maxdepth 3 -name "*.xml" ! -path "./.git/*" -exec grep -l '<extension' {} \; 2>/dev/null | head -1)
|
|
|
|
|
CB_MANIFEST=$(find . -maxdepth 3 -name "*.xml" ! -path "./.git/*" -exec grep -l '<cbplugin' {} \; 2>/dev/null | head -1)
|
|
|
|
|
MOD_FILE=$(find . -maxdepth 4 -name "mod*.class.php" ! -path "./.git/*" -exec grep -l 'extends DolibarrModules' {} \; 2>/dev/null | head -1)
|
|
|
|
|
|
|
|
|
|
if [ -z "$PLATFORM" ]; then
|
|
|
|
|
if [ -n "$MANIFEST" ]; then
|
|
|
|
|
if [ -n "$CB_MANIFEST" ]; then
|
|
|
|
|
PLATFORM="joomla"
|
|
|
|
|
MANIFEST="$CB_MANIFEST"
|
|
|
|
|
elif [ -n "$MANIFEST" ]; then
|
|
|
|
|
PLATFORM="joomla"
|
|
|
|
|
elif [ -n "$MOD_FILE" ]; then
|
|
|
|
|
PLATFORM="dolibarr"
|
|
|
|
@@ -373,18 +377,35 @@ jobs:
|
|
|
|
|
REPO="${{ github.repository }}"
|
|
|
|
|
|
|
|
|
|
# -- Parse extension metadata from XML manifest ----------------
|
|
|
|
|
# Check for Joomla <extension> or Community Builder <cbplugin>
|
|
|
|
|
MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '<extension' {} \; 2>/dev/null | head -1)
|
|
|
|
|
if [ -z "$MANIFEST" ]; then
|
|
|
|
|
echo "Warning: No Joomla XML manifest found — skipping updates.xml" >> $GITHUB_STEP_SUMMARY
|
|
|
|
|
CB_MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '<cbplugin' {} \; 2>/dev/null | head -1)
|
|
|
|
|
IS_CB="false"
|
|
|
|
|
|
|
|
|
|
if [ -z "$MANIFEST" ] && [ -z "$CB_MANIFEST" ]; then
|
|
|
|
|
echo "Warning: No Joomla/CB XML manifest found — skipping updates.xml" >> $GITHUB_STEP_SUMMARY
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# CB plugin takes precedence if no standard manifest
|
|
|
|
|
if [ -z "$MANIFEST" ] && [ -n "$CB_MANIFEST" ]; then
|
|
|
|
|
MANIFEST="$CB_MANIFEST"
|
|
|
|
|
IS_CB="true"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Extract fields using sed (portable — no grep -P)
|
|
|
|
|
EXT_NAME=$(sed -n 's/.*<name>\([^<]*\)<\/name>.*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_TYPE=$(sed -n 's/.*<extension[^>]*type="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_ELEMENT=$(sed -n 's/.*<element>\([^<]*\)<\/element>.*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_CLIENT=$(sed -n 's/.*<extension[^>]*client="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_FOLDER=$(sed -n 's/.*<extension[^>]*group="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
if [ "$IS_CB" = "true" ]; then
|
|
|
|
|
EXT_TYPE="cb_plugin"
|
|
|
|
|
EXT_ELEMENT=$(sed -n 's/.*<cbplugin[^>]*plugin="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_CLIENT=""
|
|
|
|
|
EXT_FOLDER="cb"
|
|
|
|
|
else
|
|
|
|
|
EXT_TYPE=$(sed -n 's/.*<extension[^>]*type="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_ELEMENT=$(sed -n 's/.*<element>\([^<]*\)<\/element>.*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_CLIENT=$(sed -n 's/.*<extension[^>]*client="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
EXT_FOLDER=$(sed -n 's/.*<extension[^>]*group="\([^"]*\)".*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
fi
|
|
|
|
|
TARGET_PLATFORM=$(sed -n 's/.*\(<targetplatform[^/]*\/>\).*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
PHP_MINIMUM=$(sed -n 's/.*<php_minimum>\([^<]*\)<\/php_minimum>.*/\1/p' "$MANIFEST" | head -1)
|
|
|
|
|
|
|
|
|
@@ -461,6 +482,7 @@ jobs:
|
|
|
|
|
template) TYPE_PREFIX="tpl_" ;;
|
|
|
|
|
library) TYPE_PREFIX="lib_" ;;
|
|
|
|
|
package) TYPE_PREFIX="pkg_" ;;
|
|
|
|
|
cb_plugin) TYPE_PREFIX="cb_" ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
DOWNLOAD_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/stable/${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION}.zip"
|
|
|
|
@@ -582,6 +604,7 @@ jobs:
|
|
|
|
|
template) TYPE_PREFIX="tpl_" ;;
|
|
|
|
|
library) TYPE_PREFIX="lib_" ;;
|
|
|
|
|
package) TYPE_PREFIX="pkg_" ;;
|
|
|
|
|
cb_plugin) TYPE_PREFIX="cb_" ;;
|
|
|
|
|
esac
|
|
|
|
|
RELEASE_NAME="${EXT_NAME} ${VERSION} (${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION})"
|
|
|
|
|
|
|
|
|
@@ -652,6 +675,7 @@ jobs:
|
|
|
|
|
template) TYPE_PREFIX="tpl_" ;;
|
|
|
|
|
library) TYPE_PREFIX="lib_" ;;
|
|
|
|
|
package) TYPE_PREFIX="pkg_" ;;
|
|
|
|
|
cb_plugin) TYPE_PREFIX="cb_" ;;
|
|
|
|
|
esac
|
|
|
|
|
ZIP_NAME="${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION}.zip"
|
|
|
|
|
TAR_NAME="${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION}.tar.gz"
|
|
|
|
@@ -814,6 +838,7 @@ jobs:
|
|
|
|
|
template) TYPE_PREFIX="tpl_" ;;
|
|
|
|
|
library) TYPE_PREFIX="lib_" ;;
|
|
|
|
|
package) TYPE_PREFIX="pkg_" ;;
|
|
|
|
|
cb_plugin) TYPE_PREFIX="cb_" ;;
|
|
|
|
|
esac
|
|
|
|
|
ZIP_NAME="${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION}.zip"
|
|
|
|
|
TAR_NAME="${TYPE_PREFIX}${EXT_ELEMENT}-${VERSION}.tar.gz"
|
|
|
|
|