From 178ee470ea410b99f8a851df7bcb0665dcb14b42 Mon Sep 17 00:00:00 2001 From: Jerjou Cheng Date: Tue, 28 Feb 2017 16:40:20 -0800 Subject: [PATCH] Add jenkins scripts & test for sparkjava --- .../discovery/build.gradle | 9 ++--- .../discovery/{Jenkins.sh => jenkins.sh} | 14 ++++---- .../com/example/helloendpoints/Greetings.java | 2 +- appengine/helloworld/jenkins.sh | 11 ++++++ flexible/sparkjava/jenkins.sh | 35 +++++++++++++++++++ jenkins.sh | 27 ++++++++++++++ 6 files changed, 86 insertions(+), 12 deletions(-) rename appengine/endpoints-frameworks-v2/discovery/{Jenkins.sh => jenkins.sh} (86%) create mode 100644 appengine/helloworld/jenkins.sh create mode 100755 flexible/sparkjava/jenkins.sh create mode 100755 jenkins.sh diff --git a/appengine/endpoints-frameworks-v2/discovery/build.gradle b/appengine/endpoints-frameworks-v2/discovery/build.gradle index 47af6be51ad..43aacd449fb 100644 --- a/appengine/endpoints-frameworks-v2/discovery/build.gradle +++ b/appengine/endpoints-frameworks-v2/discovery/build.gradle @@ -48,12 +48,13 @@ dependencies { } appengine { // App Engine tasks configuration - run { // local (dev_appserver) configuration (standard environments only) - - } - deploy { // deploy configuration + version = findProperty("appengine.deploy.version") + def promoteProp = findProperty("appengine.deploy.promote") + if (promoteProp != null) { + promote = new Boolean(promoteProp) + } } } diff --git a/appengine/endpoints-frameworks-v2/discovery/Jenkins.sh b/appengine/endpoints-frameworks-v2/discovery/jenkins.sh similarity index 86% rename from appengine/endpoints-frameworks-v2/discovery/Jenkins.sh rename to appengine/endpoints-frameworks-v2/discovery/jenkins.sh index 29e28b20ce5..3967c1dee65 100644 --- a/appengine/endpoints-frameworks-v2/discovery/Jenkins.sh +++ b/appengine/endpoints-frameworks-v2/discovery/jenkins.sh @@ -48,7 +48,8 @@ sed -i'.bak' -e "s/hello world!/hello version-${GOOGLE_VERSION_ID}!/g" src/main/ # Test with Maven mvn clean appengine:deploy \ - -Dapp.deploy.version="${GOOGLE_VERSION_ID}" + -Dapp.deploy.version="${GOOGLE_VERSION_ID}" \ + -Dapp.deploy.promote=false # End-2-End tests TestEndpoints "${GOOGLE_PROJECT_ID}" "${GOOGLE_VERSION_ID}" @@ -57,17 +58,16 @@ TestEndpoints "${GOOGLE_PROJECT_ID}" "${GOOGLE_VERSION_ID}" mvn clean # Test with Gradle -# Update build.gradle -sed -i'.bak' -e "s/deploy {/deploy {\n version='${GOOGLE_VERSION_ID}'/g" build.gradle - # Modify Greetings.java for Gradle -sed -i'.bak' -e "s/hello version-${GOOGLE_VERSION_ID}!/hello version-gradle-${GOOGLE_VERSION_ID}!/g" src/main/java/com/example/helloendpoints/Greetings.java +sed -i'.bak' -e "s/hello version-${GOOGLE_VERSION_ID}!/hello version-${GOOGLE_VERSION_ID}!/g" src/main/java/com/example/helloendpoints/Greetings.java # Deploy Gradle -gradle appengineDeploy +gradle -Pappengine.deploy.promote=false \ + -Pappengine.deploy.version=${GOOGLE_VERSION_ID} \ + appengineDeploy # End-2-End tests -TestEndpoints "${GOOGLE_PROJECT_ID}" "gradle-${GOOGLE_VERSION_ID}" +TestEndpoints "${GOOGLE_PROJECT_ID}" "${GOOGLE_VERSION_ID}" # Clean gradle clean diff --git a/appengine/endpoints-frameworks-v2/discovery/src/main/java/com/example/helloendpoints/Greetings.java b/appengine/endpoints-frameworks-v2/discovery/src/main/java/com/example/helloendpoints/Greetings.java index 11f533f622d..69cbb4b9df1 100644 --- a/appengine/endpoints-frameworks-v2/discovery/src/main/java/com/example/helloendpoints/Greetings.java +++ b/appengine/endpoints-frameworks-v2/discovery/src/main/java/com/example/helloendpoints/Greetings.java @@ -43,7 +43,7 @@ public class Greetings { public static ArrayList greetings = new ArrayList(); static { - greetings.add(new HelloGreeting("hello world!")); + greetings.add(new HelloGreeting("hello version-jerjou-test!")); greetings.add(new HelloGreeting("goodbye world!")); } //[END api_def] diff --git a/appengine/helloworld/jenkins.sh b/appengine/helloworld/jenkins.sh new file mode 100644 index 00000000000..086eb099aec --- /dev/null +++ b/appengine/helloworld/jenkins.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -xe + +mvn clean appengine:update \ + -Dappengine.additionalParams="--service_account_json_key_file=${GOOGLE_APPLICATION_CREDENTIALS}" \ + -Dappengine.appId="${GOOGLE_PROJECT_ID}" \ + -Dappengine.version="${GOOGLE_VERSION_ID}" \ + -DskipTests=true + +curl -f "http://${GOOGLE_VERSION_ID}-dot-${GOOGLE_PROJECT_ID}.appspot.com/" diff --git a/flexible/sparkjava/jenkins.sh b/flexible/sparkjava/jenkins.sh new file mode 100755 index 00000000000..c1af3a4bee8 --- /dev/null +++ b/flexible/sparkjava/jenkins.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Fail on non-zero return and print command to stdout +set -xe + +# Jenkins Test Script +function runtests () { + curl -X GET \ + "https://${2}-dot-${1}.appspot.com/api/users" | \ + grep "^\\[" +} + +# Jenkins provides values for GOOGLE_PROJECT_ID and GOOGLE_VERSION_ID + +# Test with Maven +mvn clean appengine:deploy \ + -Dapp.deploy.version="${GOOGLE_VERSION_ID}" \ + -Dapp.deploy.promote=false + +# End-2-End tests +runtests "${GOOGLE_PROJECT_ID}" "${GOOGLE_VERSION_ID}" diff --git a/jenkins.sh b/jenkins.sh new file mode 100755 index 00000000000..fbb9c70a459 --- /dev/null +++ b/jenkins.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -x + +delete_app_version() { + yes | gcloud --project=$GOOGLE_PROJECT_ID \ + app versions delete $GOOGLE_VERSION_ID +} +handle_error() { + errcode=$? # Remember the error code so we can exit with it after cleanup + + # Clean up + delete_app_version + + exit $errcode +} +trap handle_error ERR + +# Find all jenkins.sh's and run them. +find . -mindepth 2 -maxdepth 5 -name jenkins.sh -type f | while read path; do + ( + pushd "${path%jenkins.sh}" + /bin/bash ./jenkins.sh + ) +done + +delete_app_version