From 1a2b8b7a6b7aa57aafeb3e004c1a449443e511e3 Mon Sep 17 00:00:00 2001
From: "DeepBlueV7.X" <nicolas.werner@hotmail.de>
Date: Mon, 2 Mar 2020 08:42:01 +0000
Subject: [PATCH] Upload nightlies to #nheko-nightlies:neko.dev (#132)

* Upload nightlies to a matrix room

* Add branch to upload name

* Update README with new nightly location
---
 .ci/upload-nightly.ps1 | 21 +++++++++++++++++++++
 .ci/upload-nightly.sh  |  9 +++++++++
 .travis.yml            | 25 +++----------------------
 README.md              |  2 +-
 appveyor.yml           | 10 ++++++++--
 5 files changed, 42 insertions(+), 25 deletions(-)
 create mode 100644 .ci/upload-nightly.ps1
 create mode 100755 .ci/upload-nightly.sh

diff --git a/.ci/upload-nightly.ps1 b/.ci/upload-nightly.ps1
new file mode 100644
index 000000000..9c1c33c30
--- /dev/null
+++ b/.ci/upload-nightly.ps1
@@ -0,0 +1,21 @@
+$file = "nheko_win_64.zip"
+$fileName = "nheko-${env:APPVEYOR_REPO_BRANCH}-${env:APPVEYOR_REPO_COMMIT}-win64.zip"
+
+$response = Invoke-RestMethod -uri "https://matrix.neko.dev/_matrix/media/r0/upload?filename=$fileName" -Method Post -Infile "$file" -ContentType 'application/x-compressed' -Headers @{"Authorization"="Bearer ${env:MATRIX_ACCESS_TOKEN}"}
+
+$txId = [DateTimeOffset]::Now.ToUnixTimeSeconds()
+$fileSize = (Get-Item $file).Length
+$body = @{
+  "body" = "${fileName}"
+  "filename"= "${fileName}"
+  "info" = @{
+    "mimetype" = "application/x-compressed"
+    "size" = ${fileSize}
+  }
+  "msgtype" = "m.file"
+  "url" = ${response}.content_uri
+} | ConvertTo-Json
+$room = "!TshDrgpBNBDmfDeEGN:neko.dev"
+
+Invoke-RestMethod -uri "https://matrix.neko.dev/_matrix/client/r0/rooms/${room}/send/m.room.message/${txid}" -Method Put -Body "$body" -ContentType 'application/json' -Headers @{"Authorization"="Bearer ${env:MATRIX_ACCESS_TOKEN}"}
+
diff --git a/.ci/upload-nightly.sh b/.ci/upload-nightly.sh
new file mode 100755
index 000000000..4251655a0
--- /dev/null
+++ b/.ci/upload-nightly.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+file=$(find artifacts/ -type f -exec basename {} \;)
+fileName="nheko-${TRAVIS_BRANCH}-${file#nheko-}"
+
+uri=$(curl -H "Authorization: Bearer ${MATRIX_ACCESS_TOKEN}" -H "Content-Type: application/x-compressed" -X POST --data-binary "@artifacts/${file}" "https://matrix.neko.dev/_matrix/media/r0/upload?filename=${fileName}"  --http1.1 | python -c "import sys, json; print(json.load(sys.stdin)['content_uri'])")
+echo "Uploaded to ${uri}"
+
+curl -H "Authorization: Bearer ${MATRIX_ACCESS_TOKEN}" -H "Content-Type: application/json" -X PUT -d "{ \"body\": \"${fileName}\", \"filename\": \"${fileName}\", \"info\": { \"mimetype\": \"application/x-compressed\", \"size\": $(wc -c < artifacts/${file}) }, \"msgtype\": \"m.file\", \"url\": \"${uri}\" }" "https://matrix.neko.dev/_matrix/client/r0/rooms/${ROOM}/send/m.room.message/$(date +%s)"
diff --git a/.travis.yml b/.travis.yml
index ac3512bda..08126853a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -33,6 +33,7 @@ matrix:
                 - ninja
                 - openssl
                 - qt5
+                - python3 # for uploads
               update: true # workaround for broken travis homebrew
         - os: linux
           compiler: gcc-7
@@ -144,34 +145,14 @@ script:
     - sed -i -e "s/VERSION_NAME_VALUE/${VERSION}/g" ./.ci/bintray-release.json || true
     - cp ./.ci/bintray-release.json .
 deploy:
-- provider: s3
-  access_key_id: $ARTIFACTS_KEY
-  secret_access_key: $ARTIFACTS_SECRET
-  bucket: $ARTIFACTS_BUCKET
-  region: $AWS_DEFAULT_REGION
-  detect_encoding: true
-  cache_control: "max-age=31536000"
+- provider: script
+  script: ./.ci/upload-nightly.sh
   skip_cleanup: true
-  acl: public_read
-  local_dir: artifacts
   on:
     condition: "$DEPLOYMENT == 1"
     repo: Nheko-Reborn/nheko
     tags: false
     all_branches: true
