Преглед на файлове

[haxe] Publish script. Pipeline reacts only to version commits.

Davide Tantillo преди 1 година
родител
ревизия
197cfc3efd
променени са 3 файла, в които са добавени 54 реда и са изтрити 17 реда
  1. 24 16
      spine-haxe/build.sh
  2. 1 1
      spine-haxe/haxelib.json
  3. 29 0
      spine-haxe/publish.sh

+ 24 - 16
spine-haxe/build.sh

@@ -1,24 +1,32 @@
 #!/bin/sh
 set -e
 
-if [ -z "$GITHUB_REF" ];
-then
-	BRANCH=$(git symbolic-ref --short -q HEAD)
+if [ -z "$GITHUB_REF" ]; then
+    BRANCH=$(git symbolic-ref --short -q HEAD)
 else
-	BRANCH=${GITHUB_REF#refs/heads/}
+    BRANCH=${GITHUB_REF#refs/heads/}
 fi
 
-echo "Building spine-haxe $BRANCH artifacts"
+# Get the latest commit message
+COMMIT_MSG=$(git log -1 --pretty=%B)
 
-if ! [ -z "$HAXE_UPDATE_URL" ] && ! [ -z "$BRANCH" ];
-then
-	echo "Deploying spine-haxe $BRANCH artifacts"
-	zip -r spine-haxe.zip \
-		haxelib.json \
-		LICENSE \
-		README.md \
-		spine-haxe
-	curl -f -F "[email protected]" "$HAXE_UPDATE_URL$BRANCH"
+# Public only if the commit message is in the correct format
+if echo "$COMMIT_MSG" | grep -qE '^\[haxe\] Release [0-9]+\.[0-9]+\.[0-9]+$'; then
+    VERSION=$(echo "$COMMIT_MSG" | sed -E 's/^\[haxe\] Release ([0-9]+\.[0-9]+\.[0-9]+)$/\1/')
+    echo "Building spine-haxe $BRANCH artifacts (version $VERSION)"
+
+    if [ ! -z "$HAXE_UPDATE_URL" ] && [ ! -z "$BRANCH" ]; then
+        echo "Deploying spine-haxe $BRANCH artifacts (version $VERSION)"
+        zip -r "spine-haxe-$VERSION.zip" \
+            haxelib.json \
+            LICENSE \
+            README.md \
+            spine-haxe
+        curl -f -F "file=@spine-haxe-$VERSION.zip" "$HAXE_UPDATE_URL$BRANCH"
+    else
+        echo "Not deploying artifacts. HAXE_UPDATE_URL and/or BRANCH not set."
+    fi
 else
-	echo "Not deploying artifacts. HAXE_UPDATE_URL and/or BRANCH not set."
-fi
+    echo "The commit is not a release - do not publish."
+	echo "To release the commit has to be in the for: \"[haxe] Release x.y.z\""
+fi

+ 1 - 1
spine-haxe/haxelib.json

@@ -18,7 +18,7 @@
    ],
    "description": "The official Spine Runtime for Haxe",
    "version": "4.2.0",
-   "releasenote": "Initial release",
+   "releasenote": "Update to 4.2.0",
    "contributors": [
       "esotericsoftware"
    ],

+ 29 - 0
spine-haxe/publish.sh

@@ -0,0 +1,29 @@
+#!/bin/sh
+set -e
+
+currentVersion=$(grep -o '"version": "[^"]*' haxelib.json | grep -o '[^"]*$')
+
+major=$(echo "$currentVersion" | cut -d. -f1)
+minor=$(echo "$currentVersion" | cut -d. -f2)
+patch=$(echo "$currentVersion" | cut -d. -f3)
+newPatch=$((patch + 1))
+newVersion="$major.$minor.$newPatch"
+
+echo "current version: $currentVersion"
+echo "new version: $newVersion"
+
+sed -i '' "s/$currentVersion/$newVersion/" haxelib.json
+
+echo "Write Y if you want to commit and push the new version $newVersion."
+echo "This will trigger a pipeline that will publish the new version on esoteric software server."
+echo "Do you want to proceed [y/n]?"
+
+read answer
+if [ "$answer" = "Y" ] || [ "$answer" = "y" ]; then
+    git add haxelib.json
+    git commit -m "[haxe] Release $newVersion"
+    git push origin haxe-ci
+    echo "Changes committed and pushed."
+else
+    echo "Commit and push cancelled, but haxelib.json version updated."
+fi