summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.ci/update-github-release.sh56
-rw-r--r--.gitlab-ci.yml21
-rw-r--r--appveyor.yml3
3 files changed, 74 insertions, 6 deletions
diff --git a/.ci/update-github-release.sh b/.ci/update-github-release.sh
new file mode 100644
index 00000000..49f5e18a
--- /dev/null
+++ b/.ci/update-github-release.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+if [ -z "$CI_COMMIT_TAG" ]; then
+    echo "CI_COMMIT_TAG is unset or empty; exiting"
+    exit 1
+fi
+
+
+# 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
+    # 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\":\"Description of the release\",\"draft\":true,\"prerelease\":true,\"generate_release_notes\":false}")"
+elif [ "$http_code" = "200" ]; then
+    # 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
+
+upload_url="$(echo "$release_json" | jq ".upload-url")"
+# get rid of the 'hypermedia' stuff at the end and use a 'real' URL
+upload_url="$(echo "$upload_url" | sed 's/{?name,label\}/?name/g')"
+
+for file in ./artifacts/*; do
+    name="${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 "@$name"
+done
+
+
+# TODO: AppVeyor stuffs?
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 58524d03..fe1cf1fc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,8 @@
+stages:
+  - build
+  - sign
+  - deploy
+
 variables:
   CCACHE_COMPILERCHECK: content
   CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache"
@@ -136,7 +141,7 @@ build-macos:
       - "${CCACHE_DIR}"
 
 codesign-macos:
-  stage: deploy
+  stage: sign
   tags: [macos]
   variables:
     PLAT: "intel"
@@ -153,12 +158,12 @@ codesign-macos:
   rules:
     - if : '$CI_PIPELINE_TRIGGERED && $CI_COMMIT_REF_PROTECTED == "true"'
       variables:
-        PLAT: "m1"
+        PLAT: "apple_silicon"
     - if : '$CI_COMMIT_BRANCH == "master"'
     - if : $CI_COMMIT_TAG
   artifacts:
     paths:
-      - artifacts/nheko-${CI_COMMIT_SHORT_SHA}_${PLAT}.dmg
+      - artifacts/nheko-${CI_COMMIT_SHORT_SHA}-${PLAT}.dmg
       - /tmp/notarize*
     name: nheko-${CI_COMMIT_SHORT_SHA}-macos
 
@@ -303,3 +308,13 @@ linting:
   rules:
     - if : '$CI_PIPELINE_TRIGGERED == null'
 
+github-release:
+  stage: deploy
+  image: alpine:latest
+  tags: [docker]
+  rules:
+    - if: '$CI_COMMIT_TAG != null'
+  before_script:
+    - apk update && apk add jq
+  script:
+    - ./.ci/update-github-release.sh
\ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
index ad849ca1..76932ac2 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -109,9 +109,6 @@ after_build:
     - copy nheko-installer.exe nheko-%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%-installer.exe
     - ps: .\.ci\upload-nightly.ps1
 
-on_success:
-    - if "%APPVEYOR_REPO_TAG%" == "true" (curl -T nheko-%APPVEYOR_REPO_TAG_NAME%-installer.exe -uredsky17:%BINTRAY_APIKEY% https://api.bintray.com/content/nheko-reborn/nheko/%APPVEYOR_REPO_TAG_NAME%/nheko/%APPVEYOR_REPO_TAG_NAME%/)
-
 deploy:
     - description: "Development builds"
       provider: GitHub