From 383342a53db6ff5652f1299d50361738080b1a0d Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Thu, 21 Jul 2016 14:57:05 -0700 Subject: [PATCH 1/6] Add runtime sync script --- .travis.yml | 13 +++++++------ tools/sync_runtimes.sh | 10 ++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 tools/sync_runtimes.sh diff --git a/.travis.yml b/.travis.yml index 523e632dcb78c..acc4e20280d90 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ language: java sudo: false - jdk: - - oraclejdk8 - +- oraclejdk8 script: - - mvn install -DskipTests=true - - mvn -pl !azure-batch,!azure-mgmt-website checkstyle:check - - mvn package javadoc:aggregate -DskipTests=true +- mvn install -DskipTests=true +- mvn -pl !azure-batch,!azure-mgmt-website checkstyle:check +- mvn package javadoc:aggregate -DskipTests=true +env: + global: + secure: bB/RoMrP+sMJBZB6G/s4tPhZUyY0DEEszKd1Vne4TTebHnfzeHQDABYWfcJNVeWujlGJmyi78bvyysm6lfhAnDtIQXss+P+ryN53QDZmU8zKmzZIiqRS8IAMEKRhy03/J62RBQX+F52iP3hUykSHlAxV0lmdWIVtVtp0au8Lu+XmptjXDtVzT87anr879Olyc8Ax2izR0EYZpten6CEYKktx6lUoSIWBTYvrUs1ouboK3X1PpKqdVvvt16rswK36zCt7j0b3DTl8F5kinP67dP42f+Kix2IWGtFjcQbXd7Wdd/d8Ouy9BTlsG5wQNk4ChjITYxGZf3p9DupPKlEe7sA+N9ZS2w4iTcNucI/mkRtDVawDqxmPwfbmqkt9KXHBODS1sTmsrSys870sW3bKwAauaUMpJJAkWYXuNXm8iUVGa5nE3u+YB410puRmbXa5c3QbzVrftohIKM/3RvpUDXjXVAJuiLktC0sHvQ3iRS/N07AjjTGdst1oB1zpf8hlgzJzJ8PrGad5/DHGH1WoWQSbJffDCrKf92U1eLVs02Y3RGKSJ+iiXTWsnOGsgy6RVZcKv7AJp3R+uCwVE0dLoSVjhJaIt4zXcUuwN4uUlAOVsIoaWZ6c5UINWHzjuy6IWM+mId4kFYqn8shoDvsgYAZsJctqbqdUtpQVoWCjmiw= diff --git a/tools/sync_runtimes.sh b/tools/sync_runtimes.sh new file mode 100644 index 0000000000000..4bcd2c6ebf457 --- /dev/null +++ b/tools/sync_runtimes.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e # exit with nonzero exit code if anything fails + +git config user.name "Travis CI" +git config user.email "azuresdk@outlook.com" + +git subtree pull --squash --prefix runtimes git@github.com:Azure/autorest-clientruntime-for-java.git master --no-edit +git subtree push --prefix runtimes https://${GH_TOKEN}@github.com:Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} + +curl -i -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"#${TRAVIS_PULL_REQUEST}\"}" From 9dc365ce59f0ca313322094110ac1e3b757bc8fe Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Thu, 21 Jul 2016 14:58:26 -0700 Subject: [PATCH 2/6] invoke script --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index acc4e20280d90..cd95c9b38fffa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ script: - mvn install -DskipTests=true - mvn -pl !azure-batch,!azure-mgmt-website checkstyle:check - mvn package javadoc:aggregate -DskipTests=true +- bash ./tools/sync_runtimes.sh env: global: secure: bB/RoMrP+sMJBZB6G/s4tPhZUyY0DEEszKd1Vne4TTebHnfzeHQDABYWfcJNVeWujlGJmyi78bvyysm6lfhAnDtIQXss+P+ryN53QDZmU8zKmzZIiqRS8IAMEKRhy03/J62RBQX+F52iP3hUykSHlAxV0lmdWIVtVtp0au8Lu+XmptjXDtVzT87anr879Olyc8Ax2izR0EYZpten6CEYKktx6lUoSIWBTYvrUs1ouboK3X1PpKqdVvvt16rswK36zCt7j0b3DTl8F5kinP67dP42f+Kix2IWGtFjcQbXd7Wdd/d8Ouy9BTlsG5wQNk4ChjITYxGZf3p9DupPKlEe7sA+N9ZS2w4iTcNucI/mkRtDVawDqxmPwfbmqkt9KXHBODS1sTmsrSys870sW3bKwAauaUMpJJAkWYXuNXm8iUVGa5nE3u+YB410puRmbXa5c3QbzVrftohIKM/3RvpUDXjXVAJuiLktC0sHvQ3iRS/N07AjjTGdst1oB1zpf8hlgzJzJ8PrGad5/DHGH1WoWQSbJffDCrKf92U1eLVs02Y3RGKSJ+iiXTWsnOGsgy6RVZcKv7AJp3R+uCwVE0dLoSVjhJaIt4zXcUuwN4uUlAOVsIoaWZ6c5UINWHzjuy6IWM+mId4kFYqn8shoDvsgYAZsJctqbqdUtpQVoWCjmiw= From 43d6f4c6acf3fdd053044572b946e284ca246a63 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 21 Jul 2016 15:15:19 -0700 Subject: [PATCH 3/6] Add checks to sync script --- .travis.yml | 2 +- tools/sync_runtimes.sh | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) mode change 100644 => 100755 tools/sync_runtimes.sh diff --git a/.travis.yml b/.travis.yml index cd95c9b38fffa..4d2b28c3a2dd0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,10 +3,10 @@ sudo: false jdk: - oraclejdk8 script: +- bash ./tools/sync_runtimes.sh - mvn install -DskipTests=true - mvn -pl !azure-batch,!azure-mgmt-website checkstyle:check - mvn package javadoc:aggregate -DskipTests=true -- bash ./tools/sync_runtimes.sh env: global: secure: bB/RoMrP+sMJBZB6G/s4tPhZUyY0DEEszKd1Vne4TTebHnfzeHQDABYWfcJNVeWujlGJmyi78bvyysm6lfhAnDtIQXss+P+ryN53QDZmU8zKmzZIiqRS8IAMEKRhy03/J62RBQX+F52iP3hUykSHlAxV0lmdWIVtVtp0au8Lu+XmptjXDtVzT87anr879Olyc8Ax2izR0EYZpten6CEYKktx6lUoSIWBTYvrUs1ouboK3X1PpKqdVvvt16rswK36zCt7j0b3DTl8F5kinP67dP42f+Kix2IWGtFjcQbXd7Wdd/d8Ouy9BTlsG5wQNk4ChjITYxGZf3p9DupPKlEe7sA+N9ZS2w4iTcNucI/mkRtDVawDqxmPwfbmqkt9KXHBODS1sTmsrSys870sW3bKwAauaUMpJJAkWYXuNXm8iUVGa5nE3u+YB410puRmbXa5c3QbzVrftohIKM/3RvpUDXjXVAJuiLktC0sHvQ3iRS/N07AjjTGdst1oB1zpf8hlgzJzJ8PrGad5/DHGH1WoWQSbJffDCrKf92U1eLVs02Y3RGKSJ+iiXTWsnOGsgy6RVZcKv7AJp3R+uCwVE0dLoSVjhJaIt4zXcUuwN4uUlAOVsIoaWZ6c5UINWHzjuy6IWM+mId4kFYqn8shoDvsgYAZsJctqbqdUtpQVoWCjmiw= diff --git a/tools/sync_runtimes.sh b/tools/sync_runtimes.sh old mode 100644 new mode 100755 index 4bcd2c6ebf457..17b199390d1e1 --- a/tools/sync_runtimes.sh +++ b/tools/sync_runtimes.sh @@ -1,10 +1,12 @@ #!/bin/bash -set -e # exit with nonzero exit code if anything fails +pull_subtree=`git subtree pull --squash --prefix runtimes git@github.com:Azure/autorest-clientruntime-for-java.git master 2>&1` -git config user.name "Travis CI" -git config user.email "azuresdk@outlook.com" +echo $pull_subtree -git subtree pull --squash --prefix runtimes git@github.com:Azure/autorest-clientruntime-for-java.git master --no-edit -git subtree push --prefix runtimes https://${GH_TOKEN}@github.com:Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} +if [[ $pull_subtree == *"Subtree is already at commit"* ]]; then + echo "No changes"; + exit 0 +fi -curl -i -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"#${TRAVIS_PULL_REQUEST}\"}" +git subtree push --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} > /dev/null 2>&1 +curl -i -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"Azure/azure-sdk-for-java#${TRAVIS_PULL_REQUEST}\"}" > /dev/null 2>&1 From d59a969c03bf31fe6ce3333020d72ba898e15102 Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Thu, 21 Jul 2016 16:58:02 -0700 Subject: [PATCH 4/6] Update secure string --- .travis.yml | 2 +- tools/sync_runtimes.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4d2b28c3a2dd0..d8ae44bc62fe3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ script: - mvn package javadoc:aggregate -DskipTests=true env: global: - secure: bB/RoMrP+sMJBZB6G/s4tPhZUyY0DEEszKd1Vne4TTebHnfzeHQDABYWfcJNVeWujlGJmyi78bvyysm6lfhAnDtIQXss+P+ryN53QDZmU8zKmzZIiqRS8IAMEKRhy03/J62RBQX+F52iP3hUykSHlAxV0lmdWIVtVtp0au8Lu+XmptjXDtVzT87anr879Olyc8Ax2izR0EYZpten6CEYKktx6lUoSIWBTYvrUs1ouboK3X1PpKqdVvvt16rswK36zCt7j0b3DTl8F5kinP67dP42f+Kix2IWGtFjcQbXd7Wdd/d8Ouy9BTlsG5wQNk4ChjITYxGZf3p9DupPKlEe7sA+N9ZS2w4iTcNucI/mkRtDVawDqxmPwfbmqkt9KXHBODS1sTmsrSys870sW3bKwAauaUMpJJAkWYXuNXm8iUVGa5nE3u+YB410puRmbXa5c3QbzVrftohIKM/3RvpUDXjXVAJuiLktC0sHvQ3iRS/N07AjjTGdst1oB1zpf8hlgzJzJ8PrGad5/DHGH1WoWQSbJffDCrKf92U1eLVs02Y3RGKSJ+iiXTWsnOGsgy6RVZcKv7AJp3R+uCwVE0dLoSVjhJaIt4zXcUuwN4uUlAOVsIoaWZ6c5UINWHzjuy6IWM+mId4kFYqn8shoDvsgYAZsJctqbqdUtpQVoWCjmiw= + - secure: w5X4c2Zts4PygmbNZ+E1ttYvwpMgvALj5ae/I8vTpygtePaF4avp7GYLgadnNS7z0Sh2Gn+xd8IajWeyT4cFn/Cxq8RxsHqEnJUM1hamCE/IfZnxgMNC3xkFkZ7MuyL4E0V9mKYiRRvHU+C8ed2e4UeKcyWu+7MoviiKpyS37Pw= diff --git a/tools/sync_runtimes.sh b/tools/sync_runtimes.sh index 17b199390d1e1..68ef4596bb083 100755 --- a/tools/sync_runtimes.sh +++ b/tools/sync_runtimes.sh @@ -1,5 +1,7 @@ #!/bin/bash -pull_subtree=`git subtree pull --squash --prefix runtimes git@github.com:Azure/autorest-clientruntime-for-java.git master 2>&1` +set -e + +pull_subtree=`git subtree pull --squash --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git master 2>&1` echo $pull_subtree From 989bae6f6e53a09513acf9ea8da9cc1242f3ccb1 Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Thu, 21 Jul 2016 18:22:36 -0700 Subject: [PATCH 5/6] Make a change in subtree --- runtimes/.travis.yml | 21 ++++++++++++--------- tools/sync_runtimes.sh | 26 +++++++++++++++++++------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/runtimes/.travis.yml b/runtimes/.travis.yml index 05c26fa53735e..bc2a8e6b83d4e 100644 --- a/runtimes/.travis.yml +++ b/runtimes/.travis.yml @@ -1,14 +1,17 @@ language: android android: components: - - build-tools-23.0.1 - - android-23 - - platform-tools - - extra-android-support - - extra-google-m2repository - - extra-android-m2repository + - build-tools-23.0.1 + - android-23 + - platform-tools + - extra-android-support + - extra-google-m2repository + - extra-android-m2repository sudo: false script: - - mvn clean install - - mvn checkstyle:check - - cd ./azure-android-client-authentication && ./gradlew check +- mvn clean install +- mvn checkstyle:check +- cd ./azure-android-client-authentication && ./gradlew check +env: + global: + secure: RnU4qnuCJRzSvAAXApk9yVhIH+gtl5RNmoVva/hzuSF0WcSaRh2CBe37KUNnbBDJaHd53L5AvHBpbcmaylbOYaRQ/vxUG1gAEHuyrX3ANvGLKYKjtg1F8i853h1Y/y/TZ9MNfzLOqlo/DtD/jAl6pOAMyxNxSEwwFjHY+zbzTOA4kXjTDPGtNwB253v46j5vzSUcEKHpAXER2RjTeurVFeMFDT78Ou+4DCFBqpenObwr1CH+YPTwIoRBvzzPFDKy8+3rdWXOCB2QloaeFntxH1NDbkhReBe4KL3Ue03ksxrAqcmoJR6qFCQebvHYQYSXTk7kmoOxRFTowGqJ0SErUQwT85MA+3JYDmWDKvI3Zq1lQvhmv7dhsbgJASTxpwW+cqStCzKhAYADB6nB8Nv5AUE/5wQDWXEANUQ2t/eWooip0IcIHeJfBj0qDk+WvjAKGSGu0tIAD71Z1h36WHxf0U/fTi673tguwrhWpnUCbQaQCiDqMm7sSWOlyIdAoxy3JwLGaJq3bRGAjgwbfY32VQ/GN00ttSYu63SFDkxYATC4/FtYheNB0Yi4bDU//me9WcB/mt4bi98nC1CBK1tVS1Rn6ATkXu5K9oMvfCX7UlKe6rGmW7tVdXqtwMEFBpH3Z94tXxQEkZ+AITociIBV85+Oy/BOYvMCwysNv/PEqx0= diff --git a/tools/sync_runtimes.sh b/tools/sync_runtimes.sh index 68ef4596bb083..a1960a3acc9ae 100755 --- a/tools/sync_runtimes.sh +++ b/tools/sync_runtimes.sh @@ -1,14 +1,26 @@ #!/bin/bash +# Exit on error set -e -pull_subtree=`git subtree pull --squash --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git master 2>&1` +# A previous commit may have created the branch +branch=master +if [[ `curl https://api.github.com/repos/Azure/autorest-clientruntime-for-java/branches | jq '.[]["name"]'` == *"sdk_${TRAVIS_PULL_REQUEST}"* ]]; then + branch=sdk_${TRAVIS_PULL_REQUEST} +fi +# Pull and push +pull_subtree=`git subtree pull --squash --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git $branch 2>&1` echo $pull_subtree +git subtree push --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} > /dev/null 2>&1 -if [[ $pull_subtree == *"Subtree is already at commit"* ]]; then - echo "No changes"; - exit 0 +if [[ $branch == "master" ]]; then + open_pull_request=`curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"Azure/azure-sdk-for-java#${TRAVIS_PULL_REQUEST}\"}"` + # Successfully opened a pull request + echo $open_pull_request + if [[ `echo $open_pull_request | jq '.errors | length'` == 0 ]]; then + curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Runtimes CI running: [![Build Status](https://travis-ci.org/Azure/autorest-clientruntime-for-java.svg?branch=sdk_${TRAVIS_PULL_REQUEST})](https://travis-ci.org/Azure/autorest-clientruntime-for-java)\"}" + else + error_msg=`echo $open_pull_reqest | jq '.errors'` + curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Failed to create runtimes PR. Error: $error_msg\"}" + fi fi - -git subtree push --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} > /dev/null 2>&1 -curl -i -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"Azure/azure-sdk-for-java#${TRAVIS_PULL_REQUEST}\"}" > /dev/null 2>&1 From 94af49ab42c195f236af7e5e54cfef89af584172 Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Fri, 22 Jul 2016 10:41:22 -0700 Subject: [PATCH 6/6] Fixes to the script --- tools/sync_runtimes.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tools/sync_runtimes.sh b/tools/sync_runtimes.sh index a1960a3acc9ae..4bc0c4da9121f 100755 --- a/tools/sync_runtimes.sh +++ b/tools/sync_runtimes.sh @@ -2,25 +2,26 @@ # Exit on error set -e -# A previous commit may have created the branch +# A previous commit may have created the branch, use that branch=master if [[ `curl https://api.github.com/repos/Azure/autorest-clientruntime-for-java/branches | jq '.[]["name"]'` == *"sdk_${TRAVIS_PULL_REQUEST}"* ]]; then branch=sdk_${TRAVIS_PULL_REQUEST} fi -# Pull and push +# Pull and push the subtree pull_subtree=`git subtree pull --squash --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git $branch 2>&1` echo $pull_subtree git subtree push --prefix runtimes https://${GH_TOKEN}@github.com/Azure/autorest-clientruntime-for-java.git sdk_${TRAVIS_PULL_REQUEST} > /dev/null 2>&1 +# Create a pull request. This only applies when first time creating the branch if [[ $branch == "master" ]]; then - open_pull_request=`curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"Azure/azure-sdk-for-java#${TRAVIS_PULL_REQUEST}\"}"` - # Successfully opened a pull request + open_pull_request=`curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/autorest-clientruntime-for-java/pulls --data "{\"title\":\"[Automatic PR] SDK changes from pull request #${TRAVIS_PULL_REQUEST}\",\"head\":\"sdk_${TRAVIS_PULL_REQUEST}\",\"base\":\"master\",\"body\":\"Azure/azure-sdk-for-java#${TRAVIS_PULL_REQUEST}\"}"` echo $open_pull_request + # Successfully opened a pull request if [[ `echo $open_pull_request | jq '.errors | length'` == 0 ]]; then - curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Runtimes CI running: [![Build Status](https://travis-ci.org/Azure/autorest-clientruntime-for-java.svg?branch=sdk_${TRAVIS_PULL_REQUEST})](https://travis-ci.org/Azure/autorest-clientruntime-for-java)\"}" + curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Runtime changes detected. pull request created. CI running: [![Build Status](https://travis-ci.org/Azure/autorest-clientruntime-for-java.svg?branch=sdk_${TRAVIS_PULL_REQUEST})](https://travis-ci.org/Azure/autorest-clientruntime-for-java)\"}" else - error_msg=`echo $open_pull_reqest | jq '.errors'` - curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Failed to create runtimes PR. Error: $error_msg\"}" + error_msg=`echo $open_pull_request | jq '.'` + curl -H "Authorization: token ${GH_TOKEN}" https://api.github.com/repos/Azure/azure-sdk-for-java/issues/${TRAVIS_PULL_REQUEST}/comments --data "{\"body\":\"Runtime changes detected but failed to create a pull request. Error: \\n```json\\n$error_msg\\n```\"}" fi fi