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 85% rename from appengine/endpoints-frameworks-v2/discovery/Jenkins.sh rename to appengine/endpoints-frameworks-v2/discovery/jenkins.sh index 29e28b20ce5..dcf31626e50 100644 --- a/appengine/endpoints-frameworks-v2/discovery/Jenkins.sh +++ b/appengine/endpoints-frameworks-v2/discovery/jenkins.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright 2017 Google Inc. # @@ -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..6f9cf85dad5 --- /dev/null +++ b/appengine/helloworld/jenkins.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env 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. + +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..fe1644dd79f --- /dev/null +++ b/flexible/sparkjava/jenkins.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env 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..6f2758315bf --- /dev/null +++ b/jenkins.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env 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. + +set -x +shopt -s globstar + +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 + +# First, style-check the shell scripts +shellcheck ./**/*.sh + +# 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