summary refs log tree commit diff
path: root/.ci
diff options
context:
space:
mode:
Diffstat (limited to '.ci')
-rwxr-xr-x.ci/macos/notarize.sh6
-rwxr-xr-x.ci/update-github-release.sh67
2 files changed, 70 insertions, 3 deletions
diff --git a/.ci/macos/notarize.sh b/.ci/macos/notarize.sh
index 2757d44c..345f4828 100755
--- a/.ci/macos/notarize.sh
+++ b/.ci/macos/notarize.sh
@@ -97,7 +97,7 @@ done
 VERSION=${CI_COMMIT_SHORT_SHA}
 
 if [ -n "$VERSION" ]; then
-    mv nheko.dmg "nheko-${VERSION}_${PLAT}.dmg"
-    mkdir artifacts
-    cp "nheko-${VERSION}_${PLAT}.dmg" artifacts/
+    mv nheko.dmg "nheko-${VERSION}-${PLAT}.dmg"
+    mkdir -p artifacts
+    cp "nheko-${VERSION}-${PLAT}.dmg" artifacts/
 fi
\ No newline at end of file
diff --git a/.ci/update-github-release.sh b/.ci/update-github-release.sh
new file mode 100755
index 00000000..234c1f41
--- /dev/null
+++ b/.ci/update-github-release.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+if [ -z "$CI_COMMIT_TAG" ]; then
+    echo "CI_COMMIT_TAG is unset or empty; exiting"
+    exit 1
+fi
+
+echo "Checking if release exists for ${CI_COMMIT_TAG}"
+# check if we already have a release for the current tag or not
+http_code=$(curl \
+  -s \
+  -o /dev/null \
+  -I \
+  -w "%{http_code}" \
+  -H "Accept: application/vnd.github+json" \
+  -H "Authorization: Bearer ${GITHUB_AUTH_TOKEN}"\
+  -H "X-GitHub-Api-Version: 2022-11-28" \
+  "https://api.github.com/repos/Nheko-Reborn/nheko/releases/tags/$CI_COMMIT_TAG")
+
+if [ "$http_code" = "404" ]; then
+    echo "Release does not exist... getting notes from CHANGELOG.md:"
+    release_notes="$(perl -0777 -ne '/.*?(## .*?)\n(## |\Z)/s && print $1' CHANGELOG.md | jq -R -s '.')"
+    echo "$release_notes"
+
+    echo "Creating new release for ${CI_COMMIT_TAG}"
+    # Doing a 'fresh' release, not just updating the assets.
+    release_json="$(curl \
+        -X POST \
+        -H "Accept: application/vnd.github+json" \
+        -H "Authorization: Bearer ${GITHUB_AUTH_TOKEN}"\
+        -H "X-GitHub-Api-Version: 2022-11-28" \
+        https://api.github.com/repos/Nheko-Reborn/nheko/releases \
+        -d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"target_commitish\":\"master\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":${release_notes},\"draft\":true,\"prerelease\":true,\"generate_release_notes\":false}")"
+elif [ "$http_code" = "200" ]; then
+    echo "Release already exists for ${CI_COMMIT_TAG}; Updating"
+    # Updating a release (probably because of cirrus-ci or so)
+    release_json=$(curl \
+        -s \
+        -H "Accept: application/vnd.github+json" \
+        -H "Authorization: Bearer ${GITHUB_AUTH_TOKEN}"\
+        -H "X-GitHub-Api-Version: 2022-11-28" \
+        "https://api.github.com/repos/Nheko-Reborn/nheko/releases/tags/$CI_COMMIT_TAG")
+fi
+
+echo "Getting upload URL..."
+upload_url="$(echo "$release_json" | jq -r '."upload_url"')"
+# get rid of the 'hypermedia' stuff at the end and use a 'real' URL
+echo "Upload URL (hypermedia): ${upload_url}"
+upload_url="$(echo "$upload_url" | sed 's/{?name,label\}/?name/g')"
+
+ls -la .
+echo "Uploading artifacts"
+for file in ./artifacts/*; do
+    name="${file##*/}"
+    echo "Uploading $file"
+    [ -e "$file" ] && curl \
+    -X POST \
+    -H "Accept: application/vnd.github+json" \
+    -H "Authorization: Bearer ${GITHUB_AUTH_TOKEN}"\
+    -H "X-GitHub-Api-Version: 2022-11-28" \
+    -H "Content-Type: application/octet-stream" \
+    "${upload_url}=$name" \
+    --data-binary "@$file"
+done
+
+
+# TODO: AppVeyor stuffs?
\ No newline at end of file