Skip to content

Commit

Permalink
Add jenkins scripts & test for sparkjava (#538)
Browse files Browse the repository at this point in the history
  • Loading branch information
jerjou authored and lesv committed Mar 2, 2017
1 parent cb03af3 commit 284300c
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 13 deletions.
9 changes: 5 additions & 4 deletions appengine/endpoints-frameworks-v2/discovery/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash

# Copyright 2017 Google Inc.
#
Expand Down Expand Up @@ -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}"
Expand All @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class Greetings {
public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>();

static {
greetings.add(new HelloGreeting("hello world!"));
greetings.add(new HelloGreeting("hello version-jerjou-test!"));
greetings.add(new HelloGreeting("goodbye world!"));
}
//[END api_def]
Expand Down
25 changes: 25 additions & 0 deletions appengine/helloworld/jenkins.sh
Original file line number Diff line number Diff line change
@@ -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/"
35 changes: 35 additions & 0 deletions flexible/sparkjava/jenkins.sh
Original file line number Diff line number Diff line change
@@ -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}"
45 changes: 45 additions & 0 deletions jenkins.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 284300c

Please sign in to comment.