Просмотр исходного кода

Merge pull request #484 from chinhodado/build

AppVeyor: Upload build to Mega upon build completion
bunnei 11 лет назад
Родитель
Сommit
ad666ac47a
2 измененных файлов с 61 добавлено и 0 удалено
  1. 33 0
      appveyor.yml
  2. 28 0
      upload_to_mega.js

+ 33 - 0
appveyor.yml

@@ -6,6 +6,16 @@ clone_depth: 1
 
 environment:
   QTDIR: C:\Qt\5.4\msvc2013_opengl
+  MEGA_EMAIL:
+    secure: rEo9CGAYX87GKTqZCZ9vLCNCNqxO5JLgbERaHF3YJWg=
+  MEGA_PASSWORD:
+    secure: zE1zmgjS/6GfN/19ROl/O0fVR58svORQ5gdtsxI7J8k=
+
+platform:
+  - Win32
+
+configuration:
+  - Release
 
 install:
   - git submodule update --init --recursive
@@ -15,3 +25,26 @@ before_build:
   - cd build
   - cmake ..
   - cd ..
+
+after_build:
+  # upload the build to Mega
+  - cinst wget -x86
+  - wget -q http://megatools.megous.com/builds/megatools-1.9.94-win64.zip
+    # extract megatools silently. See http://stackoverflow.com/a/11629736/1748450
+  - 7z x megatools-1.9.94-win64.zip | FIND /V "ing  "
+    # copy the qt dlls 
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\icudt53.dll build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\icuin53.dll build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\icuuc53.dll build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\Qt5Core.dll build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\Qt5Gui.dll  build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\Qt5OpenGL.dll build\bin\release
+  - copy C:\Qt\5.4\msvc2013_opengl\bin\Qt5Widgets.dll  build\bin\release
+  - mkdir build\bin\release\platforms\
+  - copy C:\Qt\5.4\msvc2013_opengl\plugins\platforms\qwindows.dll build\bin\release\platforms
+    # zip up the build folder -> build.7z
+  - 7z a build .\build\bin\release\*
+    # rename, upload to Mega
+  - npm install sanitize-filename
+  - cd megatools-1.9.94-win64
+  - node ..\upload_to_mega.js

+ 28 - 0
upload_to_mega.js

@@ -0,0 +1,28 @@
+var util = require('util');
+var exec = require('child_process').exec;
+var sanitize = require("sanitize-filename");
+
+var email = process.env.MEGA_EMAIL;
+var password = process.env.MEGA_PASSWORD;
+var sourceFileName = 'build.7z';
+var dstFileName = process.env.APPVEYOR_REPO_COMMIT.substring(0, 8) + " - " + 
+                process.env.APPVEYOR_REPO_COMMIT_MESSAGE.substring(0, 100) + ".7z";
+dstFileName = sanitize(dstFileName);
+
+var cmd = util.format('megaput ../%s --path \"/Root/Citra/Windows/%s\" --username=%s --password=%s --no-progress',
+                        sourceFileName,
+                        dstFileName,
+                        email,
+                        password);
+
+// only upload build on master branch, and not on other branches or PRs
+if (process.env.APPVEYOR_REPO_BRANCH == "master") {
+    console.log("Uploading file " + dstFileName + " to Mega...");
+    exec(cmd, function(error, stdout, stderr) {
+        console.log('stdout: ' + stdout);
+        console.log('stderr: ' + stderr);
+        if (error !== null) {
+            console.log('exec error: ' + error);
+        }
+    });            
+}