From dc5c0fa33bebcfe4ff83c7bbbb5a05abea7e0e32 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 26 Sep 2018 14:20:13 -0400 Subject: [PATCH 01/22] Added .travis.yml file. --- .travis.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..4cf511cab --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +sudo: required +dist: trusty +addons: + apt: + packages: + - wget + +before_install: + - wget https://github.com/bazelbuild/bazel/releases/download/0.17.1/bazel-0.17.1-installer-linux-x86_64.sh + - chmod 755 bazel-0.17.1-installer-linux-x86_64.sh + - sudo ./bazel-0.17.1-installer-linux-x86_64.sh + +script: + - bazel build ... From dea217ac8c43686333552bbc2ce4d8c0f71b4b65 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 26 Sep 2018 14:30:50 -0400 Subject: [PATCH 02/22] Added a file to trigger a build on travis. --- test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 000000000..3ffc5c843 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +This is a test file to trigger a build on travis. From dc955c5ebfd3446e3cfeac7a0801dc024c6e00f8 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 26 Sep 2018 15:57:43 -0400 Subject: [PATCH 03/22] Run tests and don't show progress in travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4cf511cab..e19ebf4c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ before_install: - sudo ./bazel-0.17.1-installer-linux-x86_64.sh script: - - bazel build ... + - bazel test --noshow_progress ... From 365bc1b51db8d1d42339d23ab16ef8f7d304c3da Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 27 Sep 2018 10:50:49 -0400 Subject: [PATCH 04/22] Replaced --noshow_progress with "|& cat" --noshow_progress turns out to be not verbose enough for travis, which decides your build is stalled if it doesn't see output for 20 minutes. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e19ebf4c6..b71dd7597 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ before_install: - sudo ./bazel-0.17.1-installer-linux-x86_64.sh script: - - bazel test --noshow_progress ... + - bazel test ... |& cat From 1d9bad352f72d964144eea72acaa9c1500d6419c Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 27 Sep 2018 18:29:17 -0400 Subject: [PATCH 05/22] Added "--test_output=errors" so we can see failed test output. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b71dd7597..9889f4d1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ before_install: - sudo ./bazel-0.17.1-installer-linux-x86_64.sh script: - - bazel test ... |& cat + - bazel --test_output=errors test ... |& cat From f0d4ebd2a1793d94e766f2f12c30786311db863b Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 27 Sep 2018 18:45:03 -0400 Subject: [PATCH 06/22] Fixed use of --test_output flag. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9889f4d1b..7dba5c3cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ before_install: - sudo ./bazel-0.17.1-installer-linux-x86_64.sh script: - - bazel --test_output=errors test ... |& cat + - bazel test --test_output=errors ... |& cat From ee1ee68de702d9312cc0654c31f2700c7b9acfd4 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Fri, 12 Oct 2018 11:46:28 -0400 Subject: [PATCH 07/22] Added a test file. --- TestFile.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 TestFile.txt diff --git a/TestFile.txt b/TestFile.txt new file mode 100644 index 000000000..af27ff498 --- /dev/null +++ b/TestFile.txt @@ -0,0 +1 @@ +This is a test file. \ No newline at end of file From d01787a38ca421195ca7c9ca876c310160478cce Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Fri, 12 Oct 2018 15:47:14 -0400 Subject: [PATCH 08/22] Fixes per review. --- TestFile.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TestFile.txt b/TestFile.txt index af27ff498..3aaccafca 100644 --- a/TestFile.txt +++ b/TestFile.txt @@ -1 +1,2 @@ -This is a test file. \ No newline at end of file +This is a test file. +Maybe this will change your mind? From eb86e4f88c4ad992344949a9841ea6a3d282b697 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Fri, 12 Oct 2018 16:35:26 -0400 Subject: [PATCH 09/22] Did another change to see how this goes. (#2) Did another change to see how this goes. --- .../google/registry/tools/UserIdProvider.java | 2 ++ .../registry/tools/CreateTldCommandTest.java | 22 +++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/java/google/registry/tools/UserIdProvider.java b/java/google/registry/tools/UserIdProvider.java index c170180d5..a93a60b1e 100644 --- a/java/google/registry/tools/UserIdProvider.java +++ b/java/google/registry/tools/UserIdProvider.java @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +/* Here's an extra comment, just for the heck of it. */ + package google.registry.tools; diff --git a/javatests/google/registry/tools/CreateTldCommandTest.java b/javatests/google/registry/tools/CreateTldCommandTest.java index 00b90e2d1..5c441e692 100644 --- a/javatests/google/registry/tools/CreateTldCommandTest.java +++ b/javatests/google/registry/tools/CreateTldCommandTest.java @@ -97,17 +97,6 @@ public class CreateTldCommandTest extends CommandTestCase { assertThat(thrown).hasMessageThat().contains("Can't create more than one TLD at a time"); } - @Test - public void testSuccess_initialTldStateFlag() throws Exception { - runCommandForced( - "--initial_tld_state=GENERAL_AVAILABILITY", - "--roid_suffix=Q9JYB4C", - "--dns_writers=VoidDnsWriter", - "xn--q9jyb4c"); - assertThat(Registry.get("xn--q9jyb4c").getTldState(DateTime.now(UTC))) - .isEqualTo(TldState.GENERAL_AVAILABILITY); - } - @Test public void testSuccess_initialRenewBillingCostFlag() throws Exception { runCommandForced( @@ -119,6 +108,17 @@ public class CreateTldCommandTest extends CommandTestCase { .isEqualTo(Money.of(USD, 42.42)); } + @Test + public void testSuccess_initialTldStateFlag() throws Exception { + runCommandForced( + "--initial_tld_state=GENERAL_AVAILABILITY", + "--roid_suffix=Q9JYB4C", + "--dns_writers=VoidDnsWriter", + "xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getTldState(DateTime.now(UTC))) + .isEqualTo(TldState.GENERAL_AVAILABILITY); + } + @Test public void testSuccess_eapFeeSchedule() throws Exception { DateTime now = DateTime.now(UTC); From e87323448bcdda064a69b5302512bc56c13da303 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 18 Oct 2018 14:41:46 -0400 Subject: [PATCH 10/22] Added Snuff!!! in shell output. --- java/google/registry/tools/ShellCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/java/google/registry/tools/ShellCommand.java b/java/google/registry/tools/ShellCommand.java index dafb29bcd..dcdf9204a 100644 --- a/java/google/registry/tools/ShellCommand.java +++ b/java/google/registry/tools/ShellCommand.java @@ -186,6 +186,7 @@ public class ShellCommand implements Command { } Exception lastError = null; try { + System.out.println("Barf!!!"); runner.run(lineArgs); } catch (Exception e) { lastError = e; From 5d7ce806de0176008af235b8474bf75cea5ea96f Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 14:57:43 -0400 Subject: [PATCH 11/22] Changed .travis.yml script to attempt gradle build. --- .travis.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7dba5c3cc..f047734fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,15 @@ -sudo: required -dist: trusty -addons: - apt: - packages: - - wget +language: java +install: true +jdk: + - openjdk8 -before_install: - - wget https://github.com/bazelbuild/bazel/releases/download/0.17.1/bazel-0.17.1-installer-linux-x86_64.sh - - chmod 755 bazel-0.17.1-installer-linux-x86_64.sh - - sudo ./bazel-0.17.1-installer-linux-x86_64.sh +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -f $HOME/.gradle/caches/*/plugin-resolution/ -script: - - bazel test --test_output=errors ... |& cat +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ + +script: cd gradle && gradle wrapper && ./gradlew From 513e2d2fce5ecb85ab98cdea9767cfa90f66e25c Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 15:07:57 -0400 Subject: [PATCH 12/22] Checking in gradlew/gradlew.bat. --- .gitignore | 2 - gradle/gradlew | 172 +++++++++++++++++++++++++++++++++++++++++++++ gradle/gradlew.bat | 84 ++++++++++++++++++++++ 3 files changed, 256 insertions(+), 2 deletions(-) create mode 100755 gradle/gradlew create mode 100644 gradle/gradlew.bat diff --git a/.gitignore b/.gitignore index d379d1566..ed53f226a 100644 --- a/.gitignore +++ b/.gitignore @@ -82,8 +82,6 @@ autogenerated/ /gradle/.gradle /gradle/gradle -/gradle/gradlew -/gradle/gradlew.bat /gradle/**/WEB-INF /gradle/**/build diff --git a/gradle/gradlew b/gradle/gradlew new file mode 100755 index 000000000..cccdd3d51 --- /dev/null +++ b/gradle/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradle/gradlew.bat b/gradle/gradlew.bat new file mode 100644 index 000000000..e95643d6a --- /dev/null +++ b/gradle/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega From 3aaebdb9e67c5ba9db228c062f9415e358312b41 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 15:10:13 -0400 Subject: [PATCH 13/22] Use checked-in "gradlew" instead of rebuilding it. We want to use a specific version of gradle, not the 4.0.1 version that travis has lying around. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f047734fe..a244bf0c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,4 +12,4 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ -script: cd gradle && gradle wrapper && ./gradlew +script: cd gradle && ./gradlew From 4a408f023f1fa6d6fba2250ba6f5601bc21ec855 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 15:39:28 -0400 Subject: [PATCH 14/22] Attempt to install gradle on travis. Try installing gradle instead of calling gradlew, which it turns out requires its jarfiles to be presesnt in order to work. --- .gitignore | 2 + .travis.yml | 5 +- gradle/gradlew | 172 --------------------------------------------- gradle/gradlew.bat | 84 ---------------------- 4 files changed, 6 insertions(+), 257 deletions(-) delete mode 100755 gradle/gradlew delete mode 100644 gradle/gradlew.bat diff --git a/.gitignore b/.gitignore index ed53f226a..d379d1566 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,8 @@ autogenerated/ /gradle/.gradle /gradle/gradle +/gradle/gradlew +/gradle/gradlew.bat /gradle/**/WEB-INF /gradle/**/build diff --git a/.travis.yml b/.travis.yml index a244bf0c0..4e9ba21a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,4 +12,7 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ -script: cd gradle && ./gradlew +install: + - wget gradle-4.10.2-bin.zip && unzip -l gradle-4.10.2-bin.zip + +script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && ./gradlew diff --git a/gradle/gradlew b/gradle/gradlew deleted file mode 100755 index cccdd3d51..000000000 --- a/gradle/gradlew +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env sh - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - -exec "$JAVACMD" "$@" diff --git a/gradle/gradlew.bat b/gradle/gradlew.bat deleted file mode 100644 index e95643d6a..000000000 --- a/gradle/gradlew.bat +++ /dev/null @@ -1,84 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega From bde594bf3fdcd2c5b0cde88d0788d661d2dec23e Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 15:50:30 -0400 Subject: [PATCH 15/22] Fixed url and unzip in gradle download. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4e9ba21a6..cf22d3f65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,6 @@ cache: - $HOME/.gradle/wrapper/ install: - - wget gradle-4.10.2-bin.zip && unzip -l gradle-4.10.2-bin.zip + - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip && unzip gradle-4.10.2-bin.zip script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && ./gradlew From 72cbc98b06f3f0d387fc9bb98b80ee20f06f0b05 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 16:00:18 -0400 Subject: [PATCH 16/22] Do "gradlew build" insetead of just gradlew. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index cf22d3f65..96fd20ba7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,4 +15,4 @@ cache: install: - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip && unzip gradle-4.10.2-bin.zip -script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && ./gradlew +script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && ./gradlew build From fc490f708214cd7edc437a3a54cb1862dfb5b8ce Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 16:44:26 -0400 Subject: [PATCH 17/22] Set TERM=dumb in environment to limit build output The status information gradle prints out doesn't look very good in Travis. In fact, it causes the logfile to exceed the maximum allowed by Travis. --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 96fd20ba7..780f923d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,9 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ +env: + TERM=dumb + install: - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip && unzip gradle-4.10.2-bin.zip From b092d8a7de7df9f5d235d405d97a719303204b21 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 31 Oct 2018 17:13:16 -0400 Subject: [PATCH 18/22] Make travis wait up to 30 minutes on build without output. Also add some comments to .travis.yml. --- .travis.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 780f923d8..585314a80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,10 @@ language: java install: true jdk: + # Our builds fail against Oracle Java for reasons yet unknown. - openjdk8 +# Caching options suggested by a random article. before_cache: - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - rm -f $HOME/.gradle/caches/*/plugin-resolution/ @@ -13,9 +15,17 @@ cache: - $HOME/.gradle/wrapper/ env: + # Disable fancy status information (looks bad on travis and exceeds logfile + # quota) TERM=dumb install: + # Install a specific gradle version first, default gradle can't deal with + # our gradle build scripts. - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip && unzip gradle-4.10.2-bin.zip -script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && ./gradlew build +# Specialize gradle build to use an up-to-date gradle and the /gradle +# directory. +# The "travis_wait 30" lets our build spend up to 30 minutes without writing +# output, instead of the default 10. +script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && travis_wait 30 ./gradlew build From 48429887728d0ee55184bd7062aa96e082037d29 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 1 Nov 2018 08:48:07 -0400 Subject: [PATCH 19/22] Upped the build time to 45 minutes. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 585314a80..a2dba7d66 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,4 +28,4 @@ install: # directory. # The "travis_wait 30" lets our build spend up to 30 minutes without writing # output, instead of the default 10. -script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && travis_wait 30 ./gradlew build +script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && travis_wait 45 ./gradlew build From ecd193d935a79883333138d4948081b9a328c195 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 7 Nov 2018 11:15:52 -0500 Subject: [PATCH 20/22] Testing a direct "gradle build" (no gradlew) --- .travis.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a2dba7d66..394f23414 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,17 @@ +# Copyright 2018 The Nomulus Authors. 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. + language: java install: true jdk: @@ -26,6 +40,6 @@ install: # Specialize gradle build to use an up-to-date gradle and the /gradle # directory. -# The "travis_wait 30" lets our build spend up to 30 minutes without writing +# The "travis_wait 45" lets our build spend up to 45 minutes without writing # output, instead of the default 10. -script: cd gradle && ../gradle-4.10.2/bin/gradle wrapper && travis_wait 45 ./gradlew build +script: cd gradle && travis_wait 45 ../gradle-4.10.2/bin/gradle build From 807fe73db454d5087a80e7faf52f8cf486426e7d Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Wed, 9 Jan 2019 11:13:48 -0500 Subject: [PATCH 21/22] Fork for every test to verify that this fixes the travis build. --- gradle/core/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle/core/build.gradle b/gradle/core/build.gradle index 0182ad928..ff8f839a9 100644 --- a/gradle/core/build.gradle +++ b/gradle/core/build.gradle @@ -459,6 +459,8 @@ test { exclude fragileTestPatterns exclude outcastTestPatterns + forkEvery 1 + // Sets the maximum number of test executors that may exist at the same time. maxParallelForks 5 }.dependsOn(fragileTest, outcastTest) From 322bd85faafa1062754a2b10f623078a3785d879 Mon Sep 17 00:00:00 2001 From: Michael Muller Date: Thu, 31 Jan 2019 12:40:26 -0500 Subject: [PATCH 22/22] Adding png file to test image diffs in reviewable. --- ...enshotTest_get_admin_succeeds_formFilled.png | Bin 0 -> 90699 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarCreateConsoleScreenshotTest_get_admin_succeeds_formFilled.png diff --git a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarCreateConsoleScreenshotTest_get_admin_succeeds_formFilled.png b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarCreateConsoleScreenshotTest_get_admin_succeeds_formFilled.png new file mode 100644 index 0000000000000000000000000000000000000000..29947395b726d24db5fb6645c41268a50985c2c8 GIT binary patch literal 90699 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