Selaa lähdekoodia

deploy api docs to http://api.haxe.org/v/dev/

Andy Li 9 vuotta sitten
vanhempi
commit
070d004f75
5 muutettua tiedostoa jossa 29 lisäystä ja 4 poistoa
  1. 1 0
      .gitignore
  2. 3 0
      .travis.yml
  3. 5 0
      Makefile
  4. BIN
      extra/deploy_key.enc
  5. 20 4
      tests/RunCi.hx

+ 1 - 0
.gitignore

@@ -13,6 +13,7 @@
 /extra/*.swc
 /extra/*.swc
 /extra/bintray.json
 /extra/bintray.json
 /extra/git-archive-all
 /extra/git-archive-all
+/extra/deploy_key
 
 
 /version.ml
 /version.ml
 /haxe
 /haxe

+ 3 - 0
.travis.yml

@@ -15,6 +15,8 @@ env:
     - secure: "VBJDQNJ9uvdt0aszo7oU3txuRvjkuLmuHZGOkrd4wE/5B4sX5jzx/+dnrKcNTXJCmQ/rVLuMu9GyxqVjNHlzce678voxdQNOtNkNgpkr1qN9/A9rRnCp77hH27ErdthpWxbmcnE62hAJ83TIKSvn//5lAkx4sMCKS1NXEWQ5qec="
     - secure: "VBJDQNJ9uvdt0aszo7oU3txuRvjkuLmuHZGOkrd4wE/5B4sX5jzx/+dnrKcNTXJCmQ/rVLuMu9GyxqVjNHlzce678voxdQNOtNkNgpkr1qN9/A9rRnCp77hH27ErdthpWxbmcnE62hAJ83TIKSvn//5lAkx4sMCKS1NXEWQ5qec="
     # HAXECI_GH_TOKEN: haxe-ci Github personal access token
     # HAXECI_GH_TOKEN: haxe-ci Github personal access token
     - secure: "TpEMYTLgNrVD7kR6hs6EwyWNXUxnfV6XO5MGvYQncKXB1N65PG18n4WQFhnKaH8C2QTFE7dq7688ooXGzwWeoT9WAOBey10jP1f7LXEAjMGAUA4vh2zS93qBZ92ZgzCDZnQN7ZOTQGocwU6Xolu+7/6hP2M8041HBixmFuNkXF4="
     - secure: "TpEMYTLgNrVD7kR6hs6EwyWNXUxnfV6XO5MGvYQncKXB1N65PG18n4WQFhnKaH8C2QTFE7dq7688ooXGzwWeoT9WAOBey10jP1f7LXEAjMGAUA4vh2zS93qBZ92ZgzCDZnQN7ZOTQGocwU6Xolu+7/6hP2M8041HBixmFuNkXF4="
+    # deploy_key_decrypt
+    - secure: "A75uYqU0Xz6plIgSewEs0QQWe472dCMb9kf3j7Hx0DS7dApXgx8++189sw9Sv0wam5KPtbcIM292MucjGCb5zocVj9xCUVgajhEA0QpTuDMBjk/cg3ClWCGjfybaCl2E5LLdUs7Zy4b4oNWtVikOWLWJ4sC1kaarR9p6kv8yYZg="
 
 
 sudo: false
 sudo: false
 addons:
 addons:
@@ -48,6 +50,7 @@ matrix:
       env:
       env:
         - TEST=neko
         - TEST=neko
         - BINTRAY=1
         - BINTRAY=1
+        - DEPLOY=1
     - os: linux
     - os: linux
       env:
       env:
         - TEST=js
         - TEST=js

+ 5 - 0
Makefile

@@ -218,9 +218,14 @@ install_dox:
 	haxelib git dox https://github.com/dpeek/dox
 	haxelib git dox https://github.com/dpeek/dox
 
 
 package_doc:
 package_doc:
+	mkdir -p $(PACKAGE_OUT_DIR)
 	cd $$(haxelib path dox | head -n 1) && haxe run.hxml && haxe gen.hxml
 	cd $$(haxelib path dox | head -n 1) && haxe run.hxml && haxe gen.hxml
 	haxelib run dox --title "Haxe API" -o $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_doc.zip -D version "$$(haxe -version 2>&1)" -i $$(haxelib path dox | head -n 1)bin/xml -ex microsoft -ex javax -ex cs.internal -D source-path https://github.com/HaxeFoundation/haxe/blob/$(BRANCH)/std/
 	haxelib run dox --title "Haxe API" -o $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_doc.zip -D version "$$(haxe -version 2>&1)" -i $$(haxelib path dox | head -n 1)bin/xml -ex microsoft -ex javax -ex cs.internal -D source-path https://github.com/HaxeFoundation/haxe/blob/$(BRANCH)/std/
 
 
+deploy_doc:
+	scp $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_doc.zip [email protected]:/data/haxeapi/www/v/dev/api-latest.zip
+	ssh [email protected] "cd /data/haxeapi/www/v/dev && find . ! -name 'api-latest.zip' -maxdepth 1 -mindepth 1 -exec rm -rf {} + && unzip -o api-latest.zip"
+
 # Clean
 # Clean
 
 
 clean: clean_libs clean_haxe clean_tools clean_package
 clean: clean_libs clean_haxe clean_tools clean_package

BIN
extra/deploy_key.enc


+ 20 - 4
tests/RunCi.hx

@@ -63,21 +63,22 @@ class RunCi {
 		If `useRetry` is `true`, the command will be re-run if it exits with non-zero code (3 trials).
 		If `useRetry` is `true`, the command will be re-run if it exits with non-zero code (3 trials).
 		It is useful for running network-dependent commands.
 		It is useful for running network-dependent commands.
 	*/
 	*/
