From 14d008de7333a63ce1dddaa02ce470135aa00a5f Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 7 Apr 2020 13:52:47 -0400 Subject: [PATCH 01/45] minimal example for jenkins-spock used from gradle --- examples/helper-script-gradle/.gitignore | 8 + examples/helper-script-gradle/.keep | 0 examples/helper-script-gradle/build.gradle | 63 +++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + examples/helper-script-gradle/gradlew | 172 ++++++++++++++++++ examples/helper-script-gradle/gradlew.bat | 84 +++++++++ examples/helper-script-gradle/src/.keep | 0 .../helper-script-gradle/test/ExecTest.groovy | 86 +++++++++ .../helper-script-gradle/vars/exec.groovy | 7 + 10 files changed, 425 insertions(+) create mode 100644 examples/helper-script-gradle/.gitignore create mode 100644 examples/helper-script-gradle/.keep create mode 100644 examples/helper-script-gradle/build.gradle create mode 100644 examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/helper-script-gradle/gradlew create mode 100644 examples/helper-script-gradle/gradlew.bat create mode 100644 examples/helper-script-gradle/src/.keep create mode 100644 examples/helper-script-gradle/test/ExecTest.groovy create mode 100644 examples/helper-script-gradle/vars/exec.groovy diff --git a/examples/helper-script-gradle/.gitignore b/examples/helper-script-gradle/.gitignore new file mode 100644 index 0000000..3223f6e --- /dev/null +++ b/examples/helper-script-gradle/.gitignore @@ -0,0 +1,8 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build + +# Ignore IntelliJ IDEA project files +/.idea/ diff --git a/examples/helper-script-gradle/.keep b/examples/helper-script-gradle/.keep new file mode 100644 index 0000000..e69de29 diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle new file mode 100644 index 0000000..6d7fc16 --- /dev/null +++ b/examples/helper-script-gradle/build.gradle @@ -0,0 +1,63 @@ +plugins { + // Apply the groovy plugin to add support for Groovy + id 'groovy' +} + +group 'com.example' +version 'O.1-SNAPSHOT' + +allprojects { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + +sourceSets { + main { + groovy { + srcDirs = ['src', 'vars'] + } + } + test { + groovy { + srcDirs = ['test'] + } + } +} + +repositories { + mavenCentral() + mavenLocal() + jcenter() + maven { url 'https://repo.jenkins-ci.org/releases/' } +} + +configurations { + all { + resolutionStrategy { + force 'com.ibm.icu:icu4j:66.1' + } + } +} + +dependencies { + implementation 'org.codehaus.groovy:groovy-all:2.5.10' + + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'javax.servlet:javax.servlet-api:4.0.1' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + testImplementation 'org.jenkins-ci.plugins:durable-task:1.33@jar' + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-api:2.37@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.77@jar' + // provides isUnix() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16@jar' + // provides sh() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-step-api:2.21@jar' + testImplementation 'org.jenkins-ci.plugins:ws-cleanup:0.37@jar' + testImplementation 'org.jenkins-ci:symbol-annotation:1.20@jar' + + // plugin dependencies + testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin +} + diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 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 z 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 \(.*\)$'` + 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='"-Xmx64m"' + +# 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/examples/helper-script-gradle/gradlew.bat b/examples/helper-script-gradle/gradlew.bat new file mode 100644 index 0000000..6d57edc --- /dev/null +++ b/examples/helper-script-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="-Xmx64m" + +@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 diff --git a/examples/helper-script-gradle/src/.keep b/examples/helper-script-gradle/src/.keep new file mode 100644 index 0000000..e69de29 diff --git a/examples/helper-script-gradle/test/ExecTest.groovy b/examples/helper-script-gradle/test/ExecTest.groovy new file mode 100644 index 0000000..18f76b3 --- /dev/null +++ b/examples/helper-script-gradle/test/ExecTest.groovy @@ -0,0 +1,86 @@ +import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification + +// Ideally should be names ExecSpec.groovy +// if I name it ExecSpec, I get the following stack trace +// +//java.lang.NoClassDefFoundError: Exec (wrong name: exec) +// +//at java.lang.ClassLoader.defineClass(ClassLoader.java:756) +//at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) +//at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) +//at java.net.URLClassLoader.access$100(URLClassLoader.java:74) +//at java.net.URLClassLoader$1.run(URLClassLoader.java:369) +//at java.net.URLClassLoader$1.run(URLClassLoader.java:363) +//at java.net.URLClassLoader.findClass(URLClassLoader.java:362) +//at java.lang.ClassLoader.loadClass(ClassLoader.java:418) +//at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) +//at java.lang.ClassLoader.loadClass(ClassLoader.java:351) +//at java.lang.Class.forName(Class.java:264) +//at com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification.setup(JenkinsPipelineSpecification.groovy:1091) +class ExecTest extends JenkinsPipelineSpecification { + + def Exec + + def setup() { + script_class_path = ["vars", "build/classes/groovy/main"] + Exec = loadPipelineScriptForTest('/exec.groovy') + } + + def "Sanity-Check isUnix"() { + expect: + isUnix() == null + } + + def "Sanity-Check mocking isUnix"() { + setup: + getPipelineMock('isUnix')() >> { return true } + expect: + isUnix() != null + } + + def "Sanity-Check expecting isUnix"() { + when: + Exec('ls') + then: + _ * getPipelineMock('isUnix')() >> { return true } + 1 * getPipelineMock('sh') ('ls') + } + + def "(broken) Test on Windows"() { + setup: + getPipelineMock('isUnix')() >> { return false } + + when: + Exec('ls') + then: + 1 * getPipelineMock('isUnix') () + 1 * getPipelineMock('bat') ('ls') + } + + def "(broken) Test on Linux"() { + setup: + getPipelineMock('isUnix')() >> { return true } + + when: + Exec('ls') + then: + 1 * getPipelineMock('isUnix') () + 0 * getPipelineMock('sh') ('ls') + } + + def "Test on Windows"() { + when: + Exec('ls') + then: + 1 * getPipelineMock('isUnix') () >> { return false } + 1 * getPipelineMock('bat') ('ls') + } + + def "Test on Linux"() { + when: + Exec('ls') + then: + 1 * getPipelineMock('isUnix') () >> { return true } + 1 * getPipelineMock('sh') ('ls') + } +} \ No newline at end of file diff --git a/examples/helper-script-gradle/vars/exec.groovy b/examples/helper-script-gradle/vars/exec.groovy new file mode 100644 index 0000000..3468401 --- /dev/null +++ b/examples/helper-script-gradle/vars/exec.groovy @@ -0,0 +1,7 @@ +void call(String command) { + if (isUnix()) { + sh command + } else{ + bat command + } +} \ No newline at end of file From 1d0389309afd276c26fa8890ced0144684e79fdf Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 8 Apr 2020 08:52:11 -0400 Subject: [PATCH 02/45] initial commit for Gradle project - TODO: - 2 out of 5 tests are failing - logdir_IS_UNDEFINED is being created, presumably because logback configuration is not kicking in --- examples/shared-library-gradle/.gitignore | 8 + examples/shared-library-gradle/Makefile | 3 + examples/shared-library-gradle/README.md | 49 +++++ examples/shared-library-gradle/build.gradle | 70 +++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + examples/shared-library-gradle/gradlew | 172 ++++++++++++++++++ examples/shared-library-gradle/gradlew.bat | 84 +++++++++ .../com/example/SharedLibraryConstants.groovy | 9 + .../test/DefaultPipelineSpec.groovy | 51 ++++++ .../test/DeployerSpec.groovy | 27 +++ .../test/resources/logback-test.xml | 41 +++++ .../vars/DefaultPipeline.groovy | 40 ++++ .../vars/Deployer.groovy | 14 ++ 14 files changed, 573 insertions(+) create mode 100644 examples/shared-library-gradle/.gitignore create mode 100644 examples/shared-library-gradle/Makefile create mode 100644 examples/shared-library-gradle/README.md create mode 100644 examples/shared-library-gradle/build.gradle create mode 100644 examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/shared-library-gradle/gradlew create mode 100644 examples/shared-library-gradle/gradlew.bat create mode 100644 examples/shared-library-gradle/src/com/example/SharedLibraryConstants.groovy create mode 100644 examples/shared-library-gradle/test/DefaultPipelineSpec.groovy create mode 100644 examples/shared-library-gradle/test/DeployerSpec.groovy create mode 100644 examples/shared-library-gradle/test/resources/logback-test.xml create mode 100644 examples/shared-library-gradle/vars/DefaultPipeline.groovy create mode 100644 examples/shared-library-gradle/vars/Deployer.groovy diff --git a/examples/shared-library-gradle/.gitignore b/examples/shared-library-gradle/.gitignore new file mode 100644 index 0000000..3223f6e --- /dev/null +++ b/examples/shared-library-gradle/.gitignore @@ -0,0 +1,8 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build + +# Ignore IntelliJ IDEA project files +/.idea/ diff --git a/examples/shared-library-gradle/Makefile b/examples/shared-library-gradle/Makefile new file mode 100644 index 0000000..5016f26 --- /dev/null +++ b/examples/shared-library-gradle/Makefile @@ -0,0 +1,3 @@ +.PHONY: test +test: + ./gradlew clean build diff --git a/examples/shared-library-gradle/README.md b/examples/shared-library-gradle/README.md new file mode 100644 index 0000000..d81d351 --- /dev/null +++ b/examples/shared-library-gradle/README.md @@ -0,0 +1,49 @@ +Pipeline Shared Library +============================== + +This project is a Jenkins Pipeline Shared Library that could be loaded by the [Pipeline Shared Groovy Libraries Plugin](https://plugins.jenkins.io/workflow-cps-global-lib). + +It delivers two new pipeline steps: + +`DefaultPipeline` +------------------------- + +A simple Jenkins pipeline that + +1. Builds & Tests all branches +2. Notifies Slack if tests fail +3. Deploys the "master" branch to the Production environment +4. Deploys other branches to the "Test" environment. + +Usage: + +`Jenkinsfile`: + +```groovy +@Library("shared-library") _ +DefaultPipeline() +``` + +`Deployer` +------------------------- + +A step that SSHs to a machine in an environment, and bounces an application using `docker-compose`. + +Usage: + +``` +Deployer("test") // deploy the latest version of the application to the TEST environment +``` + +Testing +============================== + +To test the library, run `./gradlew clean build --info`. + +Requirements +============================== + +The following tools should be installed in order to work with this project: + +1. `make` +2. `java` 1.8+ diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle new file mode 100644 index 0000000..e563282 --- /dev/null +++ b/examples/shared-library-gradle/build.gradle @@ -0,0 +1,70 @@ +plugins { + // Apply the groovy plugin to add support for Groovy + id 'groovy' + // Apply Gradle JPI plugin to simplify dependency management + id 'org.jenkins-ci.jpi' version '0.39.0-rc.7' +} + +group 'com.example' +version 'O.1-SNAPSHOT' + +allprojects { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + +sourceSets { + main { + groovy { + srcDirs = ['src', 'vars'] + } + } + test { + groovy { + srcDirs = ['test'] + } + resources { + srcDirs = ['test/resources'] + } + } +} + +repositories { + mavenCentral() + mavenLocal() + jcenter() + maven { url 'https://repo.jenkins-ci.org/releases/' } +} + +configurations { + all { + resolutionStrategy { + force 'com.ibm.icu:icu4j:66.1' + } + } +} + +dependencies { + implementation 'org.codehaus.groovy:groovy-all:2.5.10' + + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'ch.qos.logback:logback-core:1.2.3' + testImplementation 'ch.qos.logback:logback-classic:1.2.3' + testImplementation 'javax.servlet:javax.servlet-api:3.1.0' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + // provides stage() step + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' + // provides isUnix() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' + // provides sh() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + // provides libraryResource() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.10' + // provides slackSend() step + testImplementation 'org.jenkins-ci.plugins:slack:2.3' + // provides sshagent() step + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' + + // plugin dependencies + testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin +} \ No newline at end of file diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 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 z 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 \(.*\)$'` + 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='"-Xmx64m"' + +# 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/examples/shared-library-gradle/gradlew.bat b/examples/shared-library-gradle/gradlew.bat new file mode 100644 index 0000000..6d57edc --- /dev/null +++ b/examples/shared-library-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="-Xmx64m" + +@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 diff --git a/examples/shared-library-gradle/src/com/example/SharedLibraryConstants.groovy b/examples/shared-library-gradle/src/com/example/SharedLibraryConstants.groovy new file mode 100644 index 0000000..1de832f --- /dev/null +++ b/examples/shared-library-gradle/src/com/example/SharedLibraryConstants.groovy @@ -0,0 +1,9 @@ +package com.example + +public class SharedLibraryConstants { + public static final String DEPLOY_COMMAND = """ + docker-compose pull && \ + docker-compose down && \ + docker-compose rm -f && \ + docker-compose up -d --force-recreate""" +} diff --git a/examples/shared-library-gradle/test/DefaultPipelineSpec.groovy b/examples/shared-library-gradle/test/DefaultPipelineSpec.groovy new file mode 100644 index 0000000..84ace0e --- /dev/null +++ b/examples/shared-library-gradle/test/DefaultPipelineSpec.groovy @@ -0,0 +1,51 @@ +import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification + +public class DefaultPipelineSpec extends JenkinsPipelineSpecification { + + def DefaultPipeline = null + + public static class DummyException extends RuntimeException { + public DummyException(String _message) { super( _message ); } + } + + def setup() { + script_class_path = ["vars"] + DefaultPipeline = loadPipelineScriptForTest("/DefaultPipeline.groovy") + DefaultPipeline.getBinding().setVariable( "scm", null ) + getPipelineMock("libraryResource")(_) >> { + return "Dummy Message" + } + } + + def "Slack is notified when tests fail" () { + setup: + getPipelineMock("sh")("docker run --entrypoint python whole-pipeline -m unittest discover") >> { + throw new DummyException("Dummy test failure") + } + when: + try { + DefaultPipeline() + } catch( DummyException e ) {} + then: + 1 * getPipelineMock("slackSend")( _ as Map ) + } + + def "Attempts to deploy MASTER branch to PRODUCTION" () { + setup: + DefaultPipeline.getBinding().setVariable( "BRANCH_NAME", "master" ) + when: + DefaultPipeline() + then: + 1 * getPipelineMock("Deployer.call")("production") + } + + def "Does NOT attempt to deploy non-MASTER branch PRODUCTION" () { + setup: + DefaultPipeline.getBinding().setVariable( "BRANCH_NAME", "develop" ) + when: + DefaultPipeline() + then: + 0 * getPipelineMock("Deployer.call")("production") + } +} + diff --git a/examples/shared-library-gradle/test/DeployerSpec.groovy b/examples/shared-library-gradle/test/DeployerSpec.groovy new file mode 100644 index 0000000..7d420de --- /dev/null +++ b/examples/shared-library-gradle/test/DeployerSpec.groovy @@ -0,0 +1,27 @@ +import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification + +public class DeployerSpec extends JenkinsPipelineSpecification { + + def Deployer = null + + def setup() { + script_class_path = ["vars"] + Deployer = loadPipelineScriptForTest("/Deployer.groovy") + } + + def "deploy function deploys to TEST when asked" () { + when: + Deployer( "test" ) + then: + 1 * getPipelineMock("sshagent")(["test-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-test .*/}) + } + + def "deploy function deploys to PRODUCTION when asked" () { + when: + Deployer( "production" ) + then: + 1 * getPipelineMock("sshagent")(["prod-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-prod .*/}) + } +} \ No newline at end of file diff --git a/examples/shared-library-gradle/test/resources/logback-test.xml b/examples/shared-library-gradle/test/resources/logback-test.xml new file mode 100644 index 0000000..a4fe093 --- /dev/null +++ b/examples/shared-library-gradle/test/resources/logback-test.xml @@ -0,0 +1,41 @@ + + + + + + + + + + [%date{ISO8601}]\(%t\)\([%X{requestMarker}]\) %p %logger{0} - %m%n + + + + + + ${logdir}/stdout.log + + ${logdir}/stdout.log.%i + + 1 + 10 + + + 20MB + + + [%date{ISO8601}]\(%t\)\([%X{requestMarker}]\) %p %logger{0} - %m%n + + + + + + + + + + \ No newline at end of file diff --git a/examples/shared-library-gradle/vars/DefaultPipeline.groovy b/examples/shared-library-gradle/vars/DefaultPipeline.groovy new file mode 100644 index 0000000..debcc21 --- /dev/null +++ b/examples/shared-library-gradle/vars/DefaultPipeline.groovy @@ -0,0 +1,40 @@ +def call( Map _args ) { + + node { + stage( "Checkout" ) { + checkout scm + } + + stage( "Build" ) { + sh( "docker build --tag whole-pipeline ." ) + } + + stage( "Test" ) { + try { + sh( "docker run --entrypoint python whole-pipeline -m unittest discover" ) + } catch( Exception e ) { + + def message = evaluate( '"""' + libraryResource( "com/example/SlackMessageTemplate.txt" ) + '"""' ) + + slackSend( + color: 'error', + message: message ) + throw e + } + } + + stage( "Push" ) { + sh( "docker push whole-pipeline" ) + } + + stage( "Deploy to TEST" ) { + Deployer( "test" ) + } + + if( BRANCH_NAME == "master" ) { + stage( "Deploy to PRODUCTION" ) { + Deployer( "production" ) + } + } + } +} diff --git a/examples/shared-library-gradle/vars/Deployer.groovy b/examples/shared-library-gradle/vars/Deployer.groovy new file mode 100644 index 0000000..1e594fd --- /dev/null +++ b/examples/shared-library-gradle/vars/Deployer.groovy @@ -0,0 +1,14 @@ +import com.example.SharedLibraryConstants + +def call( _env ) { + + if( _env == "test" ) { + sshagent(["test-ssh"]) { + sh( "ssh deployer@app-test -c '${SharedLibraryConstants.DEPLOY_COMMAND}'" ) + } + } else if( _env == "production" ) { + sshagent(["prod-ssh"]) { + sh( "ssh deployer@app-prod -c '${SharedLibraryConstants.DEPLOY_COMMAND}'" ) + } + } +} From 76b7fb75e00580b54cbee3cbe375e92bcba14458 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 8 Apr 2020 09:08:06 -0400 Subject: [PATCH 03/45] utilize org.jenkins-ci.jpi gradle plugin - transitive dependencies are grabbed by plugin - take out unnecessary org.jenkins-ci.plugins dependencies - take out @jar notation --- examples/helper-script-gradle/build.gradle | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 6d7fc16..0a4039f 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -1,6 +1,8 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' + // Apply Gradle JPI plugin to simplify dependency management + id 'org.jenkins-ci.jpi' version '0.39.0-rc.7' } group 'com.example' @@ -43,19 +45,15 @@ dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.10' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'ch.qos.logback:logback-core:1.2.3' + testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' - testImplementation 'org.jenkins-ci.plugins:durable-task:1.33@jar' - testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3@jar' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-api:2.37@jar' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.77@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.77' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35@jar' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-step-api:2.21@jar' - testImplementation 'org.jenkins-ci.plugins:ws-cleanup:0.37@jar' - testImplementation 'org.jenkins-ci:symbol-annotation:1.20@jar' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From 1a6ed3c0e0c43c0c23fd3236b29fafadf5dd1faa Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 21 Apr 2020 18:17:33 -0400 Subject: [PATCH 04/45] fix test failures allow getSharedLibraryVariables() to find .groovy scripts in classpath under "vars" --- examples/shared-library-gradle/build.gradle | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index e563282..4de9713 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -67,4 +67,19 @@ dependencies { // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin -} \ No newline at end of file +} + +task cleanSharedLibraries(type: Delete) { + delete "$buildDir/classes/groovy/test/vars" +} + +task prepareSharedLibraries(type: Copy) { + dependsOn tasks.cleanSharedLibraries + from 'vars' + include '*' + into "$buildDir/classes/groovy/test/vars" +} + +test { + dependsOn tasks.prepareSharedLibraries +} From 2c080a66d74475ce77a7a4332462f7f11767627e Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 21 Apr 2020 18:30:38 -0400 Subject: [PATCH 05/45] pass system properties to the JVM while testing --- examples/shared-library-gradle/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 4de9713..6fc7eec 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -5,6 +5,8 @@ plugins { id 'org.jenkins-ci.jpi' version '0.39.0-rc.7' } +def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' + group 'com.example' version 'O.1-SNAPSHOT' @@ -82,4 +84,7 @@ task prepareSharedLibraries(type: Copy) { test { dependsOn tasks.prepareSharedLibraries + systemProperty 'root.loglevel', testLogLevel + systemProperty 'root.appender', 'Stdout' + systemProperty 'logdir', project.buildDir } From e7d2bf94ed3d5d0bcef307e97c6f09bd476f3bad Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 21 Apr 2020 18:45:57 -0400 Subject: [PATCH 06/45] pass multiple system properties at once --- examples/shared-library-gradle/build.gradle | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 6fc7eec..063ed88 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -84,7 +84,9 @@ task prepareSharedLibraries(type: Copy) { test { dependsOn tasks.prepareSharedLibraries - systemProperty 'root.loglevel', testLogLevel - systemProperty 'root.appender', 'Stdout' - systemProperty 'logdir', project.buildDir + systemProperties = [ + 'root.loglevel': testLogLevel, + 'root.appender': 'Stdout', + 'logdir': project.buildDir + ] } From 9d5afc2a27ea91af4d98534e04bc0463f5b403eb Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 21 Apr 2020 18:47:24 -0400 Subject: [PATCH 07/45] version bump for jpi plugin to 0.39.0 --- examples/shared-library-gradle/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 063ed88..ea2d5fb 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.39.0-rc.7' + id 'org.jenkins-ci.jpi' version '0.39.0' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' From d718fc9ed06cf24f2781cdea6c2c78f52c4f1cb0 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 22 Apr 2020 19:15:49 -0400 Subject: [PATCH 08/45] add settings.gradle --- examples/shared-library-gradle/settings.gradle | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/shared-library-gradle/settings.gradle diff --git a/examples/shared-library-gradle/settings.gradle b/examples/shared-library-gradle/settings.gradle new file mode 100644 index 0000000..2f43853 --- /dev/null +++ b/examples/shared-library-gradle/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'jenkinsfile-test-shared-library' \ No newline at end of file From f75e4a1733cb01285dc9228726dbd84f54fa2713 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 22 Apr 2020 19:30:45 -0400 Subject: [PATCH 09/45] initial commit for gradle version of whole-pipeline --- examples/whole-pipeline-gradle/.gitignore | 8 + examples/whole-pipeline-gradle/Dockerfile | 13 ++ examples/whole-pipeline-gradle/Jenkinsfile | 49 +++++ examples/whole-pipeline-gradle/Makefile | 20 ++ examples/whole-pipeline-gradle/README.md | 37 ++++ examples/whole-pipeline-gradle/app/counter.py | 2 + examples/whole-pipeline-gradle/app/hello.py | 15 ++ .../whole-pipeline-gradle/app/test_counter.py | 6 + .../whole-pipeline-gradle/app/test_hello.py | 8 + examples/whole-pipeline-gradle/build.gradle | 74 ++++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + examples/whole-pipeline-gradle/gradlew | 172 ++++++++++++++++++ examples/whole-pipeline-gradle/gradlew.bat | 84 +++++++++ .../whole-pipeline-gradle/settings.gradle | 1 + .../src/test/groovy/JenkinsfileSpec.groovy | 64 +++++++ .../src/test/resources/logback-test.xml | 41 +++++ 17 files changed, 599 insertions(+) create mode 100644 examples/whole-pipeline-gradle/.gitignore create mode 100644 examples/whole-pipeline-gradle/Dockerfile create mode 100644 examples/whole-pipeline-gradle/Jenkinsfile create mode 100644 examples/whole-pipeline-gradle/Makefile create mode 100644 examples/whole-pipeline-gradle/README.md create mode 100644 examples/whole-pipeline-gradle/app/counter.py create mode 100644 examples/whole-pipeline-gradle/app/hello.py create mode 100644 examples/whole-pipeline-gradle/app/test_counter.py create mode 100644 examples/whole-pipeline-gradle/app/test_hello.py create mode 100644 examples/whole-pipeline-gradle/build.gradle create mode 100644 examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/whole-pipeline-gradle/gradlew create mode 100644 examples/whole-pipeline-gradle/gradlew.bat create mode 100644 examples/whole-pipeline-gradle/settings.gradle create mode 100644 examples/whole-pipeline-gradle/src/test/groovy/JenkinsfileSpec.groovy create mode 100644 examples/whole-pipeline-gradle/src/test/resources/logback-test.xml diff --git a/examples/whole-pipeline-gradle/.gitignore b/examples/whole-pipeline-gradle/.gitignore new file mode 100644 index 0000000..3223f6e --- /dev/null +++ b/examples/whole-pipeline-gradle/.gitignore @@ -0,0 +1,8 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build + +# Ignore IntelliJ IDEA project files +/.idea/ diff --git a/examples/whole-pipeline-gradle/Dockerfile b/examples/whole-pipeline-gradle/Dockerfile new file mode 100644 index 0000000..d7d6dc1 --- /dev/null +++ b/examples/whole-pipeline-gradle/Dockerfile @@ -0,0 +1,13 @@ +FROM jfloff/alpine-python:3.6 + +RUN pip install --upgrade \ + Flask \ + pip + +COPY app /app + +WORKDIR app +ENV FLASK_APP=hello.py +EXPOSE 5000 + +ENTRYPOINT ["flask", "run", "--host", "0.0.0.0"] diff --git a/examples/whole-pipeline-gradle/Jenkinsfile b/examples/whole-pipeline-gradle/Jenkinsfile new file mode 100644 index 0000000..a6c6137 --- /dev/null +++ b/examples/whole-pipeline-gradle/Jenkinsfile @@ -0,0 +1,49 @@ +def deploy( _env ) { + + def DEPLOY_COMMAND="docker-compose pull && docker-compose down && docker-compose rm -f && docker-compose up -d --force-recreate" + + if( _env == "test" ) { + sshagent(["test-ssh"]) { + sh( "ssh deployer@app-test -c '${DEPLOY_COMMAND}'" ) + } + } else if( _env == "production" ) { + sshagent(["prod-ssh"]) { + sh( "ssh deployer@app-prod -c '${DEPLOY_COMMAND}'" ) + } + } +} + +node { + stage( "Checkout" ) { + checkout scm + } + + stage( "Build" ) { + sh( "docker build --tag whole-pipeline ." ) + } + + stage( "Test" ) { + try { + sh( "docker run --entrypoint python whole-pipeline -m unittest discover" ) + } catch( Exception e ) { + slackSend( + color: 'error', + message: 'whole-pipeline unit tests failed.' ) + throw e + } + } + + stage( "Push" ) { + sh( "docker push whole-pipeline" ) + } + + stage( "Deploy to TEST" ) { + deploy( "test" ) + } + + if( BRANCH_NAME == "master" ) { + stage( "Deploy to PRODUCTION" ) { + deploy( "production" ) + } + } +} diff --git a/examples/whole-pipeline-gradle/Makefile b/examples/whole-pipeline-gradle/Makefile new file mode 100644 index 0000000..145091e --- /dev/null +++ b/examples/whole-pipeline-gradle/Makefile @@ -0,0 +1,20 @@ +.PHONY: all +all: + $(MAKE) test + $(MAKE) test-pipeline + +.PHONY: build +build: + docker build -t helper-script . + +.PHONY: run +run: build + docker run --rm -it --publish 5000:5000 helper-script + +.PHONY: test +test: build + docker run --entrypoint python helper-script -m unittest discover + +.PHONY: test-pipeline +test-pipeline: + ./gradlew clean build diff --git a/examples/whole-pipeline-gradle/README.md b/examples/whole-pipeline-gradle/README.md new file mode 100644 index 0000000..1f8d31c --- /dev/null +++ b/examples/whole-pipeline-gradle/README.md @@ -0,0 +1,37 @@ +Jenkinsfile +============================== + +This project is a containerized Python web application with a Jenkins pipeline that + +1. Builds & Tests all branches +2. Notifies Slack if tests fail +3. Deploys the "master" branch to the Production environment +4. Deploys other branches to the "Test" environment. + +Building +============================== + +To build the web application, run `make build`. + +Running +============================== + +To run the application, run `make run`. + +To see the running application, visit http://localhost:5000 in a web browser. + +Testing +============================== + +To test the _application_, run `make test`. + +To test the _pipeline_, run `make test-pipeline`. + +Requirements +============================== + +The following tools should be installed in order to work with this project: + +1. `docker` +2. `make` +3. `java` 1.8+ diff --git a/examples/whole-pipeline-gradle/app/counter.py b/examples/whole-pipeline-gradle/app/counter.py new file mode 100644 index 0000000..56097e9 --- /dev/null +++ b/examples/whole-pipeline-gradle/app/counter.py @@ -0,0 +1,2 @@ +def plusone(_number): + return _number + 1 diff --git a/examples/whole-pipeline-gradle/app/hello.py b/examples/whole-pipeline-gradle/app/hello.py new file mode 100644 index 0000000..7beacb4 --- /dev/null +++ b/examples/whole-pipeline-gradle/app/hello.py @@ -0,0 +1,15 @@ +import counter +from flask import Flask + +app = Flask(__name__) +greeted_times = 0 + +@app.route("/") +def hello(): + global greeted_times + + greeting = "Hello World! I've greeted {0} times!".format( greeted_times ) + + greeted_times = counter.plusone( greeted_times ) + + return greeting \ No newline at end of file diff --git a/examples/whole-pipeline-gradle/app/test_counter.py b/examples/whole-pipeline-gradle/app/test_counter.py new file mode 100644 index 0000000..a731d97 --- /dev/null +++ b/examples/whole-pipeline-gradle/app/test_counter.py @@ -0,0 +1,6 @@ +import unittest +import counter + +class TestCounter(unittest.TestCase): + def test_plusone(self): + self.assertEqual(2, counter.plusone(1)) \ No newline at end of file diff --git a/examples/whole-pipeline-gradle/app/test_hello.py b/examples/whole-pipeline-gradle/app/test_hello.py new file mode 100644 index 0000000..85cfe83 --- /dev/null +++ b/examples/whole-pipeline-gradle/app/test_hello.py @@ -0,0 +1,8 @@ +import unittest +import hello + +class TestCounter(unittest.TestCase): + def test_hello(self): + self.assertEqual( "Hello World! I've greeted 0 times!", hello.hello() ) + self.assertEqual( "Hello World! I've greeted 1 times!", hello.hello() ) + self.assertEqual( "Hello World! I've greeted 2 times!", hello.hello() ) \ No newline at end of file diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle new file mode 100644 index 0000000..2100666 --- /dev/null +++ b/examples/whole-pipeline-gradle/build.gradle @@ -0,0 +1,74 @@ +plugins { + // Apply the groovy plugin to add support for Groovy + id 'groovy' + // Apply Gradle JPI plugin to simplify dependency management + id 'org.jenkins-ci.jpi' version '0.39.0' +} + +def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' + +group 'com.example' +version 'O.1-SNAPSHOT' + +allprojects { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + +repositories { + mavenCentral() + mavenLocal() + jcenter() + maven { url 'https://repo.jenkins-ci.org/releases/' } +} + +configurations { + all { + resolutionStrategy { + force 'com.ibm.icu:icu4j:66.1' + } + } +} + +dependencies { + implementation 'org.codehaus.groovy:groovy-all:2.5.10' + + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'ch.qos.logback:logback-core:1.2.3' + testImplementation 'ch.qos.logback:logback-classic:1.2.3' + testImplementation 'javax.servlet:javax.servlet-api:3.1.0' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + // provides stage() step + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' + // provides sh() step + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + // provides GlobalVariable + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.10' + // provides slackSend() step + testImplementation 'org.jenkins-ci.plugins:slack:2.3' + // provides sshagent() step + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' + + // plugin dependencies + testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin +} + +task cleanSharedLibraries(type: Delete) { + delete "$buildDir/classes/groovy/test/vars" +} + +task prepareSharedLibraries(type: Copy) { + dependsOn tasks.cleanSharedLibraries + from '.' + include 'Jenkinsfile' + into "$buildDir/classes/groovy/test/vars" +} + +test { + dependsOn tasks.prepareSharedLibraries + systemProperties = [ + 'root.loglevel': testLogLevel, + 'root.appender': 'Stdout', + 'logdir': project.buildDir + ] +} diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 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 z 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 \(.*\)$'` + 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='"-Xmx64m"' + +# 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/examples/whole-pipeline-gradle/gradlew.bat b/examples/whole-pipeline-gradle/gradlew.bat new file mode 100644 index 0000000..6d57edc --- /dev/null +++ b/examples/whole-pipeline-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="-Xmx64m" + +@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 diff --git a/examples/whole-pipeline-gradle/settings.gradle b/examples/whole-pipeline-gradle/settings.gradle new file mode 100644 index 0000000..2a547e4 --- /dev/null +++ b/examples/whole-pipeline-gradle/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'jenkinsfile-test-whole-pipeline' \ No newline at end of file diff --git a/examples/whole-pipeline-gradle/src/test/groovy/JenkinsfileSpec.groovy b/examples/whole-pipeline-gradle/src/test/groovy/JenkinsfileSpec.groovy new file mode 100644 index 0000000..f4c1c74 --- /dev/null +++ b/examples/whole-pipeline-gradle/src/test/groovy/JenkinsfileSpec.groovy @@ -0,0 +1,64 @@ +import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification + +public class JenkinsfileSpec extends JenkinsPipelineSpecification { + + def Jenkinsfile = null + + public static class DummyException extends RuntimeException { + public DummyException(String _message) { super( _message ); } + } + + def setup() { + script_class_path = ["."] + Jenkinsfile = loadPipelineScriptForTest("/Jenkinsfile") + Jenkinsfile.getBinding().setVariable( "scm", null ) + } + + def "Slack is notified when tests fail" () { + setup: + getPipelineMock("sh")("docker run --entrypoint python whole-pipeline -m unittest discover") >> { + throw new DummyException("Dummy test failure") + } + when: + try { + Jenkinsfile.run() + } catch( DummyException e ) {} + then: + 1 * getPipelineMock("slackSend")( _ as Map ) + } + + def "Attempts to deploy MASTER branch to PRODUCTION" () { + setup: + Jenkinsfile.getBinding().setVariable( "BRANCH_NAME", "master" ) + when: + Jenkinsfile.run() + then: + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-prod .*/}) + } + + def "Does NOT attempt to deploy non-MASTER branch PRODUCTION" () { + setup: + Jenkinsfile.getBinding().setVariable( "BRANCH_NAME", "develop" ) + when: + Jenkinsfile.run() + then: + 0 * getPipelineMock("sh")({it =~ /ssh deployer@app-prod .*/}) + } + + def "deploy function deploys to TEST when asked" () { + when: + Jenkinsfile.deploy( "test" ) + then: + 1 * getPipelineMock("sshagent")(["test-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-test .*/}) + } + + def "deploy function deploys to PRODUCTION when asked" () { + when: + Jenkinsfile.deploy( "production" ) + then: + 1 * getPipelineMock("sshagent")(["prod-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-prod .*/}) + } +} + diff --git a/examples/whole-pipeline-gradle/src/test/resources/logback-test.xml b/examples/whole-pipeline-gradle/src/test/resources/logback-test.xml new file mode 100644 index 0000000..a4fe093 --- /dev/null +++ b/examples/whole-pipeline-gradle/src/test/resources/logback-test.xml @@ -0,0 +1,41 @@ + + + + + + + + + + [%date{ISO8601}]\(%t\)\([%X{requestMarker}]\) %p %logger{0} - %m%n + + + + + + ${logdir}/stdout.log + + ${logdir}/stdout.log.%i + + 1 + 10 + + + 20MB + + + [%date{ISO8601}]\(%t\)\([%X{requestMarker}]\) %p %logger{0} - %m%n + + + + + + + + + + \ No newline at end of file From 2eae946e8fdc098c89ced5b81d9f5d63f1bd3c91 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 12 May 2020 20:14:50 -0400 Subject: [PATCH 10/45] version bump for gradle wrapper to 6.4 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58694 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/helper-script-gradle/gradlew | 51 +++++++++++------- examples/helper-script-gradle/gradlew.bat | 21 +++++++- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58694 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/gradlew | 51 +++++++++++------- examples/shared-library-gradle/gradlew.bat | 21 +++++++- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58694 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/gradlew | 51 +++++++++++------- examples/whole-pipeline-gradle/gradlew.bat | 21 +++++++- 12 files changed, 156 insertions(+), 66 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..490fda8577df6c95960ba7077c43220e5bb2c0d9 100644 GIT binary patch delta 25666 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 LPARA%49x!ki(!$u delta 22506 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 MHTplY>HX9CKgzWmod5s; diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 6623300..fd0c5a3 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/helper-script-gradle/gradlew b/examples/helper-script-gradle/gradlew index af6708f..2fe81a7 100755 --- a/examples/helper-script-gradle/gradlew +++ b/examples/helper-script-gradle/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# 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 +# +# https://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. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ 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='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ 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 +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -138,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $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" ;; + 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 @@ -159,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +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/examples/helper-script-gradle/gradlew.bat b/examples/helper-script-gradle/gradlew.bat index 6d57edc..62bd9b9 100644 --- a/examples/helper-script-gradle/gradlew.bat +++ b/examples/helper-script-gradle/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @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="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..490fda8577df6c95960ba7077c43220e5bb2c0d9 100644 GIT binary patch delta 25666 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 LPARA%49x!ki(!$u delta 22506 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 MHTplY>HX9CKgzWmod5s; diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 6623300..fd0c5a3 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradlew b/examples/shared-library-gradle/gradlew index af6708f..2fe81a7 100755 --- a/examples/shared-library-gradle/gradlew +++ b/examples/shared-library-gradle/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# 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 +# +# https://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. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ 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='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ 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 +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -138,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $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" ;; + 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 @@ -159,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +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/examples/shared-library-gradle/gradlew.bat b/examples/shared-library-gradle/gradlew.bat index 6d57edc..62bd9b9 100644 --- a/examples/shared-library-gradle/gradlew.bat +++ b/examples/shared-library-gradle/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @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="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..490fda8577df6c95960ba7077c43220e5bb2c0d9 100644 GIT binary patch delta 25666 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 LPARA%49x!ki(!$u delta 22506 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 MHTplY>HX9CKgzWmod5s; diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 6623300..fd0c5a3 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradlew b/examples/whole-pipeline-gradle/gradlew index af6708f..2fe81a7 100755 --- a/examples/whole-pipeline-gradle/gradlew +++ b/examples/whole-pipeline-gradle/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# 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 +# +# https://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. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ 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='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ 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 +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -138,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $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" ;; + 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 @@ -159,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +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/examples/whole-pipeline-gradle/gradlew.bat b/examples/whole-pipeline-gradle/gradlew.bat index 6d57edc..62bd9b9 100644 --- a/examples/whole-pipeline-gradle/gradlew.bat +++ b/examples/whole-pipeline-gradle/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @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="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome From bf5ced10f81ffcf7c76279b4071ce57b872dba9c Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 13 May 2020 20:30:41 -0400 Subject: [PATCH 11/45] exclude icu4j from a jenkins-core dependency --- examples/helper-script-gradle/build.gradle | 12 +++--------- examples/shared-library-gradle/build.gradle | 12 +++--------- examples/whole-pipeline-gradle/build.gradle | 12 +++--------- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 0a4039f..93b40bc 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -33,14 +33,6 @@ repositories { maven { url 'https://repo.jenkins-ci.org/releases/' } } -configurations { - all { - resolutionStrategy { - force 'com.ibm.icu:icu4j:66.1' - } - } -} - dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.10' @@ -48,7 +40,9 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { + exclude group: 'com.ibm.icu', module: 'icu4j' + } testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.77' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index ea2d5fb..19d2f45 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -38,14 +38,6 @@ repositories { maven { url 'https://repo.jenkins-ci.org/releases/' } } -configurations { - all { - resolutionStrategy { - force 'com.ibm.icu:icu4j:66.1' - } - } -} - dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.10' @@ -53,7 +45,9 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { + exclude group: 'com.ibm.icu', module: 'icu4j' + } // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' // provides isUnix() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 2100666..7c11d32 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -22,14 +22,6 @@ repositories { maven { url 'https://repo.jenkins-ci.org/releases/' } } -configurations { - all { - resolutionStrategy { - force 'com.ibm.icu:icu4j:66.1' - } - } -} - dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.10' @@ -37,7 +29,9 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { + exclude group: 'com.ibm.icu', module: 'icu4j' + } // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' // provides sh() step From d3db7aaa149fb67dbdef80b5a196a4260a22d774 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 14 May 2020 21:06:58 -0400 Subject: [PATCH 12/45] add Deployer.groovy and associated Spec from helper-script maven project --- examples/helper-script-gradle/build.gradle | 2 ++ .../test/DeployerSpec.groovy | 27 +++++++++++++++++++ .../helper-script-gradle/vars/Deployer.groovy | 20 ++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 examples/helper-script-gradle/test/DeployerSpec.groovy create mode 100644 examples/helper-script-gradle/vars/Deployer.groovy diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 93b40bc..334892a 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -48,6 +48,8 @@ dependencies { testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + // provides sshagent() step + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin diff --git a/examples/helper-script-gradle/test/DeployerSpec.groovy b/examples/helper-script-gradle/test/DeployerSpec.groovy new file mode 100644 index 0000000..63395a9 --- /dev/null +++ b/examples/helper-script-gradle/test/DeployerSpec.groovy @@ -0,0 +1,27 @@ +import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification + +public class DeployerSpec extends JenkinsPipelineSpecification { + + def Deployer = null + + def setup() { + script_class_path = ["vars", "build/classes/groovy/main"] + Deployer = loadPipelineScriptForTest("/Deployer.groovy") + } + + def "deploy function deploys to TEST when asked" () { + when: + Deployer.deploy( "test" ) + then: + 1 * getPipelineMock("sshagent")(["test-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-test .*/}) + } + + def "deploy function deploys to PRODUCTION when asked" () { + when: + Deployer.deploy( "production" ) + then: + 1 * getPipelineMock("sshagent")(["prod-ssh"], _ as Closure) + 1 * getPipelineMock("sh")({it =~ /ssh deployer@app-prod .*/}) + } +} \ No newline at end of file diff --git a/examples/helper-script-gradle/vars/Deployer.groovy b/examples/helper-script-gradle/vars/Deployer.groovy new file mode 100644 index 0000000..0b744e3 --- /dev/null +++ b/examples/helper-script-gradle/vars/Deployer.groovy @@ -0,0 +1,20 @@ +def deploy( _env ) { + + def DEPLOY_COMMAND=""" + docker-compose pull && \ + docker-compose down && \ + docker-compose rm -f && \ + docker-compose up -d --force-recreate""" + + if( _env == "test" ) { + sshagent(["test-ssh"]) { + sh( "ssh deployer@app-test -c '${DEPLOY_COMMAND}'" ) + } + } else if( _env == "production" ) { + sshagent(["prod-ssh"]) { + sh( "ssh deployer@app-prod -c '${DEPLOY_COMMAND}'" ) + } + } +} + +return this From 0162e6fb90056fd68e4c116b6e449dd1a5b54d78 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 14 May 2020 21:08:37 -0400 Subject: [PATCH 13/45] cosmetic - indentation --- .../helper-script-gradle/test/ExecTest.groovy | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/examples/helper-script-gradle/test/ExecTest.groovy b/examples/helper-script-gradle/test/ExecTest.groovy index 18f76b3..18693c0 100644 --- a/examples/helper-script-gradle/test/ExecTest.groovy +++ b/examples/helper-script-gradle/test/ExecTest.groovy @@ -28,59 +28,59 @@ class ExecTest extends JenkinsPipelineSpecification { def "Sanity-Check isUnix"() { expect: - isUnix() == null + isUnix() == null } def "Sanity-Check mocking isUnix"() { setup: - getPipelineMock('isUnix')() >> { return true } + getPipelineMock('isUnix')() >> { return true } expect: - isUnix() != null + isUnix() != null } def "Sanity-Check expecting isUnix"() { when: - Exec('ls') + Exec('ls') then: - _ * getPipelineMock('isUnix')() >> { return true } - 1 * getPipelineMock('sh') ('ls') + _ * getPipelineMock('isUnix')() >> { return true } + 1 * getPipelineMock('sh') ('ls') } def "(broken) Test on Windows"() { setup: - getPipelineMock('isUnix')() >> { return false } + getPipelineMock('isUnix')() >> { return false } when: - Exec('ls') + Exec('ls') then: - 1 * getPipelineMock('isUnix') () - 1 * getPipelineMock('bat') ('ls') + 1 * getPipelineMock('isUnix') () + 1 * getPipelineMock('bat') ('ls') } def "(broken) Test on Linux"() { setup: - getPipelineMock('isUnix')() >> { return true } + getPipelineMock('isUnix')() >> { return true } when: - Exec('ls') + Exec('ls') then: - 1 * getPipelineMock('isUnix') () - 0 * getPipelineMock('sh') ('ls') + 1 * getPipelineMock('isUnix') () + 0 * getPipelineMock('sh') ('ls') } def "Test on Windows"() { when: - Exec('ls') + Exec('ls') then: - 1 * getPipelineMock('isUnix') () >> { return false } - 1 * getPipelineMock('bat') ('ls') + 1 * getPipelineMock('isUnix') () >> { return false } + 1 * getPipelineMock('bat') ('ls') } def "Test on Linux"() { when: - Exec('ls') + Exec('ls') then: - 1 * getPipelineMock('isUnix') () >> { return true } - 1 * getPipelineMock('sh') ('ls') + 1 * getPipelineMock('isUnix') () >> { return true } + 1 * getPipelineMock('sh') ('ls') } } \ No newline at end of file From 930735ddafefa89e55cb6b91450e309571950095 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Mon, 1 Jun 2020 13:25:06 -0400 Subject: [PATCH 14/45] take out unnecessary transitive dependency --- examples/helper-script-gradle/build.gradle | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 334892a..b15e184 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -50,8 +50,5 @@ dependencies { testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' // provides sshagent() step testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' - - // plugin dependencies - testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin } From f85fdeaecc0022ba8327064f5c07d78904c59f0f Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sat, 6 Jun 2020 21:07:38 -0400 Subject: [PATCH 15/45] version bump to lastest groovy in 2.5 series --- examples/helper-script-gradle/build.gradle | 2 +- examples/shared-library-gradle/build.gradle | 2 +- examples/whole-pipeline-gradle/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index b15e184..7d638eb 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -34,7 +34,7 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.10' + implementation 'org.codehaus.groovy:groovy-all:2.5.12' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' testImplementation 'ch.qos.logback:logback-core:1.2.3' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 19d2f45..81de35c 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -39,7 +39,7 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.10' + implementation 'org.codehaus.groovy:groovy-all:2.5.12' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' testImplementation 'ch.qos.logback:logback-core:1.2.3' diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 7c11d32..9b04c97 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -23,7 +23,7 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.10' + implementation 'org.codehaus.groovy:groovy-all:2.5.12' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' testImplementation 'ch.qos.logback:logback-core:1.2.3' From 12a42b488183ae932a5f288a8377e662337a7a3c Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sun, 14 Jun 2020 16:45:01 -0400 Subject: [PATCH 16/45] version bump for jenkins-spock to 2.1.4 --- examples/helper-script-gradle/build.gradle | 2 +- examples/shared-library-gradle/build.gradle | 2 +- examples/whole-pipeline-gradle/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 7d638eb..23268a3 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -36,7 +36,7 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.12' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 81de35c..acaab04 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -41,7 +41,7 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.12' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 9b04c97..733b5ec 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -25,7 +25,7 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.12' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.2' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' From e8cb2969339ddfa8b873a9735e44460ca0e04ef6 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sun, 14 Jun 2020 16:46:35 -0400 Subject: [PATCH 17/45] cosmetic - typo --- CHANGELOG.md | 2 +- .../jenkins/testing/JenkinsPipelineSpecification.groovy | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6080495..dfc4954 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ _Release Date: 2020-06-01_ ### Added -* Solution for Jenkins extensions that interact with the `Jenkins` singelton at classload- or Descriptor-instantiation-time: +* Solution for Jenkins extensions that interact with the `Jenkins` singleton at classload- or Descriptor-instantiation-time: * jenkins-spock automatically injects a mock Jenkins singleton _before_ any Jenkins extensions are classloaded or instantiated, so that `Jenkins.getInstanceOrNull()` is not `null`. * `makeStaticJenkins()` method to allow test suites to provide their own pre-test-suite Jenkins singleton if necessary, such as if the spec needs to stub pre-test-suite interaction with `Jenkins` * Please see the "Mock Jenkins" section of the `JenkinsPipelineSpecification` GroovyDoc. diff --git a/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy b/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy index 314dfae..cd409db 100644 --- a/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy +++ b/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy @@ -383,13 +383,13 @@ then: * Therefore, the descriptor must classloaded and then instantiated in order to get the right name. *

