From f1c11281dc67e5c61a5d0c66cfdb6d6aca9c1eba Mon Sep 17 00:00:00 2001 From: Tyson Gern Date: Fri, 21 Jul 2017 09:26:37 -0600 Subject: [PATCH 1/9] Initial commit --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..4fa332f5c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +build +.gradle +.idea +*.iml +ci/variables.yml From e2ddc3720df301ef886364f4797a46090f78836f Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Thu, 21 Dec 2017 15:19:13 -0500 Subject: [PATCH 2/9] Simple Spring Boot app --- settings.graddle | 1 + .../pivotal/pal/tracker/PalTrackerApplication.java | 12 ++++++++++++ .../io/pivotal/pal/tracker/WelcomeController.java | 13 +++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 settings.graddle create mode 100644 src/main/java/io/pivotal/pal/tracker/PalTrackerApplication.java create mode 100644 src/main/java/io/pivotal/pal/tracker/WelcomeController.java diff --git a/settings.graddle b/settings.graddle new file mode 100644 index 000000000..05c90d22c --- /dev/null +++ b/settings.graddle @@ -0,0 +1 @@ +rootProject.name = "pal-tracker" diff --git a/src/main/java/io/pivotal/pal/tracker/PalTrackerApplication.java b/src/main/java/io/pivotal/pal/tracker/PalTrackerApplication.java new file mode 100644 index 000000000..80f2a72a5 --- /dev/null +++ b/src/main/java/io/pivotal/pal/tracker/PalTrackerApplication.java @@ -0,0 +1,12 @@ +package io.pivotal.pal.tracker; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class PalTrackerApplication { + + public static void main(String[] args) { + SpringApplication.run(PalTrackerApplication.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/io/pivotal/pal/tracker/WelcomeController.java b/src/main/java/io/pivotal/pal/tracker/WelcomeController.java new file mode 100644 index 000000000..4670637ec --- /dev/null +++ b/src/main/java/io/pivotal/pal/tracker/WelcomeController.java @@ -0,0 +1,13 @@ +package io.pivotal.pal.tracker; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class WelcomeController { + + @GetMapping("/") + public String sayHello() { + return "hello"; + } +} From d08309200eb78341691cc434bc3cd1c33e49e938 Mon Sep 17 00:00:00 2001 From: Tyson Gern Date: Thu, 20 Jul 2017 13:56:50 -0600 Subject: [PATCH 3/9] Add tests for deployment lab --- .../pal/tracker/EnvControllerTest.java | 28 +++++++++++++++++++ .../pal/tracker/WelcomeControllerTest.java | 16 +++++++++++ .../pal/trackerapi/WelcomeApiTest.java | 26 +++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 src/test/java/test/pivotal/pal/tracker/EnvControllerTest.java create mode 100644 src/test/java/test/pivotal/pal/tracker/WelcomeControllerTest.java create mode 100644 src/test/java/test/pivotal/pal/trackerapi/WelcomeApiTest.java diff --git a/src/test/java/test/pivotal/pal/tracker/EnvControllerTest.java b/src/test/java/test/pivotal/pal/tracker/EnvControllerTest.java new file mode 100644 index 000000000..fda0f0f34 --- /dev/null +++ b/src/test/java/test/pivotal/pal/tracker/EnvControllerTest.java @@ -0,0 +1,28 @@ +package test.pivotal.pal.tracker; + +import org.junit.Test; + +import java.util.Map; +import io.pivotal.pal.tracker.EnvController; + +import static org.assertj.core.api.Assertions.assertThat; + +public class EnvControllerTest { + @Test + public void getEnv() throws Exception { + EnvController controller = new EnvController( + "8675", + "12G", + "34", + "123.sesame.street" + ); + + Map env = controller.getEnv(); + + assertThat(env.get("PORT")).isEqualTo("8675"); + assertThat(env.get("MEMORY_LIMIT")).isEqualTo("12G"); + assertThat(env.get("CF_INSTANCE_INDEX")).isEqualTo("34"); + assertThat(env.get("CF_INSTANCE_ADDR")).isEqualTo("123.sesame.street"); + } + +} diff --git a/src/test/java/test/pivotal/pal/tracker/WelcomeControllerTest.java b/src/test/java/test/pivotal/pal/tracker/WelcomeControllerTest.java new file mode 100644 index 000000000..bfa8271a0 --- /dev/null +++ b/src/test/java/test/pivotal/pal/tracker/WelcomeControllerTest.java @@ -0,0 +1,16 @@ +package test.pivotal.pal.tracker; + +import io.pivotal.pal.tracker.WelcomeController; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class WelcomeControllerTest { + + @Test + public void itSaysHello() throws Exception { + WelcomeController controller = new WelcomeController("A welcome message"); + + assertThat(controller.sayHello()).isEqualTo("A welcome message"); + } +} diff --git a/src/test/java/test/pivotal/pal/trackerapi/WelcomeApiTest.java b/src/test/java/test/pivotal/pal/trackerapi/WelcomeApiTest.java new file mode 100644 index 000000000..cc7091ed4 --- /dev/null +++ b/src/test/java/test/pivotal/pal/trackerapi/WelcomeApiTest.java @@ -0,0 +1,26 @@ +package test.pivotal.pal.trackerapi; + +import io.pivotal.pal.tracker.PalTrackerApplication; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PalTrackerApplication.class, webEnvironment = RANDOM_PORT) +public class WelcomeApiTest { + + @Autowired + private TestRestTemplate restTemplate; + + @Test + public void exampleTest() { + String body = this.restTemplate.getForObject("/", String.class); + assertThat(body).isEqualTo("Hello from test"); + } +} From c0bcca1d428623368a34cdc3fc138eed82411651 Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Thu, 21 Dec 2017 15:42:04 -0500 Subject: [PATCH 4/9] New updates --- build.gradle | 22 +++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53638 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 ++++++++++++++++++ gradlew.bat | 90 ++++++++++ manifest.yml | 7 + .../io/pivotal/pal/tracker/EnvController.java | 41 +++++ .../pal/tracker/WelcomeController.java | 14 +- 8 files changed, 338 insertions(+), 2 deletions(-) create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 manifest.yml create mode 100644 src/main/java/io/pivotal/pal/tracker/EnvController.java diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..6a744d149 --- /dev/null +++ b/build.gradle @@ -0,0 +1,22 @@ +plugins { + id "java" + id "org.springframework.boot" version "1.5.4.RELEASE" +} + +repositories { + mavenCentral() +} + +dependencies { + compile("org.springframework.boot:spring-boot-starter-web") + testCompile("org.springframework.boot:spring-boot-starter-test") + +} +bootRun.environment([ + "WELCOME_MESSAGE": "hello", +]) + +test.environment([ + "WELCOME_MESSAGE": "Hello from test", +]) + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..5ccda13e9cb94678ba179b32452cf3d60dc36353 GIT binary patch literal 53638 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

i1O>I_eGKr^&y;^hm-V94&lC5U~@}s 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 GfBiq \(.*\)$'` + 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 + +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" ] ; 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 + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..5f192121e --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@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 + +@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= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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 +if "%@eval[2+2]" == "4" goto 4NT_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=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +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 diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 000000000..7f06f91ee --- /dev/null +++ b/manifest.yml @@ -0,0 +1,7 @@ +--- +applications: +- name: pal-tracker + path: build/libs/pal-tracker.jar + random-route: true + env: + WELCOME_MESSAGE: Hello from Cloud Foundry \ No newline at end of file diff --git a/src/main/java/io/pivotal/pal/tracker/EnvController.java b/src/main/java/io/pivotal/pal/tracker/EnvController.java new file mode 100644 index 000000000..985368b3d --- /dev/null +++ b/src/main/java/io/pivotal/pal/tracker/EnvController.java @@ -0,0 +1,41 @@ +package io.pivotal.pal.tracker; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +@RestController +public class EnvController { + + private final String port; + private final String memoryLimit; + private final String cfInstanceIndex; + private final String cfInstanceAddress; + + public EnvController( + @Value("${PORT:NOT SET}") String port, + @Value("${MEMORY_LIMIT:NOT SET}") String memoryLimit, + @Value("${CF_INSTANCE_INDEX:NOT SET}") String cfInstanceIndex, + @Value("${CF_INSTANCE_ADDR:NOT SET}") String cfInstanceAddress + ) { + this.port = port; + this.memoryLimit = memoryLimit; + this.cfInstanceIndex = cfInstanceIndex; + this.cfInstanceAddress = cfInstanceAddress; + } + + @GetMapping("/env") + public Map getEnv() { + Map env = new HashMap<>(); + + env.put("PORT", port); + env.put("MEMORY_LIMIT", memoryLimit); + env.put("CF_INSTANCE_INDEX", cfInstanceIndex); + env.put("CF_INSTANCE_ADDR", cfInstanceAddress); + + return env; + } +} \ No newline at end of file diff --git a/src/main/java/io/pivotal/pal/tracker/WelcomeController.java b/src/main/java/io/pivotal/pal/tracker/WelcomeController.java index 4670637ec..5de566145 100644 --- a/src/main/java/io/pivotal/pal/tracker/WelcomeController.java +++ b/src/main/java/io/pivotal/pal/tracker/WelcomeController.java @@ -2,12 +2,22 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Value; + @RestController public class WelcomeController { + private String message; + + + public WelcomeController(@Value("${WELCOME_MESSAGE}") String message){ + this.message = message; + } + @GetMapping("/") public String sayHello() { - return "hello"; + return message; } -} + +} \ No newline at end of file From 093bfd0785ee0a94e0a1d8443f714baed885fc5f Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Thu, 21 Dec 2017 16:26:15 -0500 Subject: [PATCH 5/9] new updates --- ci/build.yml | 23 +++++++ ci/pipeline.yml | 31 +++++++++ gradlew.bat | 180 ++++++++++++++++++++++++------------------------ manifest.yml | 4 +- 4 files changed, 145 insertions(+), 93 deletions(-) create mode 100644 ci/build.yml create mode 100644 ci/pipeline.yml diff --git a/ci/build.yml b/ci/build.yml new file mode 100644 index 000000000..c2303fed4 --- /dev/null +++ b/ci/build.yml @@ -0,0 +1,23 @@ +platform: linux + +image_resource: + type: docker-image + source: + repository: openjdk + tag: '8-jdk' + +inputs: + - name: pal-tracker + +outputs: + - name: build-output + +run: + path: bash + args: + - -exc + - | + cd pal-tracker + chmod +x gradlew + ./gradlew build + cp build/libs/pal-tracker.jar ../build-output \ No newline at end of file diff --git a/ci/pipeline.yml b/ci/pipeline.yml new file mode 100644 index 000000000..01d389043 --- /dev/null +++ b/ci/pipeline.yml @@ -0,0 +1,31 @@ +--- +resources: +- name: pal-tracker + type: git + source: + uri: {{github-repository}} + branch: master + private_key: {{github-private-key}} + +- name: deploy + type: cf + source: + api: {{cf-api-url}} + username: {{cf-username}} + password: {{cf-password}} + organization: {{cf-org}} + space: sandbox + +jobs: +- name: build-and-deploy + plan: + - get: pal-tracker + trigger: true + - task: build and test + file: pal-tracker/ci/build.yml + - put: deploy + params: + manifest: pal-tracker/manifest.yml + path: build-output/pal-tracker.jar + environment_variables: + WELCOME_MESSAGE: "Hello from Concourse" \ No newline at end of file diff --git a/gradlew.bat b/gradlew.bat index 5f192121e..72d362daf 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,90 @@ -@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 - -@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= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@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 -if "%@eval[2+2]" == "4" goto 4NT_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=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -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 +@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 + +@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= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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 +if "%@eval[2+2]" == "4" goto 4NT_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=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +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 diff --git a/manifest.yml b/manifest.yml index 7f06f91ee..9b7fd344e 100644 --- a/manifest.yml +++ b/manifest.yml @@ -2,6 +2,4 @@ applications: - name: pal-tracker path: build/libs/pal-tracker.jar - random-route: true - env: - WELCOME_MESSAGE: Hello from Cloud Foundry \ No newline at end of file + random-route: true \ No newline at end of file From f84605a4578bb6ab506630295c95781a3c0c894a Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Thu, 21 Dec 2017 16:39:15 -0500 Subject: [PATCH 6/9] troubleshoot --- ci/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.yml b/ci/build.yml index c2303fed4..d737c3811 100644 --- a/ci/build.yml +++ b/ci/build.yml @@ -19,5 +19,5 @@ run: - | cd pal-tracker chmod +x gradlew - ./gradlew build + ./gradlew build --stacktrace --info cp build/libs/pal-tracker.jar ../build-output \ No newline at end of file From 42c9316e805e3cfc5e6aa2f24ce3479c7e0661e0 Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Thu, 21 Dec 2017 17:30:17 -0500 Subject: [PATCH 7/9] updated gradle --- gradle/wrapper/gradle-wrapper.jar | Bin 53638 -> 54333 bytes gradle/wrapper/gradle-wrapper.properties | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5ccda13e9cb94678ba179b32452cf3d60dc36353..99340b4ad18d3c7e764794d300ffd35017036793 100644 GIT binary patch delta 41571 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 delta 41092 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

5v8e@*$ue~8Vp-eLJ$gO7AP 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 Uzytl*NQhxkQek1)w;uodAG~?9T>t<8 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index de1061093..2c2bbe5f9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Thu Dec 21 15:11:18 EST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip From 7de339c43e27e30f3e080c43f8bef374999ec6d6 Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Fri, 22 Dec 2017 09:37:06 -0500 Subject: [PATCH 8/9] update --- gradlew | 72 +++++++++++++++++++++++++++++++---------------------- gradlew.bat | 12 +++------ 2 files changed, 45 insertions(+), 39 deletions(-) diff --git a/gradlew b/gradlew index 9d82f7891..cccdd3d51 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,20 +6,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# 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 ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,26 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# 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 - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -85,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +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 @@ -150,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +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" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 72d362daf..e95643d6a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@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= - 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 @@ -49,7 +49,6 @@ goto fail @rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line From 0917bb12f4d8a456bfc7b802e43b0907732b9f59 Mon Sep 17 00:00:00 2001 From: Bhavin Langalia Date: Fri, 22 Dec 2017 10:22:09 -0500 Subject: [PATCH 9/9] updated --- ci/build.yml | 5 +- ci/pipeline.yml | 66 ++++++++++++++++++++++--- manifest.yml => manifest-production.yml | 2 +- manifest-review.yml | 5 ++ 4 files changed, 68 insertions(+), 10 deletions(-) rename manifest.yml => manifest-production.yml (76%) create mode 100644 manifest-review.yml diff --git a/ci/build.yml b/ci/build.yml index d737c3811..e2bb9473a 100644 --- a/ci/build.yml +++ b/ci/build.yml @@ -8,6 +8,7 @@ image_resource: inputs: - name: pal-tracker + - name: version outputs: - name: build-output @@ -19,5 +20,5 @@ run: - | cd pal-tracker chmod +x gradlew - ./gradlew build --stacktrace --info - cp build/libs/pal-tracker.jar ../build-output \ No newline at end of file + ./gradlew -P version=$(cat ../version/number) build + cp build/libs/pal-tracker-*.jar ../build-output \ No newline at end of file diff --git a/ci/pipeline.yml b/ci/pipeline.yml index 01d389043..c34c3b2a9 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -7,25 +7,77 @@ resources: branch: master private_key: {{github-private-key}} -- name: deploy +- name: pal-tracker-artifacts + type: s3 + source: + bucket: {{aws-bucket}} + regexp: releases/pal-tracker-(.*).jar + access_key_id: {{aws-access-key-id}} + secret_access_key: {{aws-secret-access-key}} + +- name: version + type: semver + source: + bucket: {{aws-bucket}} + key: pal-tracker/version + access_key_id: {{aws-access-key-id}} + secret_access_key: {{aws-secret-access-key}} + +- name: review-deployment + type: cf + source: + api: {{cf-api-url}} + username: {{cf-username}} + password: {{cf-password}} + organization: {{cf-org}} + space: review + +- name: production-deployment type: cf source: api: {{cf-api-url}} username: {{cf-username}} password: {{cf-password}} organization: {{cf-org}} - space: sandbox + space: production jobs: -- name: build-and-deploy +- name: build plan: - get: pal-tracker trigger: true + - get: version + params: {bump: patch} - task: build and test file: pal-tracker/ci/build.yml - - put: deploy + - put: pal-tracker-artifacts + params: + file: build-output/pal-tracker-*.jar + - put: version + params: + file: version/number + +- name: deploy-review + plan: + - get: pal-tracker + - get: pal-tracker-artifacts + trigger: true + passed: [build] + - put: review-deployment + params: + manifest: pal-tracker/manifest-review.yml + path: pal-tracker-artifacts/pal-tracker-*.jar + environment_variables: + WELCOME_MESSAGE: "Hello from the review environment" + +- name: deploy-production + plan: + - get: pal-tracker + - get: pal-tracker-artifacts + passed: [deploy-review] + - put: production-deployment params: - manifest: pal-tracker/manifest.yml - path: build-output/pal-tracker.jar + manifest: pal-tracker/manifest-production.yml + path: pal-tracker-artifacts/pal-tracker-*.jar environment_variables: - WELCOME_MESSAGE: "Hello from Concourse" \ No newline at end of file + WELCOME_MESSAGE: "Hello from the production environment" \ No newline at end of file diff --git a/manifest.yml b/manifest-production.yml similarity index 76% rename from manifest.yml rename to manifest-production.yml index 9b7fd344e..340b53421 100644 --- a/manifest.yml +++ b/manifest-production.yml @@ -2,4 +2,4 @@ applications: - name: pal-tracker path: build/libs/pal-tracker.jar - random-route: true \ No newline at end of file + host: ps-pal-tracker \ No newline at end of file diff --git a/manifest-review.yml b/manifest-review.yml new file mode 100644 index 000000000..cd3361d30 --- /dev/null +++ b/manifest-review.yml @@ -0,0 +1,5 @@ +--- +applications: +- name: pal-tracker + path: build/libs/pal-tracker.jar + host: ps-pal-tracker-review \ No newline at end of file