-	static function runCommand(cmd:String, args:Array<String>, useRetry:Bool = false):Void {
+	static function runCommand(cmd:String, ?args:Array<String>, useRetry:Bool = false):Void {
 		var trials = useRetry ? 3 : 1;
 		var trials = useRetry ? 3 : 1;
 		var exitCode:Int = 1;
 		var exitCode:Int = 1;
+		var cmdStr = cmd + (args == null ? '' : ' $args');
 
 
 		while (trials-->0) {
 		while (trials-->0) {
-			Sys.println('Command: $cmd $args');
+			Sys.println('Command: $cmdStr');
 
 
 			var t = Timer.stamp();
 			var t = Timer.stamp();
 			exitCode = Sys.command(cmd, args);
 			exitCode = Sys.command(cmd, args);
 			var dt = Math.round(Timer.stamp() - t);
 			var dt = Math.round(Timer.stamp() - t);
 
 
 			if (exitCode == 0)
 			if (exitCode == 0)
-				successMsg('Command exited with $exitCode in ${dt}s: $cmd $args');
+				successMsg('Command exited with $exitCode in ${dt}s: $cmdStr');
 			else
 			else
-				failMsg('Command exited with $exitCode in ${dt}s: $cmd $args');
+				failMsg('Command exited with $exitCode in ${dt}s: $cmdStr');
 
 
 			if (exitCode == 0) {
 			if (exitCode == 0) {
 				return;
 				return;
@@ -626,6 +627,21 @@ class RunCi {
 			// generate doc
 			// generate doc
 			runCommand("make", ["-s", "install_dox"]);
 			runCommand("make", ["-s", "install_dox"]);
 			runCommand("make", ["-s", "package_doc"]);
 			runCommand("make", ["-s", "package_doc"]);
+
+			// deploy doc to api.haxe.org
+			if (
+				gitInfo.branch == "development" && 
+				Sys.getEnv("DEPLOY") != null && 
+				Sys.getEnv("deploy_key_decrypt") != null
+			) {
+				//setup deploy_key
+				runCommand("openssl aes-256-cbc -k \"$deploy_key_decrypt\" -in extra/deploy_key.enc -out extra/deploy_key -d");
+				runCommand("chmod 600 deploy_key");
+				runCommand("eval `ssh-agent -s`");
+				runCommand("ssh-add deploy_key");
+
+				runCommand("make", ["-s", "deploy_doc"]);
+			}
 		}
 		}
 	}
 	}