-- provider: bintray
-  user: "redsky17"
-  key:
-    secure: "2C+ESOClZdNCDzfUfE8Rcdn9+BM3/5x1lebGS0qRxICMAuylx50C8RAxlqKIFNI1J+IMnj5xhK+1oWsLg6wUdo8B3JocvM6P1NbC/WwfY5UJVwtSmzcqvEC+IjM90Bng8OoM5f6ED3IAUyYPBgo8J14+2l5Oruvr99t0mrpniLXDf66TJrI9u/+05JYa2pm0EWlQkDVaziI+96zAt1pMIX9Z/ToTmUbq2OAlHaN8H4hR5aBRmYuF11FQVyARK64eqRsBV4RXKJ9DjW7BR+pQV008hQUoXrCxK8xIf/Qph9h1fz63961NJxfru62LeuZ4Z8MUcV9L+p0HYZzkhNdn5Z3QFf3SXbrVCYs6LK6+uKHpmYS7vB5XwjDx9SWc2szsd5OVKJg3YEdBcC4KUSL3VEbBHDSQ3GFsVKoBsZvopwHkyCmPotY47HtEiPBLdEcsOvcVyeU5Gfq9EOp9dB+nJbNrujBgav1l13CorkBG2rgD+NRivV1otclXnPsIj85ySrc6xk0VDN3zogLAdLw0f+fNOaK17N8GmhPbCu/iX2Vjem/fdjh4NPC4pSNDei2MoWUfqGBmoTxuQEsZeywigwV2c51W9RZuwo8X810N3ehVcBmmNyLjbKmYT+8Kp+dJbaf/ErFnvdZl06mX2bgyxFakv5iQY3dwX4WYHvl77c4="
-  skip_cleanup: true
-  overwrite: true
-  file: bintray-release.json
-  on:
-    condition: "$DEPLOYMENT == 1"
-    repo: Nheko-Reborn/nheko
-    tags: false
-    all_branches: true
-    deploy: 
 - skip_cleanup: true
   overwrite: true
   provider: releases
diff --git a/README.md b/README.md
index db522f70e..acd8b1e69 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ nheko
 [![Build Status](https://travis-ci.org/Nheko-Reborn/nheko.svg?branch=master)](https://travis-ci.org/Nheko-Reborn/nheko)
 [![Build status](https://ci.appveyor.com/api/projects/status/07qrqbfylsg4hw2h/branch/master?svg=true)](https://ci.appveyor.com/project/redsky17/nheko/branch/master)
 [![Stable Version](https://img.shields.io/badge/download-stable-green.svg)](https://github.com/Nheko-Reborn/nheko/releases/v0.6.4)
-[![Nightly](https://img.shields.io/badge/download-nightly-green.svg)](https://nheko-reborn-artifacts.s3.us-east-2.amazonaws.com/list.html)
+[![Nightly](https://img.shields.io/badge/download-nightly-green.svg)](https://matrix-static.neko.dev/room/!TshDrgpBNBDmfDeEGN:neko.dev/)
 [![#nheko-reborn:matrix.org](https://img.shields.io/matrix/nheko-reborn:matrix.org.svg?label=%23nheko-reborn:matrix.org)](https://matrix.to/#/#nheko-reborn:matrix.org)
 [![AUR: nheko](https://img.shields.io/badge/AUR-nheko-blue.svg)](https://aur.archlinux.org/packages/nheko)
 <a href='https://flathub.org/apps/details/io.github.NhekoReborn.Nheko'><img width='240' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a>
diff --git a/appveyor.yml b/appveyor.yml
index 78b571399..43d459d1e 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -9,10 +9,14 @@ platform: x64
 environment:
     BINTRAY_APIKEY:
         secure: "iGl5mzE9/ta9kFELUxDw9XtlYMSCMai9xowXIkYzU8WKHz7NfW0mLwMJZvblZFXJ"
+    MATRIX_ACCESS_TOKEN:
+        secure: Qoy+QQ8zWXYCQrck9GtXJsoPTv9r/rhgCDUlKJ6ue+gkteYG40E9MxgwP1svn6bse20H4z6Svrxn8kFbcJB7Wg2Cnv1s326/vsJJzhWir2eHFFGK+f4SB992/U0HoQmk3Cq5hPk7dLcA7KqHIa1g1PTSFPfl1VODJ2UqqAyn8nzbC5ym+wwU1buJqoWPlTyHBW7eE8wNe77+qI18XpF7NN8yuOOyg3Tzup9YyXLrI36XiJu/5JD3j3s3V1QiUTpuLyQzqwuBUOf1MHTbzuPwHm3ZwzSM98WD6aL6riaK9qa7mDbSx1aY0ukIYSY9IdAfHNwZY/DEAn+QAVD+ZTvPq04ASv+kmSFpOBKr07kpqfM=
+
+
 
 cache:
-  - c:\hunter\ -> appveyor.yml
-  - build\_deps -> appveyor.yml,deps\CMakeLists.txt
+  - c:\hunter\
+  - build\_deps -> appveyor.yml
 
 build:
     verbosity: minimal
@@ -106,6 +110,8 @@ after_build:
 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%/)
 
+before_deploy:
+  - ps: .\.ci\upload-nightly.ps1
 deploy:
     - description: "Development builds"
       provider: GitHub
-- 
GitLab