*

- * Some Jenkins extensions try to access the {@link Jenkins} singelton in static { ... } setup, + * Some Jenkins extensions try to access the {@link Jenkins} singleton in static { ... } setup, * or in their Descriptor's constructor. * The mock Jenkins that is automatically created for every test case won't help here because no test cases are running yet: * jenkins-spock is still setting up. *

*

- * In case a test suite involves classes that behave this way, jenkins-spock automatically creates a separate, static Spock mock of the {@link Jenkins} singelton + * In case a test suite involves classes that behave this way, jenkins-spock automatically creates a separate, static Spock mock of the {@link Jenkins} singleton * and injects it into the {@link Jenkins} class before any Extensions are classloaded and before any Descriptors are instantiated. * This mock cannot be stubbed and its interactions cannot be verified because * Spock mocks do not fully work outside a specification. From a7b06156f1a559935cfa4b616c5509a73f428017 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sun, 14 Jun 2020 16:48:38 -0400 Subject: [PATCH 18/45] dependency could originate from maven or gradle --- .../jenkins/testing/JenkinsPipelineSpecification.groovy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy b/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy index cd409db..75da67f 100644 --- a/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy +++ b/src/main/groovy/com/homeaway/devtools/jenkins/testing/JenkinsPipelineSpecification.groovy @@ -704,7 +704,7 @@ public abstract class JenkinsPipelineSpecification extends Specification { // undefined, and un-mocked pipeline step. // print a helpful error message. MissingMethodException mme = new MissingMethodException( "(intercepted on instance [${object}] during test [${this}]) ${_name}", delegate.getClass(), _args ) - throw new IllegalStateException( "During a test, the pipeline step [${_name}] was called but there was no mock for it.\n\t1. Is the name correct?\n\t2. Does the pipeline step have a descriptor with that name?\n\t3. Does that step come from a plugin? If so, is that plugin listed as a dependency in your pom.xml?\n\t4. If not, you may need to call explicitlyMockPipelineStep('${_name}') in your test's setup: block.", mme ) + throw new IllegalStateException( "During a test, the pipeline step [${_name}] was called but there was no mock for it.\n\t1. Is the name correct?\n\t2. Does the pipeline step have a descriptor with that name?\n\t3. Does that step come from a plugin? If so, is that plugin listed as a dependency in your pom.xml (or build.gradle)?\n\t4. If not, you may need to call explicitlyMockPipelineStep('${_name}') in your test's setup: block.", mme ) } def originalPropertyMissing = object.metaClass.getMetaMethod("propertyMissing", "string" ) @@ -750,7 +750,7 @@ public abstract class JenkinsPipelineSpecification extends Specification { } MissingPropertyException mpe = new MissingPropertyException( "(intercepted on instance [${object}] during test [${this}]) ${_name}", object.getClass() ) - throw new IllegalStateException( "There is no pipeline variable mock for [${_name}].\n\t1. Is the name correct?\n\t2. Is it a GlobalVariable extension point? If so, does the getName() method return [${_name}]?\n\t3. Is that variable normally defined by Jenkins? If so, you may need to define it by hand in your Spec.\n\t4. Does that variable come from a plugin? If so, is that plugin listed as a dependency in your pom.xml?\n\t5. If not, you may need to call explicitlyMockPipelineVariable(\"${_name}\") during your test setup.", mpe ) + throw new IllegalStateException( "There is no pipeline variable mock for [${_name}].\n\t1. Is the name correct?\n\t2. Is it a GlobalVariable extension point? If so, does the getName() method return [${_name}]?\n\t3. Is that variable normally defined by Jenkins? If so, you may need to define it by hand in your Spec.\n\t4. Does that variable come from a plugin? If so, is that plugin listed as a dependency in your pom.xml (or build.gradle)?\n\t5. If not, you may need to call explicitlyMockPipelineVariable(\"${_name}\") during your test setup.", mpe ) } instrumented_objects.add( object ) @@ -800,7 +800,7 @@ public abstract class JenkinsPipelineSpecification extends Specification { } } - throw new IllegalStateException( "There is no pipeline step mock for [${_pipeline_extension}].\n\t1. Is the name correct?\n\t2. Does the pipeline step have a descriptor with that name?\n\t3. Does that step come from a plugin? If so, is that plugin listed as a dependency in your pom.xml?\n\t4. If not, you may need to call explicitlyMockPipelineStep('${_pipeline_extension}') in your test's setup: block." ) + throw new IllegalStateException( "There is no pipeline step mock for [${_pipeline_extension}].\n\t1. Is the name correct?\n\t2. Does the pipeline step have a descriptor with that name?\n\t3. Does that step come from a plugin? If so, is that plugin listed as a dependency in your pom.xml (or build.gradle)?\n\t4. If not, you may need to call explicitlyMockPipelineStep('${_pipeline_extension}') in your test's setup: block." ) } return mocks.get( _pipeline_extension ) @@ -824,7 +824,7 @@ public abstract class JenkinsPipelineSpecification extends Specification { * You should either *

*
    - *
  1. Add a dependency to your pom.xml that brings in the plugin that provides the necessary pipeline step
  2. + *
  3. Add a dependency to your pom.xml (or build.gradle) that brings in the plugin that provides the necessary pipeline step
  4. *
  5. Refactor your code to not depend on the pipeline step "magically" existing. *
* From a79b234c0d507e723c8d86fb9e364414f4992829 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Mon, 14 Sep 2020 19:49:37 -0400 Subject: [PATCH 19/45] version bump for gradle to 6.6.1 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/helper-script-gradle/gradlew | 2 ++ examples/helper-script-gradle/gradlew.bat | 1 + .../gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/gradlew | 2 ++ examples/shared-library-gradle/gradlew.bat | 1 + .../gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/gradlew | 2 ++ examples/whole-pipeline-gradle/gradlew.bat | 1 + 12 files changed, 12 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 6447 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 F{|nTN-B$nr diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index fd0c5a3..33682bb 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/helper-script-gradle/gradlew b/examples/helper-script-gradle/gradlew index 2fe81a7..fbd7c51 100755 --- a/examples/helper-script-gradle/gradlew +++ b/examples/helper-script-gradle/gradlew @@ -82,6 +82,7 @@ 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 @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/helper-script-gradle/gradlew.bat b/examples/helper-script-gradle/gradlew.bat index 62bd9b9..5093609 100644 --- a/examples/helper-script-gradle/gradlew.bat +++ b/examples/helper-script-gradle/gradlew.bat @@ -84,6 +84,7 @@ set CMD_LINE_ARGS=%* 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% diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 6447 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 F{|nTN-B$nr diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index fd0c5a3..33682bb 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradlew b/examples/shared-library-gradle/gradlew index 2fe81a7..fbd7c51 100755 --- a/examples/shared-library-gradle/gradlew +++ b/examples/shared-library-gradle/gradlew @@ -82,6 +82,7 @@ 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 @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/shared-library-gradle/gradlew.bat b/examples/shared-library-gradle/gradlew.bat index 62bd9b9..5093609 100644 --- a/examples/shared-library-gradle/gradlew.bat +++ b/examples/shared-library-gradle/gradlew.bat @@ -84,6 +84,7 @@ set CMD_LINE_ARGS=%* 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% diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 6447 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 F{|nTN-B$nr diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index fd0c5a3..33682bb 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradlew b/examples/whole-pipeline-gradle/gradlew index 2fe81a7..fbd7c51 100755 --- a/examples/whole-pipeline-gradle/gradlew +++ b/examples/whole-pipeline-gradle/gradlew @@ -82,6 +82,7 @@ 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 @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/whole-pipeline-gradle/gradlew.bat b/examples/whole-pipeline-gradle/gradlew.bat index 62bd9b9..5093609 100644 --- a/examples/whole-pipeline-gradle/gradlew.bat +++ b/examples/whole-pipeline-gradle/gradlew.bat @@ -84,6 +84,7 @@ set CMD_LINE_ARGS=%* 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% From 4698a4e14235e86f00f7329f8e4484063c80e245 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 28 Oct 2020 17:42:59 -0400 Subject: [PATCH 20/45] version bump for gradle to 6.7 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 58910 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/helper-script-gradle/gradlew | 2 +- examples/helper-script-gradle/gradlew.bat | 21 +++--------------- .../gradle/wrapper/gradle-wrapper.jar | Bin 58910 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/gradlew | 2 +- examples/shared-library-gradle/gradlew.bat | 21 +++--------------- .../gradle/wrapper/gradle-wrapper.jar | Bin 58910 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/gradlew | 2 +- examples/whole-pipeline-gradle/gradlew.bat | 21 +++--------------- 12 files changed, 15 insertions(+), 60 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar index 62d4c053550b91381bbd28b1afc82d634bf73a8a..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 6656 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 Yte!%o?r4GTrVtxD61Ym!|5fq-1K$0e!T1w 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 diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 33682bb..14e30f7 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/helper-script-gradle/gradlew b/examples/helper-script-gradle/gradlew index fbd7c51..4f906e0 100755 --- a/examples/helper-script-gradle/gradlew +++ b/examples/helper-script-gradle/gradlew @@ -130,7 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/helper-script-gradle/gradlew.bat b/examples/helper-script-gradle/gradlew.bat index 5093609..107acd3 100644 --- a/examples/helper-script-gradle/gradlew.bat +++ b/examples/helper-script-gradle/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,21 +64,6 @@ 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 @@ -86,7 +71,7 @@ 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% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar index 62d4c053550b91381bbd28b1afc82d634bf73a8a..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 6656 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 Yte!%o?r4GTrVtxD61Ym!|5fq-1K$0e!T1w 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 diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 33682bb..14e30f7 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradlew b/examples/shared-library-gradle/gradlew index fbd7c51..4f906e0 100755 --- a/examples/shared-library-gradle/gradlew +++ b/examples/shared-library-gradle/gradlew @@ -130,7 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/shared-library-gradle/gradlew.bat b/examples/shared-library-gradle/gradlew.bat index 5093609..107acd3 100644 --- a/examples/shared-library-gradle/gradlew.bat +++ b/examples/shared-library-gradle/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,21 +64,6 @@ 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 @@ -86,7 +71,7 @@ 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% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar index 62d4c053550b91381bbd28b1afc82d634bf73a8a..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 6656 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 Yte!%o?r4GTrVtxD61Ym!|5fq-1K$0e!T1w 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 diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 33682bb..14e30f7 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradlew b/examples/whole-pipeline-gradle/gradlew index fbd7c51..4f906e0 100755 --- a/examples/whole-pipeline-gradle/gradlew +++ b/examples/whole-pipeline-gradle/gradlew @@ -130,7 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 diff --git a/examples/whole-pipeline-gradle/gradlew.bat b/examples/whole-pipeline-gradle/gradlew.bat index 5093609..107acd3 100644 --- a/examples/whole-pipeline-gradle/gradlew.bat +++ b/examples/whole-pipeline-gradle/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,21 +64,6 @@ 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 @@ -86,7 +71,7 @@ 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% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From e55288f1ba754df51f6840630c40b73119e22447 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sat, 14 Nov 2020 19:19:39 -0500 Subject: [PATCH 21/45] version bump for dependencies/plugins --- examples/helper-script-gradle/build.gradle | 17 +++++++++------ examples/shared-library-gradle/build.gradle | 24 ++++++++++----------- examples/whole-pipeline-gradle/build.gradle | 19 +++++++++------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 23268a3..91b7850 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -34,21 +34,24 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.12' + implementation 'org.codehaus.groovy:groovy-all:2.5.13' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { - exclude group: 'com.ibm.icu', module: 'icu4j' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + // exclude following to avoid errors from FastClasspathScanner + // Unknown constant pool tag 60 in classfile + // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class + exclude group: 'jaxen', module: 'jaxen' } - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.77' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.85' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index acaab04..09a5477 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -39,30 +39,30 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.12' + implementation 'org.codehaus.groovy:groovy-all:2.5.13' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { - exclude group: 'com.ibm.icu', module: 'icu4j' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + // exclude following to avoid errors from FastClasspathScanner + // Unknown constant pool tag 60 in classfile + // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class + exclude group: 'jaxen', module: 'jaxen' } // provides stage() step - testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.16' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.10' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.17' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.3' + testImplementation 'org.jenkins-ci.plugins:slack:2.43' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' - - // plugin dependencies - testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 733b5ec..b3db022 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -23,25 +23,28 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.12' + implementation 'org.codehaus.groovy:groovy-all:2.5.13' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.190.2', { - exclude group: 'com.ibm.icu', module: 'icu4j' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + // exclude following to avoid errors from FastClasspathScanner + // Unknown constant pool tag 60 in classfile + // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class + exclude group: 'jaxen', module: 'jaxen' } // provides stage() step - testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.3' + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.35' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.10' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.17' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.3' + testImplementation 'org.jenkins-ci.plugins:slack:2.43' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.16' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From 66495df77fbea6145741254f3daacb2377b4065d Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 25 Feb 2021 21:19:50 -0500 Subject: [PATCH 22/45] version bump for gradle to 6.8.3 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 14e30f7..8cf6eb5 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 14e30f7..8cf6eb5 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 14e30f7..8cf6eb5 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 9c1f13a158ed7798a0ec40f73f9c0a3bd7e1160c Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 25 Feb 2021 21:30:18 -0500 Subject: [PATCH 23/45] version bump for dependencies/plugins --- examples/helper-script-gradle/build.gradle | 12 ++++++------ examples/shared-library-gradle/build.gradle | 12 ++++++------ examples/whole-pipeline-gradle/build.gradle | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 91b7850..adf4758 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.39.0-rc.7' + id 'org.jenkins-ci.jpi' version '0.39.0' } group 'com.example' @@ -34,24 +34,24 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.13' + implementation 'org.codehaus.groovy:groovy-all:2.5.14' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { // exclude following to avoid errors from FastClasspathScanner // Unknown constant pool tag 60 in classfile // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class exclude group: 'jaxen', module: 'jaxen' } - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.85' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.89' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 09a5477..4d12600 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -39,13 +39,13 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.13' + implementation 'org.codehaus.groovy:groovy-all:2.5.14' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { // exclude following to avoid errors from FastClasspathScanner // Unknown constant pool tag 60 in classfile // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class @@ -56,13 +56,13 @@ dependencies { // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.17' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.43' + testImplementation 'org.jenkins-ci.plugins:slack:2.45' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index b3db022..8c40b7d 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -23,13 +23,13 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.13' + implementation 'org.codehaus.groovy:groovy-all:2.5.14' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.266', { + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { // exclude following to avoid errors from FastClasspathScanner // Unknown constant pool tag 60 in classfile // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class @@ -38,13 +38,13 @@ dependencies { // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.36' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.17' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.43' + testImplementation 'org.jenkins-ci.plugins:slack:2.45' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.20' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From 29a194b84066929da8a10d28cb3ca24d1051c244 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 25 Feb 2021 21:43:43 -0500 Subject: [PATCH 24/45] version bump for jpi plugin to 0.42.0 --- examples/helper-script-gradle/build.gradle | 16 +++++++++------- examples/shared-library-gradle/build.gradle | 16 +++++++++------- examples/whole-pipeline-gradle/build.gradle | 16 +++++++++------- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index adf4758..5392468 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -2,12 +2,19 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.39.0' + id 'org.jenkins-ci.jpi' version '0.42.0' } group 'com.example' version 'O.1-SNAPSHOT' +jenkinsPlugin { + // verions of Jenkins core jpi plugin depends on + jenkinsVersion = '2.281' + // optional list of package prefixes to mask + maskClasses = 'jaxen' +} + allprojects { sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -40,12 +47,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { - // exclude following to avoid errors from FastClasspathScanner - // Unknown constant pool tag 60 in classfile - // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class - exclude group: 'jaxen', module: 'jaxen' - } + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.89' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 4d12600..232bd6e 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.39.0' + id 'org.jenkins-ci.jpi' version '0.42.0' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -10,6 +10,13 @@ def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' group 'com.example' version 'O.1-SNAPSHOT' +jenkinsPlugin { + // verions of Jenkins core jpi plugin depends on + jenkinsVersion = '2.281' + // optional list of package prefixes to mask + maskClasses = 'jaxen' +} + allprojects { sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -45,12 +52,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { - // exclude following to avoid errors from FastClasspathScanner - // Unknown constant pool tag 60 in classfile - // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class - exclude group: 'jaxen', module: 'jaxen' - } + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 8c40b7d..5919f1f 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.39.0' + id 'org.jenkins-ci.jpi' version '0.42.0' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -10,6 +10,13 @@ def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' group 'com.example' version 'O.1-SNAPSHOT' +jenkinsPlugin { + // verions of Jenkins core jpi plugin depends on + jenkinsVersion = '2.281' + // optional list of package prefixes to mask + maskClasses = 'jaxen' +} + allprojects { sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -29,12 +36,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281', { - // exclude following to avoid errors from FastClasspathScanner - // Unknown constant pool tag 60 in classfile - // com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class - exclude group: 'jaxen', module: 'jaxen' - } + testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step From 1147b6f9c2e90c7c45bb245718da5b4df053c643 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 2 Mar 2021 15:21:03 -0500 Subject: [PATCH 25/45] cosmetic - typo --- examples/helper-script-gradle/test/ExecTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/helper-script-gradle/test/ExecTest.groovy b/examples/helper-script-gradle/test/ExecTest.groovy index 18693c0..c1e266c 100644 --- a/examples/helper-script-gradle/test/ExecTest.groovy +++ b/examples/helper-script-gradle/test/ExecTest.groovy @@ -1,6 +1,6 @@ import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification -// Ideally should be names ExecSpec.groovy +// Ideally should be named ExecSpec.groovy // if I name it ExecSpec, I get the following stack trace // //java.lang.NoClassDefFoundError: Exec (wrong name: exec) From 286b43a674696cfdaf447a885d0cb9969e6e56ba Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Mon, 29 Mar 2021 13:42:10 -0400 Subject: [PATCH 26/45] version bump for jpi/plugins - version bump for jpi plugin to 0.43.0-rc.5 - version bump for workflow-cps plugin to 2.90 - version bump for workflow-durable-task-step plugin to 2.38 - version bump for ssh-agent plugin to 1.22 - version bump for slack plugin to 2.46 --- examples/helper-script-gradle/build.gradle | 8 ++++---- examples/shared-library-gradle/build.gradle | 8 ++++---- examples/whole-pipeline-gradle/build.gradle | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 5392468..ffe8280 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.42.0' + id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' } group 'com.example' @@ -48,12 +48,12 @@ dependencies { testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.89' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.90' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 232bd6e..d0c6a22 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.42.0' + id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -58,13 +58,13 @@ dependencies { // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' // provides libraryResource() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.45' + testImplementation 'org.jenkins-ci.plugins:slack:2.46' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 5919f1f..12a6394 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.42.0' + id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -40,13 +40,13 @@ dependencies { // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.37' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' // provides GlobalVariable testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.45' + testImplementation 'org.jenkins-ci.plugins:slack:2.46' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.21' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From d3ffe37e1cef1cd85932bf12bfa72e1878953260 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 20 Apr 2021 13:09:19 -0400 Subject: [PATCH 27/45] version bumps - version bump for gradle to 7.0 - version bump for jpi plugin to 0.43.0 - version bump for jenkins to 2.289 - remove jcenter() as it is deprecated --- examples/helper-script-gradle/build.gradle | 7 +++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/build.gradle | 7 +++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/build.gradle | 7 +++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 6 files changed, 12 insertions(+), 15 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index ffe8280..1fae0ab 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' + id 'org.jenkins-ci.jpi' version '0.43.0' } group 'com.example' @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.281' + jenkinsVersion = '2.289' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -36,7 +36,6 @@ sourceSets { repositories { mavenCentral() mavenLocal() - jcenter() maven { url 'https://repo.jenkins-ci.org/releases/' } } @@ -47,7 +46,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.90' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 8cf6eb5..3c4101c 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index d0c6a22..c1c2a3d 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' + id 'org.jenkins-ci.jpi' version '0.43.0' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.281' + jenkinsVersion = '2.289' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -41,7 +41,6 @@ sourceSets { repositories { mavenCentral() mavenLocal() - jcenter() maven { url 'https://repo.jenkins-ci.org/releases/' } } @@ -52,7 +51,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 8cf6eb5..3c4101c 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 12a6394..a3b902f 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -2,7 +2,7 @@ plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply Gradle JPI plugin to simplify dependency management - id 'org.jenkins-ci.jpi' version '0.43.0-rc.5' + id 'org.jenkins-ci.jpi' version '0.43.0' } def testLogLevel = project.findProperty('testLogLevel') ?: 'ERROR' @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.281' + jenkinsVersion = '2.289' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -25,7 +25,6 @@ allprojects { repositories { mavenCentral() mavenLocal() - jcenter() maven { url 'https://repo.jenkins-ci.org/releases/' } } @@ -36,7 +35,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.281' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 8cf6eb5..3c4101c 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From f81e521fe05cc3d8d32055cec288c23026a9c2ab Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 11 May 2021 17:44:54 -0400 Subject: [PATCH 28/45] version bumps - version bump for jenkins-spock to 2.1.5 - version bump for jenkins-core to 2.291 - version bump for workflow-cps-global-lib to 2.19 --- examples/helper-script-gradle/build.gradle | 6 +++--- examples/shared-library-gradle/build.gradle | 8 ++++---- examples/whole-pipeline-gradle/build.gradle | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 1fae0ab..0af2c56 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.289' + jenkinsVersion = '2.291' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -42,11 +42,11 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.14' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.90' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index c1c2a3d..2791f45 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.289' + jenkinsVersion = '2.291' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -47,11 +47,11 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.14' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step @@ -59,7 +59,7 @@ dependencies { // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.19' // provides slackSend() step testImplementation 'org.jenkins-ci.plugins:slack:2.46' // provides sshagent() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index a3b902f..2f2d18a 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.289' + jenkinsVersion = '2.291' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -31,17 +31,17 @@ repositories { dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.14' - testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.4' + testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.289' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.18' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.19' // provides slackSend() step testImplementation 'org.jenkins-ci.plugins:slack:2.46' // provides sshagent() step From 7e9eb35debf6bc7ca35797ab554d3525f1f0b832 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Wed, 12 May 2021 14:40:07 -0400 Subject: [PATCH 29/45] version bump for gradle to 7.0.1 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 3c4101c..d435ce2 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 3c4101c..d435ce2 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 3c4101c..d435ce2 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 63516f8a3133f8e3d49675a955bd7c6a31d2519c Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 18 May 2021 18:54:42 -0400 Subject: [PATCH 30/45] version bump for gradle to 7.0.2 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index d435ce2..29e4134 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index d435ce2..29e4134 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index d435ce2..29e4134 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 91326c4269d9d49504ac7ab0b8b5cb3efd513d91 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 17 Aug 2021 13:39:38 -0400 Subject: [PATCH 31/45] version bump for gradle to 7.1.1 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 29e4134..af7be50 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 29e4134..af7be50 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 29e4134..af7be50 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 693e7f6497e66dfeadc593489581017240ca1568 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 17 Aug 2021 13:40:02 -0400 Subject: [PATCH 32/45] version bumps for jenkins-core and plugins --- examples/helper-script-gradle/build.gradle | 12 ++++++------ examples/shared-library-gradle/build.gradle | 14 +++++++------- examples/whole-pipeline-gradle/build.gradle | 12 ++++++------ 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 0af2c56..b732f16 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.291' + jenkinsVersion = '2.307' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -46,13 +46,13 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.90' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.93' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 2791f45..6158668 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.291' + jenkinsVersion = '2.307' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -51,19 +51,19 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.23' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.19' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.46' + testImplementation 'org.jenkins-ci.plugins:slack:2.48' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 2f2d18a..0b78ceb 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.291' + jenkinsVersion = '2.307' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -35,17 +35,17 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.3' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.291' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.38' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.19' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.46' + testImplementation 'org.jenkins-ci.plugins:slack:2.48' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.22' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From 64a4a1f10b245715e96b0dd4a631aab4d140f0ac Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 2 Sep 2021 20:54:42 -0400 Subject: [PATCH 33/45] version bump for gradle to 7.2 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/helper-script-gradle/gradlew | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/gradlew | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/gradlew | 2 +- 9 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18435 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 B8dv}T delta 17845 zcmV)CK*GO}(F4QI1F(Jx4W$DjNjn4p0N4ir06~)x5+0MO2`GQvQyWzj|J`gh3(E#l zNGO!HfVMRRN~%`0q^)g%XlN*vP!O#;m*h5VyX@j-1N|HN;8S1vqEAj=eCdn`)tUB9 zXZjcT^`bL6qvL}gvXj%9vrOD+x!Gc_0{$Zg+6lTXG$bmoEBV z*%y^c-mV0~Rjzv%e6eVI)yl>h;TMG)Ft8lqpR`>&IL&`>KDi5l$AavcVh9g;CF0tY zw_S0eIzKD?Nj~e4raA8wxiiImTRzv6;b6|LFmw)!E4=CiJ4I%&axSey4zE-MIh@*! z*P;K2Mx{xVYPLeagKA}Hj=N=1VrWU`ukuBnc14iBG?B}Uj>?=2UMk4|42=()8KOnc zrJzAxxaEIfjw(CKV6F$35u=1qyf(%cY8fXaS9iS?yetY{mQ#Xyat*7sSoM9fJlZqq zyasQ3>D>6p^`ck^Y|kYYZB*G})uAbQ#7)Jeb~glGz@2rPu}zBWDzo5K$tP<|meKV% z{Swf^eq6NBioF)v&~9NLIxHMTKe6gJ@QQ^A6fA!n#u1C&n`aG7TDXKM1Jly-DwTB` z+6?=Y)}hj;C#r5>&x;MCM4U13nuXVK*}@yRY~W3X%>U>*CB2C^K6_OZsXD!nG2RSX zQg*0)$G3%Es$otA@p_1N!hIPT(iSE=8OPZG+t)oFyD~{nevj0gZen$p>U<7}uRE`t5Mk1f4M0K*5 zbn@3IG5I2mk;8K>*RZ zPV6iL006)S001s%0eYj)9hu1 z9o)iQT9(v*sAuZ|ot){RrZ0Qw4{E0A+!Yx_M~#Pj&OPUM&i$RU=Uxu}e*6Sr2ror= z&?lmvFCO$)BY+^+21E>ENWe`I0{02H<-lz&?})gIVFyMWxX0B|0b?S6?qghp3lDgz z2?0|ALJU=7s-~Lb3>9AA5`#UYCl!Xeh^i@bxs5f&SdiD!WN}CIgq&WI4VCW;M!UJL zX2};d^sVj5oVl)OrkapV-C&SrG)*x=X*ru!2s04TjZ`pY$jP)4+%)7&MlpiZ`lgoF zo_p>^4qGz^(Y*uB10dY2kcIbt=$FIdYNqk;~47wf@)6|nJp z1cocL3zDR9N2Pxkw)dpi&_rvMW&Dh0@T*_}(1JFSc0S~Ph2Sr=vy)u*=TY$i_IHSo zR+&dtWFNxHE*!miRJ%o5@~GK^G~4$LzEYR-(B-b(L*3jyTq}M3d0g6sdx!X3-m&O% zK5g`P179KHJKXpIAAX`A2MFUA;`nXx^b?mboVbQgigIHTU8FI>`q53AjWaD&aowtj z{XyIX>c)*nLO~-WZG~>I)4S1d2q@&?nwL)CVSWqWi&m1&#K1!gt`g%O4s$u^->Dwq ziKc&0O9KQ7000OG0000%03-m(e&Y`S09YWC4iYDSty&3q8^?8ij|8zxaCt!zCFq1@ z9TX4Hl68`nY>}cQNW4Ullqp$~SHO~l1!CdFLKK}ij_t^a?I?C^CvlvnZkwiVn>dl2 z2$V(JN{`5`-8ShF_ek6HNRPBlPuIPYu>TAeAV5O2)35r3*_k(Q-h1+h5pb(Zu%oJ__pBsW0n5ILw`!&QR&YV`g0Fe z(qDM!FX_7;`U3rxX#QHT{f%h;)Eursw=*#qvV)~y%^Uo^% zi-%sMe^uz;#Pe;@{JUu05zT*i=u7mU9{MkT`ft(vPdQZoK&2mg=tnf8FsaNQ+QcPg zB>vP8Rd6Z0JoH5_Q`zldg;hx4azQCq*rRZThqlqTRMzn1O3_rQTrHk8LQ<{5UYN~` zM6*~lOGHyAnx&#yCK{i@%N1Us@=6cw=UQxpSE;<(LnnES%6^q^QhBYQ-VCSmIu8wh z@_LmwcFDfAhIn>`%h7L{)iGBzu`Md4dj-m3C8mA9+BL*<>q z#$7^ttIBOE-=^|zmG`K8yUKT{yjLu2SGYsreN0*~9yhFxn4U};Nv1XXj1fH*v-g=3 z@tCPc`YdzQGLp%zXwo*o$m9j-+~nSWls#s|?PyrHO%SUGdk**X9_=|b)Y%^j_V$3S z>mL2A-V)Q}qb(uZipEFVm?}HWc+%G6_K+S+87g-&RkRQ8-{0APDil115eG|&>WQhU zufO*|e`hFks^cJJmx_qNx{ltSp3aT|XgD5-VxGGXb7gkiOG$w^qMVBDjR8%!Sbh72niHRDV* ziFy8LE+*$j?t^6aZP9qt-ow;hzkmhvy*Hn-X^6?yVMbtNbyqZQ^rXg58`gk+I%Wv} zn_)dRq+3xjc8D%}EQ%nnTF7L7m}o9&*^jf`_qvUhVKY7w9Zgxr-0YHWFRd3$l_6UX zpXt^U&TiC*qZWx#pOG6k?3Tg)pra*fw(O6_45>lUBN1U5Qmc>^DHt)5b~Ntjsw!NI z1n4{$HWFeIi)*qvgK^ui;(81VQc1(wJ8C#tjR>Dkjf{xYC^_B^#qrdCc)uZxtgua6 zk98UGQF|;;k`c+0_z)tQ&9DwLB~&12@D1!*mTz_!3Mp=cg;B7Oq4cKN>5v&dW7q@H zal=g6Ipe`siZN4NZiBrkJCU*x216gmbV(FymgHuG@%%|8sgD?gR&0*{y4n=pukZnd z4=Nl~_>jVfbIehu)pG)WvuUpLR}~OKlW|)=S738Wh^a&L+Vx~KJU25o6%G7+Cy5mB zgmYsgkBC|@K4Jm_PwPoz`_|5QSk}^p`XV`649#jr4Lh^Q>Ne~#6Cqxn$7dNMF=%Va z%z9Ef6QmfoXAlQ3)PF8#3Y% zadcE<1`fd1&Q9fMZZnyI;&L;YPuy#TQ8b>AnXr*SGY&xUb>2678A+Y z8K%HOdgq_4LRFu_M>Ou|kj4W%sPPaV)#zDzN~25klE!!PFz_>5wCxglj7WZI13U5| zEq_YLKPH;v8sEhyG`dV_jozR);a6dBvkauhC;1dk%mr+J*Z6MMH9jqxFk@)&h{mHl zrf^i_d-#mTF=6-T8Rk?(1+rPGgl$9=j%#dkf@x6>czSc`jk7$f!9SrV{do%m!t8{? z_iAi$Qe&GDR#Nz^#uJ>-_?(E$ns)(3)X3cYY)?gFvU+N>nnCoBSmwB2<4L|xH19+4 z`$u#*Gt%mRw=*&|em}h_Y`Pzno?k^8e*hEwfM`A_yz-#vJtUfkGb=s>-!6cHfR$Mz z`*A8jVcz7T{n8M>ZTb_sl{EZ9Ctau4naX7TX?&g^VLE?wZ+}m)=YW4ODRy*lV4%-0 zG1XrPs($mVVfpnqoSihnIFkLdxG9um&n-U|`47l{bnr(|8dmglO7H~yeK7-wDwZXq zaHT($Qy2=MMuj@lir(iyxI1HnMlaJwpX86je}e=2n|Esb6hB?SmtDH3 z2qH6o`33b{;M{mDa5@@~1or8+Zcio*97pi1Jkx6v5MXCaYsb~Ynq)eWpKnF{n)FXZ z?Xd;o7ESu&rtMFr5(yJ(B7V>&0gnDdL*4MZH&eO+r*t!TR98ssbMRaw`7;`SLI8mT z=)hSAt~F=mz;JbDI6g~J%w!;QI(X14AnOu;uve^4wyaP3>(?jSLp+LQ7uU(iib%IyB(d&g@+hg;78M>h7yAeq$ALRoHGkKXA+E z$Sk-hd$Fs2nL4w9p@O*Y$c;U)W#d~)&8Js;i^Dp^* z0*7*zEGj~VehF4sRqSGny*K_CxeF=T^8;^lb}HF125G{kMRV?+hYktZWfNA^Mp7y8 zK~Q?ycf%rr+wgLaHQ|_<6z^eTG7izr@99SG9Q{$PCjJabSz`6L_QJJe7{LzTc$P&pwTy<&3RRUlSHmK;?}=QAhQaDW3#VWcNAH3 zeBPRTDf3?3mfdI$&WOg(nr9Gyzg`&u^o!f2rKJ57D_>p z6|?Vg?h(@(*X=o071{g^le>*>qSbVam`o}sAK8>b|11%e&;%`~b2OP7--q%0^2YDS z`2M`{2QYr1VC)sIW9WOu8<~7Q>^$*Og{KF+kI;wFegvaIDkB%3*%PWtWKSq7l`1YcDxQQ2@nv{J!xWV?G+w6C zhUUxUYVf%(Q(40_xrZB@rbxL=Dj3RV^{*yHd>4n-TOoHVRnazDOxxkS9kiZyN}IN3 zB^5N=* zRSTO+rA<{*P8-$GZdyUNOB=MzddG$*@q>mM;pUIiQ_z)hbE#Ze-IS)9G}Rt$5PSB{ zZZ;#h9nS7Rf1ecW&n(Gpu9}{vXQZ-f`UHIvD?cTbF`YvH*{rgE(zE22pLAQfhg-`U zuh612EpByB(~{w7svCylrBk%5$LCIyuhrGi=yOfca`=8ltKxHcSNfDRt@62QH^R_0 z&eQL6rRk>Dvf6rjMQv5ZXzg}S`HqV69hJT^pPHtdhqsrPJWs|IT9>BvpQa@*(FX6v zG}TYjreQCnH(slMt5{NgUf)qsS1F&Bb(M>$X}tWI&yt2I&-rJbqveuj?5J$`Dyfa2 z)m6Mq0XH@K)Y2v8X=-_4=4niodT&Y7W?$KLQhjA<+R}WTdYjX9>kD+SRS^oOY1{A= zZTId-(@wF^UEWso($wZtrs%e7t<}YaC_;#@`r0LUzKY&|qPJz*y~RHG`E6bypP5AX zN!p0^AUu8uDR>xM-ALFzBxXM~Q3z=}fHWCIG>0&I6x2Iu7&U)49j7qeMI&?qb$=4I zdMmhAJrO%@0f%YW! z^gLByEGSk+R0v4*d4w*N$Ju6z#j%HBI}6y$2en=-@S3=6+yZX94m&1j@s- z7T6|#0$c~dYq9IkA!P)AGkp~S$zYJ1SXZ#RM0|E~Q0PSm?DsT4N3f^)b#h(u9%_V5 zX*&EIX|gD~P!vtx?ra71pl%v)F!W~X2hcE!h8cu@6uKURdmo1-7icN4)ej4H1N~-C zjXgOK+mi#aJv4;`DZ%QUbVVZclkx;9`2kgbAhL^d{@etnm+5N8pB#fyH)bxtZGCAv z(%t0kPgBS{Q2HtjrfI0B$$M0c?{r~2T=zeXo7V&&aprCzww=i*}Atu7g^(*ivauMz~kkB%Vt{Wydlz%%2c26%>0PAbZO zVHx%tK(uzDl#ZZK`cW8TD2)eD77wB@gum{B2bO_jnqGl~01EF_^jx4Uqu1yfA~*&g zXJ`-N?D-n~5_QNF_5+Un-4&l$1b zVlHFqtluoN85b^C{A==lp#hS9J(npJ#6P4aY41r) zzCmv~c77X5L}H%sj>5t&@0heUDy;S1gSOS>JtH1v-k5l}z2h~i3^4NF6&iMb;ZYVE zMw*0%-9GdbpF1?HHim|4+)Zed=Fk<2Uz~GKc^P(Ig@x0&XuX0<-K(gA*KkN&lY2Xu zG054Q8wbK~$jE32#Ba*Id2vkqmfV{U$Nx9vJ;jeI`X+j1kh7hB8$CBTe@ANmT^tI8 z%U>zrTKuECin-M|B*gy(SPd`(_xvxjUL?s137KOyH>U{z01cBcFFt=Fp%d+BK4U;9 zQG_W5i)JASNpK)Q0wQpL<+Ml#cei41kCHe&P9?>p+KJN>I~`I^vK1h`IKB7k^xi`f z$H_mtr_+@M>C5+_xt%v}{#WO{86J83;VS@Ei3JLtp<*+hsY1oGzo z0?$?OJO$79;{|@aP!fO6t9TJ!?8i&|c&UPWRMbkwT3nEeFH`Yyyh6b%Rm^nBuTt@9 z+$&-4lf!G|@LCo3<8=yN@5dYbc%uq|Hz|0tiiLQKiUoM9g14zyECKGv0}3AWv2WJ zUAXGUhvkNk`0-H%ACsRSmy4fJ@kxBD3ZKSj6g(n1KPw?g{v19phcBr3BEF>J%lL|d zud3LNuL;cR*xS+;X+N^Br+x2{&hDMhb-$6_fKU(Pt0FQUXgNrZvzsVCnsFqv?#L z4-FYsQ-?D>;LdjHu_TT1CHN~aGkmDjWJkJg4G^!+V_APd%_48tErDv6BW5;ji^UDD zRu5Sw7wwplk`w{OGEKWJM&61c-AWn!SeUP8G#+beH4_Ov*)NUV?eGw&GHNDI6G(1Y zTfCv?T*@{QyK|!Q09wbk5koPD>=@(cA<~i4pSO?f(^5sSbdhUc+K$DW#_7^d7i%At z?KBg#vm$?P4h%?T=XymU;w*AsO_tJr)`+HUll+Uk_zx6vNw>G3jT){w3ck+Z=>7f0 zZVkM*!k^Z_E@_pZK6uH#|vzoL{-j1VFlUHP&5~q?j=UvJJNQG ztQdiCF$8_EaN_Pu8+afN6n8?m5UeR_p_6Log$5V(n9^W)-_vS~Ws`RJhQNPb1$C?| zd9D_ePe*`aI9AZ~Ltbg)DZ;JUo@-tu*O7CJ=T)ZI1&tn%#cisS85EaSvpS~c#CN9B z#Bx$vw|E@gm{;cJOuDi3F1#fxWZ9+5JCqVRCz5o`EDW890NUfNCuBn)3!&vFQE{E$L`Cf7FMSSX%ppLH+Z}#=p zSow$)$z3IL7frW#M>Z4|^9T!=Z8}B0h*MrWXXiVschEA=$a|yX9T~o!=%C?T+l^Cc zJx&MB$me(a*@lLLWZ=>PhKs!}#!ICa0! zq%jNgnF$>zrBZ3z%)Y*yOqHbKzEe_P=@<5$u^!~9G2OAzi#}oP&UL9JljG!zf{JIK z++G*8j)K=$#57N)hj_gSA8golO7xZP|KM?elUq)qLS)i(?&lk{oGMJh{^*FgklBY@Xfl<_Q zXP~(}ST6V01$~VfOmD6j!Hi}lsE}GQikW1YmBH)`f_+)KI!t#~B7=V;{F*`umxy#2Wt8(EbQ~ks9wZS(KV5#5Tn3Ia90r{}fI%pfbqBAG zhZ)E7)ZzqA672%@izC5sBpo>dCcpXi$VNFztSQnmI&u`@zQ#bqFd9d&ls?RomgbSh z9a2rjfNiKl2bR!$Y1B*?3Ko@s^L5lQN|i6ZtiZL|w5oq%{Fb@@E*2%%j=bcma{K~9 z*g1%nEZ;0g;S84ZZ$+Rfurh;Nhq0;{t~(EIRt}D@(Jb7fbe+_@H=t&)I)gPCtj*xI z9S>k?WEAWBmJZ|gs}#{3*pR`-`!HJ)1Dkx8vAM6Tv1bHZhH=MLI;iC#Y!$c|$*R>h zjP{ETat(izXB{@tTOAC4nWNhh1_%7AVaf!kVI5D=Jf5I1!?}stbx_Yv23hLf$iUTb z-)WrTtd2X+;vBW_q*Z6}B!10fs=2FA=3gy*dljsE43!G*3Uw(Is>(-a*5E!T4}b-Y zfvOC)-HYjNfcpi`=kG%(X3XcP?;p&=pz+F^6LKqRom~pA}O* zitR+Np{QZ(D2~p_Jh-k|dL!LPmexLM?tEqI^qRDq9Mg z5XBftj3z}dFir4oScbB&{m5>s{v&U=&_trq#7i&yQN}Z~OIu0}G)>RU*`4<}@7bB% zKYxGx0#L#u199YKSWZwV$nZd>D>{mDTs4qDNyi$4QT6z~D_%Bgf?>3L#NTtvX;?2D zS3IT*2i$Snp4fjDzR#<)A``4|dA(}wv^=L?rB!;kiotwU_gma`w+@AUtkSyhwp{M} z!e`jbUR3AG4XvnBVcyIZht6Vi~?pCC!$XF2 z*V~)DBVm8H7$*OZQJYl3482hadhsI2NCz~_NINtpC?|KI6H3`SG@1d%PsDdw{u}hq zN;OU~F7L1jT&KAitilb&Fl3X12zfSuFm;X)xQWOHL&7d)Q5wgn{78QJ6k5J;is+XP zCPO8_rlGMJB-kuQ*_=Yo1TswG4xnZd&eTjc8=-$6J^8TAa~kEnRQ@Zp-_W&B(4r@F zA==}0vBzsF1mB~743XqBmL9=0RSkGn$cvHf*hyc{<2{@hW+jKjbC|y%CNupHY_NC% zivz^btBLP-cDyV8j>u)=loBs>HoI5ME)xg)oK-Q0wAy|8WD$fm>K{-`0|W{H00;;G z000j`0OWQ8aHA9e04^;603eeQIvtaXMG=2tcr1y8Fl-J;AS+=<0%DU8Bp3oEEDhA^ zOY)M8%o5+cF$rC?trfMcty*f)R;^v=f~}||Xe!#;T3eTDZELN&-50xk+J1heP5AQ>h5O#S_uO;O@;~REd*_G$x$hVeE#bchX)otXQy|S5(oB)2a2%Sc(iDHm z=d>V|a!BLp9^#)o7^EQ2kg=K4%nI^sK2w@-kmvB+ARXYdq?xC2age6)e4$^UaY=wn zgLD^{X0A+{ySY+&7RpldwpC6=E zSPq?y(rl8ZN%(A*sapd4PU+dIakIwT0=zxIJEUW0kZSo|(zFEWdETY*ZjIk9uNMUA ze11=mHu8lUUlgRx!hItf0dAF#HfdIB+#aOuY--#QN9Ry zbx|XkG?PrBb@l6Owl{9Oa9w{x^R}%GwcEEfY;L-6OU8|9RXvu`-ECS`jcO1x1MP{P zcr;Bw##*Dod9K@pEx9z9G~MiNi>8v1OU-}vk*HbI)@CM? zn~b=jWUF%HP=CS+VCP>GiAU_UOz$aq3%%Z2laq^Gx`WAEmuNScCN)OlW>YHGYFgV2 z42lO5ZANs5VMXLS-RZTvBJkWy*OeV#L;7HwWg51*E|RpFR=H}h(|N+79g)tIW!RBK ze08bg^hlygY$C2`%N>7bDm`UZ(5M~DTanh3d~dg+OcNdUanr8azO?})g}EfnUB;5- zE1FX=ru?X=zAk4_6@__o1fE+ml1r&u^f1Kb24Jf-)zKla%-dbd>UZ1 zrj3!RR!Jg`ZnllKJ)4Yfg)@z>(fFepeOcp=F-^VHv?3jSxfa}-NB~*qkJ5Uq(yn+( z<8)qbZh{C!xnO@-XC~XMNVnr-Z+paowv!$H7>`ypMwA(X4(knx7z{UcWWe-wXM!d? zYT}xaVy|7T@yCbNOoy)$D=E%hUNTm(lPZqL)?$v+-~^-1P8m@Jm2t^L%4#!JK#Vtg zyUjM+Y*!$);1<)0MUqL00L0*EZcsE&usAK-?|{l|-)b7|PBKl}?TM6~#j9F+eZq25_L&oSl}DOMv^-tacpDI)l*Ws3u+~jO@;t(T)P=HCEZ#s_5q=m zOsVY!QsOJn)&+Ge6Tm)Ww_Bd@0PY(78ZJ)7_eP-cnXYk`>j9q`x2?Xc6O@55wF+6R zUPdIX!2{VGA;FSivN@+;GNZ7H2(pTDnAOKqF*ARg+C54vZ@Ve`i?%nDDvQRh?m&`1 zq46gH)wV=;UrwfCT3F(m!Q5qYpa!#f6qr0wF=5b9rk%HF(ITc!*R3wIFaCcftGwPt z(kzx{$*>g5L<;u}HzS4XD%ml zmdStbJcY@pn`!fUmkzJ8N>*8Y+DOO^r}1f4ix-`?x|khoRvF%jiA)8)P{?$8j2_qN zcl3Lm9-s$xdYN9)>3j6BPFK)Jbovl|Sf_p((CHe!4hx@F)hd&&*Xb&{TBj>%pT;-n z{3+hA^QZYnjXxtF2XwxPZ`S#J8h>5qLwtwM-{5abbEnRS z`9_`Zq8FJiI#0syE_V_3M&trw$P=ezkHosV$8&I5c0(*-9KBE5DJOC-Xv zw}1bq~AD0_Xerm`%ryiG9_$S z5G|btfiAUNdV09SO2l9v+e#(H6HYOdQs=^ z@xwZQU)~;p1L*~ciC}9ao{nQ-@B>rpUzKBxv=cUusOP5Trs3QnvHxGh9e>s7AM{V1|HfYe z3QwH;nHHR49fYzuGc3W3l5xrDAI392SFXx>lWE3V9Ds9il3PyZaN5>oC3>9W-^7vC z3~KZ-@iD?tIkhg+6t{m;RGk2%>@I0&kf)o$+-^ls0(YABNbM(=l#ad@nKp_j=b~Xs ziR;xu_+)lxy6|+af!@}gO2H_x)p;nZ-tYxW5Omq=l`GzMp*GTLr>vZN1?e}^C$t*Z zvzEdIc2|HA2RFN_4#EkzMqKnbbw!?!?%B@M0^^5Z;K?x-%lg?Z>}wMV8zEqHZ$cr~Y#Wv>9+)KMUZatUqbRU8 z8t9qrek(H^C0Tuzq|cP2$WL7tzj+Dj5y^2SF1D154CnsB$xbz`$wV||n-cG%rsT$p z+3RHdadK(3-noj(2L#8c5lODg)V8pv(GEnNb@F>dEHQr>!qge@L>#qg)RAUtiOYqF ziiV_ETExwD)bQ<))?-9$)E(FiRBYyC@}issHS!j9n)~I1tarxnQ2LfjdIJ)*jp{0E z&1oTd%!Qbw$W58s!6ms>F z=p0!~_Mv~8jyaicOS*t(ntw`5uFi0Bc4*mH8kSkk$>!f0;FM zX_t14I55!ZVsg0O$D2iuEDb7(J>5|NKW^Z~kzm@dax z9(|As$U7^}LF%#`6r&UPB*6`!Rf74h~*C=ami6xUxYCwiJxdr$+`z zKSC4A%8!s%R&j*2si(OEc*fy!q)?%=TjDZJ2}O zxT6o>jlKXz_7_Y$N})}IG`*#KfMzs#R(SI#)3*ZEzCv%_tu(VTZ5J| zw2$5kK)xTa>xGFgS0?X(NecjzFVKG%VVn?neu=&eQ+DJ1APlY1E?Q1s!Kk=yf7Uho z>8mg_!U{cKqpvI3ucSkC2V`!d^XMDk;>GG~>6>&X_z75-kv0UjevS5ORHV^e8r{tr z-9z*y&0eq3k-&c_AKw~<`8dtjsP0XgFv6AnG?0eo5P14T{xW#b*Hn2gEnt5-KvN1z zy!TUSi>IRbD3u+h@;fn7fy{F&hAKx7dG4i!c?5_GnvYV|_d&F16p;)pzEjB{zL-zr z(0&AZUkQ!(A>ghC5U-)t7(EXb-3)tNgb=z`>8m8n+N?vtl-1i&*ftMbE~0zsKG^I$ zSbh+rUiucsb!Ax@yB}j>yGeiKIZk1Xj!i#K^I*LZW_bWQIA-}FmJ~^}>p=K$bX9F{}z{s^KWc~OK(zl_X57aB^J9v}yQ5h#BE$+C)WOglV)nd0WWtaF{7`_Ur`my>4*NleQG#xae4fIo(b zW(&|g*#YHZNvDtE|6}yHvu(hDekJ-t*f!2RK;FZHRMb*l@Qwkh*~CqQRNLaepXypX z1?%ATf_nHIu3z6gK<7Dmd;{`0a!|toT0ck|TL$U;7Wr-*piO@R)KrbUz8SXO0vr1K z>76arfrqImq!ny+VkH!4?x*IR$d6*;ZA}Mhro(mzUa?agrFZpHi*)P~4~4N;XoIvH z9N%4VK|j4mV2DRQUD!_-9fmfA2(YVYyL#S$B;vqu7fnTbAFMqH``wS7^B5=|1O&fL z)qq(oV6_u4x(I(**#mD}MnAy(C&B4a1n6V%$&=vrIDq^F_KhE5Uw8_@{V`_#M0vCu zaNUXB=n0HT@D+ppDXi8-vp{tj)?7+k>1j}VvEKRgQ~DWva}8*pp`W8~KRo*kJ*&X} zP!~2fxQr@dM*q0dI|)Fux=pZWBk==RI7i{^BQf`kWlD2%|@R9!JA7& zLbM$uJ12y}_62$|T|{)@OJZtzfpL^t@1nMTYHutrF#D+^?~CN~9`YQ@#&&@c_Zf)( zbC~y8!2LO8jHwQXv>G~1q?c68ipT*%dY&c{8wd_!Y#~tMJ7yk!F8| zt?m_CLVw6cU@@p(#h4cY&Qsfz2Xp3w^4Cg%m03Tmq~9n%hyoMH^KY7{(QkRyn_!YB zzZa!Tgr~5$MAG$x)Fs71#6j}Kvcv3=9VUX8CH< zbP3|fY8f#$K*<5JQ7whM(v=GN2k26Xsh)#0!HKS(koLgAp-;)8z0w&_Z=nG4v6n8u z&Tm0Fi){4_!Y5Kp?!zv$FKfUifQ{%c82uYfrvE{%ejUd72aNYmI*0z3-a-EYr+bB->oH3#t(AY3 zV{Z=(SJr;D#0(`u*dc*~9T7D8Pudw894%!>c4wU&V1m<~0InidR6fbi?yPl(z+sKa zdF*kS>_4^1UO>y4T%Ar>epSr5&vp`$KdY7B(F%P0@VyHk@1fJ=6X0=aGjD-)BrOJD zW}IU@hg~^2r>a1fQvjTtvL*mKJ7q;pfP*U2=URL`VB_Y_JojbZ+MS=vaVN0C6L_MV zG1#5=35-E`KsD%r>-Q_ndvJ2tOYcMMP9f*t0iJ`(Z`^+YP)h>@lR(@Wvrt-`0tHG+ zuP2R@@mx=T@fPoQ1s`e^1I0H*kQPBGDky@!ZQG@8jY-+2ihreG5q$6i{3vmDTg0j$ zzRb*-nKN@{_wD`V6+i*YS)?$XfrA-sW?js?SYU8#vXxxQCc|*K!EbpWfu)3~jwq6_@KC0m;3A%jH^18_a0;ksC2DEwa@2{9@{ z9@T??<4QwR69zk{UvcHHX;`ICOwrF;@U;etd@YE)4MzI1WCsadP=`%^B>xPS-{`=~ zZ+2im8meb#4p~XIL9}ZOBg7D8R=PC8V}ObDcxEEK(4yGKcyCQWUe{9jCs+@k!_y|I z%s{W(&>P4w@hjQ>PQL$zY+=&aDU6cWr#hG)BVCyfP)h>@3IG5I2mk;8K>)Ppba*!h z005B=001VF5fT=Y4_ytCUk`sv8hJckqSy&Gc2Jx^WJ$J~08N{il-M$fz_ML$)Cpil z(nOv_nlZB^c4s&&O3h=OLiCz&(|f0 zxWU_-JZy>hxP*gvR>CLnNeQ1~g;6{g#-}AbkIzWR;j=8=6!AHpKQCbjFYxf9h%bov zVi;eNa1>t-<14KERUW>^KwoF+8zNo`Y*WiQwq}3m0_2RYtL9Wmu`JaRaQMQ)`Si^6+VbM`!rH~T?DX2=(n4nT zf`G`(Rpq*pDk*v~wMYPZ@vMNZDMPnxMYmU!lA{Xfo?n=Ibb4y3eyY1@Dut4|Y^ml& zqs$r}jAo=B(Ml>ogeEjyv(E`=kBzPf2uv9TQtO$~bamD#=Tv`lNy(K|w$J2O6jS51 zzZtOCHDWz7W0=L1XDW5WR5mtLGc~W+>*vX5{e~U@rE~?7e>vKU-v8bj;F4#abtcV(3ZtwXo9ia93HiETyQXwW4a-0){;$OU*l` zW^bjkyZTJ6_DL^0}`*)#EZ|2nvKRzMLH9-~@Z6$v#t8Dm%(qpP+DgzNe6d)1q zBqhyF$jJTyYFvl_=a>#I8jhJ)d6SBNPg#xg2^kZ3NX8kQ74ah(Y5Z8mlXyzTD&}Q8 ziY(pj-N-V2f>&hZQJ`Di%wp2fN(I%F@l)3M8GcSdNy+#HuO{$I8NXubRlFkL)cY@b z#`v{}-^hRXEq*8B_cG=%PZvI$eo(|8Wc(2o8L#0_GX9L$1@yV>%7mGk)QTD1R*OvS z4OW;ym1)%k9Bfem0tOqq3yyAUWp&q|LsN!RDnxa|j;>R|Mm2rIv7=tej5GFaa+`#| z;7u9Z_^XV+vD@2hF8Xe63+Qd`oig6S9jX(*DbjzPb*K-H7c^7E-(~!R6E%TrgW;RvG;WS{Ziv*W*a*`9Bb;$Er3?MyF~5GcXv`k>U)n}lwv$Sp+H@IKA5$mKk0g*4Ln{!tfvITeY zzr%8JJ5BdcEYsR9eGzJ4B&$}4FMmbRU6{8{_w7Kl77@PNe7|Bc#c?5(C5&Z=kJ#(oM90D4`rh2S!|^L!P#e#1hkD5@~-- z`63GV0~*rOZSqw7k^#-Y$Q4z3Oa2SPRURqEahB1B^h{7~+p03SwzqL9QU#$3-X zdYtQ?-K5xDAdfomEd6(yPtZ!yY_<35bMedeq`z2JWorljz5-f9<^93HM-$#+acw%9r!JOM%O<|BR`W& zd-%j_?b^q7Kl6{q^N{cg2u;11rFB5EP+oqG9&pHD#_Mo@aNMj;LUvsl&nK(ca(hT( zzFc2oHC6WQv8g7jo+3ZSwK+9G$cvfRnql)?g=XeQ3+LTh3)79nhEle8OqS3T$qn(> z(=5Bg?EWq-ldEywgzXW965%H(9^ik*rH(8dNdkbcS9|ow&_r`X~R^R?B+(oTiMzzlx8KnHqUi z8Rh-)VAnS-CO+3}yxqm8)X+N+uzieFVm-F#syP#M1p5&$wX3MJ8 z+R@grZ*5G^Uh4I@VT=>C4RJNc^~3mx$kS1F{L?3)BzdduD2MZKdu#jNno&f2&d{?` zW(>$oktzY@GO{|Ln~Bt^A4)(%?l-&(Dm!iL#$K_xOyhwAf=K2<+Bom zw7|hl6E5}B$d%n0sfZvfQRy9Fyz2~ z83#=#LaHnf1th^k*p|ux8!!8pfHE!)x*%=_hAddl)P%4h4%&8!5-W#xqqb}c=H(i|wqcIS&oDQ{ zhI7N-$f$ra3=RjPmMh?-IEkJYQ<}R9Z!}wmp$#~Uc%u1oh#TP}wF*kJJmQX2#27kL z_dz(yKufo<=m71bZfLp^Ll#t3(IHkrgMcvx@~om%Ib(h(<$Da7urTI`x|%`wD--sN zJEEa>4DGSEG?0ulkosfj8IMNN4)B=ZtvGG{|4Fp=Xhg!wPNgYzS>{Bp%%Qa+624X@ X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index af7be50..a0f7639 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/helper-script-gradle/gradlew b/examples/helper-script-gradle/gradlew index 4f906e0..744e882 100755 --- a/examples/helper-script-gradle/gradlew +++ b/examples/helper-script-gradle/gradlew @@ -72,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18435 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 B8dv}T delta 17845 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 X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index af7be50..a0f7639 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradlew b/examples/shared-library-gradle/gradlew index 4f906e0..744e882 100755 --- a/examples/shared-library-gradle/gradlew +++ b/examples/shared-library-gradle/gradlew @@ -72,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18435 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 B8dv}T delta 17845 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 X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index af7be50..a0f7639 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradlew b/examples/whole-pipeline-gradle/gradlew index 4f906e0..744e882 100755 --- a/examples/whole-pipeline-gradle/gradlew +++ b/examples/whole-pipeline-gradle/gradlew @@ -72,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) From 9329977ed8ce94a6c079b4c7f99d0acb4359ed99 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 14 Oct 2021 19:35:56 -0400 Subject: [PATCH 34/45] version bumps - version bump for jenkins-core to 2.316 - version bump for groovy-all to 2.5.15 - version bump for logback to 1.2.6 - version bump for workflow-cps to 2.94 - version bump for workflow-durable-task-step to 2.40 --- examples/helper-script-gradle/build.gradle | 14 +++++++------- examples/shared-library-gradle/build.gradle | 12 ++++++------ examples/whole-pipeline-gradle/build.gradle | 12 ++++++------ 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index b732f16..084ed15 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.307' + jenkinsVersion = '2.316' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -40,18 +40,18 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.14' + implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.3' - testImplementation 'ch.qos.logback:logback-classic:1.2.3' + testImplementation 'ch.qos.logback:logback-core:1.2.6' + testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.93' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides sshagent() step testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 6158668..2fa59fa 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.307' + jenkinsVersion = '2.316' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -45,19 +45,19 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.14' + implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.3' - testImplementation 'ch.qos.logback:logback-classic:1.2.3' + testImplementation 'ch.qos.logback:logback-core:1.2.6' + testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides libraryResource() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 0b78ceb..9d7e611 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.307' + jenkinsVersion = '2.316' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -29,17 +29,17 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.14' + implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.3' - testImplementation 'ch.qos.logback:logback-classic:1.2.3' + testImplementation 'ch.qos.logback:logback-core:1.2.6' + testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.307' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.39' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides GlobalVariable testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step From eb20eed91f27bc58dd629ce0226912e712f23332 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 9 Nov 2021 22:17:17 -0500 Subject: [PATCH 35/45] version bump for gradle to 7.3 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/helper-script-gradle/gradlew | 257 +++++++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/shared-library-gradle/gradlew | 257 +++++++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/whole-pipeline-gradle/gradlew | 257 +++++++++++------- 6 files changed, 462 insertions(+), 315 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index a0f7639..fbce071 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/helper-script-gradle/gradlew b/examples/helper-script-gradle/gradlew index 744e882..1b6c787 100755 --- a/examples/helper-script-gradle/gradlew +++ b/examples/helper-script-gradle/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # 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 +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${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='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # 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 - ;; - MSYS* | MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + 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 @@ -106,80 +140,95 @@ 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 +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac 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 +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # 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\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg 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; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# 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" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index a0f7639..fbce071 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradlew b/examples/shared-library-gradle/gradlew index 744e882..1b6c787 100755 --- a/examples/shared-library-gradle/gradlew +++ b/examples/shared-library-gradle/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # 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 +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${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='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # 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 - ;; - MSYS* | MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + 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 @@ -106,80 +140,95 @@ 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 +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac 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 +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # 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\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg 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; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# 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" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index a0f7639..fbce071 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradlew b/examples/whole-pipeline-gradle/gradlew index 744e882..1b6c787 100755 --- a/examples/whole-pipeline-gradle/gradlew +++ b/examples/whole-pipeline-gradle/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # 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 +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${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='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # 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 - ;; - MSYS* | MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + 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 @@ -106,80 +140,95 @@ 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 +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac 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 +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # 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\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg 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; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# 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" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" From 72ceb03b8261482a6121efdb8a6863bc45b0e4a8 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 9 Nov 2021 22:28:40 -0500 Subject: [PATCH 36/45] version bump for jenkins to 2.320 --- examples/helper-script-gradle/build.gradle | 4 ++-- examples/shared-library-gradle/build.gradle | 4 ++-- examples/whole-pipeline-gradle/build.gradle | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 084ed15..a83c27f 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.316' + jenkinsVersion = '2.320' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -46,7 +46,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.6' testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 2fa59fa..4213230 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.316' + jenkinsVersion = '2.320' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -51,7 +51,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.6' testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 9d7e611..cd3fd12 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.316' + jenkinsVersion = '2.320' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -35,7 +35,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.6' testImplementation 'ch.qos.logback:logback-classic:1.2.6' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.316' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step From 9f052b864fba3a8d1840f5efb469361d314b2feb Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 11 Jan 2022 12:47:58 -0500 Subject: [PATCH 37/45] version bump for gradle wrapper to 7.3.3 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index fbce071..669386b 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index fbce071..669386b 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index fbce071..669386b 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 8d6fbcbb985859607d25b22d9250ddc8e1d2eb10 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 11 Jan 2022 12:54:51 -0500 Subject: [PATCH 38/45] version bumps - version bump for jenkins to 2.329 - version bump for logback to 1.2.10 - version bump for slack to 2.49 --- examples/helper-script-gradle/build.gradle | 8 ++++---- examples/shared-library-gradle/build.gradle | 10 +++++----- examples/whole-pipeline-gradle/build.gradle | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index a83c27f..1fc993c 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.320' + jenkinsVersion = '2.329' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -43,10 +43,10 @@ dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.6' - testImplementation 'ch.qos.logback:logback-classic:1.2.6' + testImplementation 'ch.qos.logback:logback-core:1.2.10' + testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 4213230..9cae262 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.320' + jenkinsVersion = '2.329' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -48,10 +48,10 @@ dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.6' - testImplementation 'ch.qos.logback:logback-classic:1.2.6' + testImplementation 'ch.qos.logback:logback-core:1.2.10' + testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step @@ -61,7 +61,7 @@ dependencies { // provides libraryResource() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.48' + testImplementation 'org.jenkins-ci.plugins:slack:2.49' // provides sshagent() step testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' } diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index cd3fd12..4949dc7 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.320' + jenkinsVersion = '2.329' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -32,10 +32,10 @@ dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.15' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.6' - testImplementation 'ch.qos.logback:logback-classic:1.2.6' + testImplementation 'ch.qos.logback:logback-core:1.2.10' + testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.320' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step @@ -43,7 +43,7 @@ dependencies { // provides GlobalVariable testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.48' + testImplementation 'org.jenkins-ci.plugins:slack:2.49' // provides sshagent() step testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' From f202b3accdd3a397651a76c67d05bfa349022e26 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sat, 19 Feb 2022 10:18:45 -0500 Subject: [PATCH 39/45] version bump for gradle wrapper to 7.4 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 669386b..b1159fc 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 669386b..b1159fc 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 669386b..b1159fc 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From f88be76d75a132bb12a62f31b535f6daae5d71eb Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Sat, 19 Feb 2022 10:28:47 -0500 Subject: [PATCH 40/45] version bumps - version bump for jenkins-core to 2.335 - version bump for workflow-cps to 2.94.1 - version bump for ssh-agent to 1.24.1 - version bump for workflow-cps-global-lib to 2.21.1 --- examples/helper-script-gradle/build.gradle | 8 ++++---- examples/shared-library-gradle/build.gradle | 8 ++++---- examples/whole-pipeline-gradle/build.gradle | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 1fc993c..490162a 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.329' + jenkinsVersion = '2.335' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -46,13 +46,13 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.10' testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94.1' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 9cae262..8fc1b55 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.329' + jenkinsVersion = '2.335' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -51,7 +51,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.10' testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step @@ -59,11 +59,11 @@ dependencies { // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21.1' // provides slackSend() step testImplementation 'org.jenkins-ci.plugins:slack:2.49' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 4949dc7..b92983e 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.329' + jenkinsVersion = '2.335' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -35,17 +35,17 @@ dependencies { testImplementation 'ch.qos.logback:logback-core:1.2.10' testImplementation 'ch.qos.logback:logback-classic:1.2.10' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.329' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21.1' // provides slackSend() step testImplementation 'org.jenkins-ci.plugins:slack:2.49' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.23' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin From ab1690e6cde0f25bbaa7227176e435a167b77241 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 24 Mar 2022 09:42:43 -0400 Subject: [PATCH 41/45] version bump for gradle wrapper to 7.4.1 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 8958 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 diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index b1159fc..d7e66b5 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 8958 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 diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index b1159fc..d7e66b5 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 8958 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 diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index b1159fc..d7e66b5 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 7ba9943b2dd9c1c39928959c3d3668841375ad0b Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Thu, 24 Mar 2022 09:43:12 -0400 Subject: [PATCH 42/45] version bumps - version bump for jenkins-core to 2.340 - version bump for groovy-all to 2.5.16 - version bump for logback to 1.2.11 - version bump for groovy-cps to 1.32 --- examples/helper-script-gradle/build.gradle | 10 +++++----- examples/shared-library-gradle/build.gradle | 10 +++++----- examples/whole-pipeline-gradle/build.gradle | 12 ++++++------ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 490162a..6bc89bd 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.335' + jenkinsVersion = '2.340' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -40,13 +40,13 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.15' + implementation 'org.codehaus.groovy:groovy-all:2.5.16' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.10' - testImplementation 'ch.qos.logback:logback-classic:1.2.10' + testImplementation 'ch.qos.logback:logback-core:1.2.11' + testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94.1' // provides isUnix() step testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index 8fc1b55..c2001c4 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.335' + jenkinsVersion = '2.340' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -45,13 +45,13 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.15' + implementation 'org.codehaus.groovy:groovy-all:2.5.16' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.10' - testImplementation 'ch.qos.logback:logback-classic:1.2.10' + testImplementation 'ch.qos.logback:logback-core:1.2.11' + testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides isUnix() step diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index b92983e..51ea616 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.335' + jenkinsVersion = '2.340' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -29,13 +29,13 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.15' + implementation 'org.codehaus.groovy:groovy-all:2.5.16' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' - testImplementation 'ch.qos.logback:logback-core:1.2.10' - testImplementation 'ch.qos.logback:logback-classic:1.2.10' + testImplementation 'ch.qos.logback:logback-core:1.2.11' + testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.335' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' // provides stage() step testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' // provides sh() step @@ -48,7 +48,7 @@ dependencies { testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' // plugin dependencies - testImplementation 'com.cloudbees:groovy-cps:1.31' // required by workflow-cps plugin + testImplementation 'com.cloudbees:groovy-cps:1.32' // required by workflow-cps plugin } task cleanSharedLibraries(type: Delete) { From 1e60024e56147be03b8a75d922c2361ceb055014 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Tue, 5 Apr 2022 15:43:54 -0400 Subject: [PATCH 43/45] version bump for gradle to 7.4.2 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index d7e66b5..92f06b5 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index d7e66b5..92f06b5 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index d7e66b5..92f06b5 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 4e19732b248ce7433c9487a9fe1a4113567c2e89 Mon Sep 17 00:00:00 2001 From: Haroon Rafique Date: Mon, 20 Jun 2022 16:01:06 -0400 Subject: [PATCH 44/45] version bumps - jenkins-core to 2.340 - groovy-all to 2.5.17 - workflow-cps to 2725.v7b_c717eb_12ce - workflow-basic-steps to 948.v2c72a_091b_b_68 - workflow-durable-task-step to 1146.v1a_d2e603f929 - ssh-agent to 295.v9ca_a_1c7cc3a_a_ - pipeline-stage-step to 293.v200037eefcd5 - workflow-cps-global-lib to 588.v576c103a_ff86 - slack to 608.v19e3b_44b_b_9ff --- examples/helper-script-gradle/build.gradle | 14 +++++++------- examples/shared-library-gradle/build.gradle | 18 +++++++++--------- examples/whole-pipeline-gradle/build.gradle | 16 ++++++++-------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/examples/helper-script-gradle/build.gradle b/examples/helper-script-gradle/build.gradle index 6bc89bd..e3a3456 100644 --- a/examples/helper-script-gradle/build.gradle +++ b/examples/helper-script-gradle/build.gradle @@ -10,7 +10,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.340' + jenkinsVersion = '2.355' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -40,19 +40,19 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.16' + implementation 'org.codehaus.groovy:groovy-all:2.5.17' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.11' testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:4.0.1' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2.94.1' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.355' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps:2725.v7b_c717eb_12ce' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:948.v2c72a_091b_b_68' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:1146.v1a_d2e603f929' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:295.v9ca_a_1c7cc3a_a_' } diff --git a/examples/shared-library-gradle/build.gradle b/examples/shared-library-gradle/build.gradle index c2001c4..0c70d49 100644 --- a/examples/shared-library-gradle/build.gradle +++ b/examples/shared-library-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.340' + jenkinsVersion = '2.355' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -45,25 +45,25 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.16' + implementation 'org.codehaus.groovy:groovy-all:2.5.17' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.11' testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.355' // provides stage() step - testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:293.v200037eefcd5' // provides isUnix() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.24' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:948.v2c72a_091b_b_68' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:1146.v1a_d2e603f929' // provides libraryResource() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21.1' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:588.v576c103a_ff86' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.49' + testImplementation 'org.jenkins-ci.plugins:slack:608.v19e3b_44b_b_9ff' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:295.v9ca_a_1c7cc3a_a_' } task cleanSharedLibraries(type: Delete) { diff --git a/examples/whole-pipeline-gradle/build.gradle b/examples/whole-pipeline-gradle/build.gradle index 51ea616..d2bcba4 100644 --- a/examples/whole-pipeline-gradle/build.gradle +++ b/examples/whole-pipeline-gradle/build.gradle @@ -12,7 +12,7 @@ version 'O.1-SNAPSHOT' jenkinsPlugin { // verions of Jenkins core jpi plugin depends on - jenkinsVersion = '2.340' + jenkinsVersion = '2.355' // optional list of package prefixes to mask maskClasses = 'jaxen' } @@ -29,23 +29,23 @@ repositories { } dependencies { - implementation 'org.codehaus.groovy:groovy-all:2.5.16' + implementation 'org.codehaus.groovy:groovy-all:2.5.17' testImplementation 'com.homeaway.devtools.jenkins:jenkins-spock:2.1.5' testImplementation 'ch.qos.logback:logback-core:1.2.11' testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'javax.servlet:javax.servlet-api:3.1.0' - testImplementation 'org.jenkins-ci.main:jenkins-core:2.340' + testImplementation 'org.jenkins-ci.main:jenkins-core:2.355' // provides stage() step - testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:2.5' + testImplementation 'org.jenkins-ci.plugins:pipeline-stage-step:293.v200037eefcd5' // provides sh() step - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.40' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:1146.v1a_d2e603f929' // provides GlobalVariable - testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.21.1' + testImplementation 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:588.v576c103a_ff86' // provides slackSend() step - testImplementation 'org.jenkins-ci.plugins:slack:2.49' + testImplementation 'org.jenkins-ci.plugins:slack:608.v19e3b_44b_b_9ff' // provides sshagent() step - testImplementation 'org.jenkins-ci.plugins:ssh-agent:1.24.1' + testImplementation 'org.jenkins-ci.plugins:ssh-agent:295.v9ca_a_1c7cc3a_a_' // plugin dependencies testImplementation 'com.cloudbees:groovy-cps:1.32' // required by workflow-cps plugin From 44b562f070aeedf039fa0e2607a5d3fae0c25a36 Mon Sep 17 00:00:00 2001 From: Haroon Rafique <> Date: Sat, 7 Jan 2023 19:48:35 -0500 Subject: [PATCH 45/45] version bump for gradle to 7.5.1 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties index 92f06b5..8fad3f5 100644 --- a/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/helper-script-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties index 92f06b5..8fad3f5 100644 --- a/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/shared-library-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties index 92f06b5..8fad3f5 100644 --- a/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/whole-pipeline-gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists