diff --git a/README.md b/README.md index 16dcc012be6..41f39c7a02b 100644 --- a/README.md +++ b/README.md @@ -135,18 +135,9 @@ The first time using the `subtree` command, we may need to use the `--rejoin` argument. ``` -git subtree split --prefix=java-repo-tools -b java-repo-tools-update-from-java-docs-samples -git checkout java-repo-tools-update-from-java-docs-samples -git push java-repo-tools java-repo-tools-update-from-java-docs-samples -``` - -After you have committed all the changes you want to your `java-repo-tools` -branch, you can push to the upstream `java-repo-tools` repository with the -following command. (Replace `name-for-remote-branch` with the name you'd like to -give the branch on the `java-repo-tools` repository.) - -``` -git push java-repo-tools java-repo-tools:name-for-remote-branch +git subtree split --prefix=java-repo-tools -b ${USER}-push-java-repo-tools +git checkout ${USER}-push-java-repo-tools +git push java-repo-tools ${USER}-push-java-repo-tools ``` Then, you can send a pull request to the `java-repo-tools` repository. diff --git a/scripts/test-localhost.sh b/scripts/test-localhost.sh new file mode 100755 index 00000000000..742e0df3aa8 --- /dev/null +++ b/scripts/test-localhost.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +# Copyright 2016 Google Inc. All Rights Reserved. +# +# 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. + +# Usage: +# test-localhost.sh deployment-type path/to/project -- [maven arguments] +# +# This script runs a localhost server Maven plugin and verifies that a request +# to http://localhost:8080/ does not return an error code. + +print_usage () { + echo "Usage:" >&2 + echo " $0 server-type path/to/project [-- maven arguments]" >&2 + echo >&2 + echo "server-type can be any of the following:" >&2 + echo " appengine" >&2 + echo " jetty" >&2 + echo " spring-boot" >&2 +} + +if [[ -z "$1" ]]; then + echo "Missing server-type parameter." >&2 + print_usage + exit 1 +fi +case $1 in + appengine) + mvn_plugin="appengine:devserver" + server_started_message="localhost:8080" + ;; + jetty) + mvn_plugin="jetty:run-exploded" + server_started_message="Started Jetty Server" + ;; + spring-boot) + mvn_plugin="spring-boot:run" + server_started_message="Tomcat started on port(s): 8080 (http)" + ;; + *) + print_usage + exit 1 + ;; +esac + +if [[ -z "$2" ]]; then + echo "Missing directory parameter." >&2 + print_usage + exit 1 +fi +code_path=$2 + +mvn_command="mvn --batch-mode clean ${mvn_plugin} -DskipTests" +if [[ "$3" == "--" ]]; then + shift 3 + for mvn_arg in "${@}"; do + mvn_command="${mvn_command} ${mvn_arg}" + done +elif [[ -n "$3" ]]; then + echo "Got unexpected third argument" >&2 + print_usage + exit 1 +fi + +set -e +set -x + +( +cd "$code_path" +expect -c " + spawn ${mvn_command} + set timeout 600 + expect \"${server_started_message}\" + "'sleep 10 + spawn curl --silent --output /dev/stderr --write-out "%{http_code}" http://localhost:8080/ + expect { + "200" { + exit + } + } + exit 1 + ' +) + diff --git a/test-devserver.sh b/test-devserver.sh deleted file mode 100755 index 62b3dfefef7..00000000000 --- a/test-devserver.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2016 Google Inc. All Rights Reserved. -# -# 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. - -# Usage: -# test-devserver.sh path/to/project -# -# This script runs the local appengine:devserver Maven plugin and verifies that -# a request to http://localhost:8080/ does not return an error code. -# -# As an example, this is useful for verifying that datastore-indexes.xml is -# correct (only if autoGenerate=false and the / handler does all queries used), -# as an example. - -set -e -set -x - -if [ -z "$1" ]; then - echo "Missing directory parameter." - echo "Usage:" - echo " $0 path/to/project" - exit 1 -fi - -( -cd "$1" -expect -c ' - spawn mvn --batch-mode clean appengine:devserver -DskipTests - set timeout 600 - expect localhost:8080 - sleep 10 - spawn curl --silent --output /dev/stderr --write-out "%{http_code}" http://localhost:8080/ - expect { - "200" { - exit - } - } - exit 1 - ' -) -