Git Product home page Git Product logo

sdp-libraries's Introduction

SDP Pipeline Libraries

This repository contains Booz Allen's pipeline libraries that integrate with the Jenkins Templating Engine.

If you want to learn more, the best place to get started is the documentation.

Usage

In order to use the different libraries in this repository, you can configure this repository as a library source, for a detailed example of how to do this you may refer to this lab.

It is recommended that rather than using the master branch you pin your library source to a particular github release such as: https://github.com/boozallen/sdp-libraries/tree/release/2.0/libraries [like 2.0]. This helps to ensure that you have greater control in version management.

Also ensure that in addition to whichever library you wish to use you include the sdp library. This helps to resolve a number of dependency errors you may otherwise face.

Configuring the sdp library

As a dependency for every other library, it is important that the sdp library not only be included but also configured properly. For instructions on how to configure this library, please reference the sdp guide

Repository Structure

A detailed description is available in the contributing guide

Contributing

We accept contributions via a fork-based development workflow. See the contributing guide.

sdp-libraries's People

Contributors

aleckeller avatar balan-karpagam avatar billbrower avatar cokieffebah avatar connordy avatar connoryounglund-bah avatar dependabot[bot] avatar dstrivelli avatar jholt96 avatar johnson-jesse avatar jpke avatar karlkovaciny avatar kdendtler avatar kottoson avatar kottoson-bah avatar ltdonner avatar ltdonner-bah avatar lunchbreakdev avatar mackeyaj avatar nurmi avatar psig-bah avatar ravi-m-bah avatar steven-terrana avatar tsteph11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdp-libraries's Issues

Backwards compatibility for multistage builds

Using release 4.6 I am unable to pass artifacts built in previous stages into the docker build. Only the original source code is available. This could be accomplished by adding a stash post build with the option to unstash in the docker library or allowing a change of context in the docker library.

SDP v3.1 Github Enterprise on pull request issue

I am experiencing a number of issues when using github enterprise library with on_pull_request method.
I am using JTE v2.3 and SDP v3.1.

The first error is the following:

[JTE][Step - git/on_merge.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/on_pull_request.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/git_distributions.fetch()]
[JTE][Step - sdp/getStep.call(String)]
[JTE][Step - sdp/jteVersion.lessThanOrEqualTo(String)]
[Pipeline] compareVersions
[Pipeline] End of Pipeline
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.boozallen.plugins.jte.init.primitives.TemplatePrimitiveCollector.call() is applicable for argument types: (java.lang.String) values: [github_enterprise]
Possible solutions: wait(), any(), wait(long), any(groovy.lang.Closure), each(groovy.lang.Closure), collect()

I manage to resolve this by changing method name to call here: https://github.com/boozallen/sdp-libraries/blob/3.1/libraries/sdp/steps/getStep.groovy#L8.

The second error is the following:

[JTE][Step - git/on_merge.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/on_pull_request.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/git_distributions.fetch()]
[JTE][Step - sdp/getStep.call(String)]
[JTE][Step - sdp/jteVersion.lessThanOrEqualTo(String)]
[Pipeline] compareVersions
[Pipeline] End of Pipeline
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.boozallen.plugins.jte.init.primitives.TemplatePrimitiveCollector.getStep() is applicable for argument types: (java.lang.String) values: [github_enterprise]
Possible solutions: getSteps(java.lang.String), hasStep(java.lang.String), getAt(java.lang.String), grep(), grep(java.lang.Object)

I manage to resolve this one by changing ...getStep(stepName) to ...getSteps(stepName) here: https://github.com/boozallen/sdp-libraries/blob/3.1/libraries/sdp/steps/getStep.groovy#L20

The third error I am not able to resolve. Here is the full stack:

[JTE][Step - git/on_merge.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/on_pull_request.call(LinkedHashMap, CpsClosure2)]
[JTE][Step - git/git_distributions.fetch()]
[JTE][Step - sdp/getStep.call(String)]
[JTE][Step - sdp/jteVersion.lessThanOrEqualTo(String)]
[Pipeline] compareVersions
[Pipeline] End of Pipeline
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.boozallen.plugins.jte.init.primitives.injectors.StepWrapper.get_source_branch() is applicable for argument types: () values: []
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
	at libraries.git.steps.WorkflowScript.call(WorkflowScript:14)
	at org.boozallen.plugins.jte.init.primitives.injectors.StepWrapperCPS.methodMissing(script16268975449511204730961.groovy:59)
	at WorkflowScript.run(WorkflowScript:6)
	at ___cps.transform___(Native Method)
	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:86)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixName(FunctionCallBlock.java:78)
	at jdk.internal.reflect.GeneratedMethodAccessor333.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
	at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
Caused: hudson.remoting.ProxyException: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: org.boozallen.plugins.jte.init.primitives.injectors.StepWrapper.get_source_branch() is applicable for argument types: () values: []
	at org.boozallen.plugins.jte.init.primitives.injectors.StepWrapperCPS.methodMissing(script16268975449511204730961.groovy:61)
	at WorkflowScript.run(WorkflowScript:6)
	at ___cps.transform___(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.constructorCall(DefaultInvoker.java:25)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:97)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
	at jdk.internal.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
	at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
	at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:185)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:400)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:96)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:312)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:276)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

I am suspecting some compatibility issue between JTE and SDP 3.1 on the following pieces of code but unable to identify a solution:
https://github.com/jenkinsci/templating-engine-plugin/blob/main/src/main/groovy/org/boozallen/plugins/jte/init/primitives/injectors/StepWrapper.groovy
https://github.com/boozallen/sdp-libraries/blob/3.1/libraries/git/steps/github_enterprise.groovy

Thank you and let me know if you need further information.

Problems trying to get the unit tests to run

I was trying to get Unit Testing working on my own fork and ran into an issue. So I decided to fork your tests and run them locally to see if I could figure out what was wrong but ran into the same issue.

So i pulled down the latest today of the master branch, then ran from my windows computer using Docker for Windows set to linux your tests.

The command from powershell looked like
docker run -v ${PWD}:/app -w/app gradle:6.3.0-jdk8 gradle --no-daemon test
basically the same command as in the make file.

FAILURE: Build failed with an exception.

* Where:
Build file '/app/build.gradle' line: 2

* What went wrong:
Plugin [id: 'org.jenkins-ci.jpi', version: '0.38.0'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'org.jenkins-ci.jpi:org.jenkins-ci.jpi.gradle.plugin:0.38.0')
  Searched in the following repositories:
    Gradle Central Plugin Repository

Am I doing something wrong or is there a bigger problem here.

Consolidate kubernetes and openshift libraries into a helm library

The kubernetes and openshift libraries are more or less the exact same library.

In general, these names are way too vague. There are many different ways a project might wish to deploy to a kubernetes distribution (helm, argo, skaffold, kustomize, etc).

These libraries should be consolidated into a singular helm library that takes a configuration option distribution that is used to manage how authentication to the cluster takes place.

sonarqube: Pass arbitrary CLI flags to the sonar-scanner CLI

Provide support for passing arbitrary flags to the Sonar scanner. Among other things, this will eliminate the need for embedding Sonar configuration into the application being analyzed.

Example:

    libraries{
      sonarqube{
        parameters = [
          'sonar.java.binaries=whatever',
          'something.else=banana'
        ]
      }
    }

Improve owasp dependency check reporting

The reporting from OWASP Dependency Check leaves much to be desired.

This could be remediated by writing a custom script to parse the JSON and output tabulated data of unique CVE identifiers, their category, their score, and packages associated with the CVE.

Alternatively, a custom HTML template could be developed that is populated from the reporting data.

a11ym Support for WCAG needs to be upgraded to WCAG2.1

https://github.com/boozallen/sdp-libraries/tree/main/libraries/a11y shows that it supports WCAG 2.0

a11y
[The A11y Machine](https://github.com/liip/TheA11yMachine) is an automated accessibility testing tool which crawls and tests pages of a web application to produce detailed reports.

It validates pages against the following specifications/laws:

[W3C Web Content Accessibility Guidelines](http://www.w3.org/TR/WCAG20/) (WCAG) 2.0, including A, AA and AAA levels ([understanding levels of conformance](http://www.w3.org/TR/UNDERSTANDING-WCAG20/conformance.html#uc-levels-head))

whereas currently (as of 3/22/2023) use WCAG2.1 as baseline/minimum required version.

error while trying to run the sonarqube library from the sdp

Hello Steven,
I am getting below error while trying to run the sonarqube library from the sdp.

hudson.remoting.ProxyException: org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node
at org.jenkinsci.plugins.workflow.steps.StepDescriptor.checkContextAvailability(StepDescriptor.java:266)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:263)
Caused: hudson.remoting.ProxyException: org.codehaus.groovy.runtime.InvokerInvocationException: org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing

Any pointer will be helpful

Openshift Lib - Pipeline CPS Method Mismatch

Came across an (edge-case) issue around cps mismatches in the Openshift library. It seems to involve the inside_sdp_image step called here:

inside_sdp_image "openshift_helm", {

Log excerpt w/ some context on either side of the error:

[JTE] [Step - github/withGit.call(LinkedHashMap, CpsClosure2)]
[Pipeline] withCredentials
Masking supported pattern matches of $USER or $PASS
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/sdp-website_master
[Pipeline] {
[Pipeline] sh
+ rm -rf sdp-example-helm-config
[Pipeline] sh
+ set +x
Cloning into 'sdp-example-helm-config'...
[Pipeline] dir
Running in /var/jenkins_home/workspace/sdp-website_master/sdp-example-helm-config
[Pipeline] {
[Pipeline] sh
+ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
expected to call script15893089762241766249629.run but wound up catching org.jenkinsci.plugins.workflow.cps.CpsClosure2.call; see: https://jenkins.io/redirect/pipeline-cps-method-mismatches/
[JTE] [Step - sdp/inside_sdp_image.call(String, CpsClosure2)]
[Pipeline] withEnv
[Pipeline] {

Version info:
JTE: 1.7.1
Libraries: fork of master (78d26b)
workflow-cps (Pipeline: Groovy): 2.80
Jenkins: 2.222.1

Pipeline config:
https://github.com/kottoson-bah/sdp-example-pipeline-config/blob/69b03f685ddd927bc50be0596c44834e4ebabbf8/pipeline_config.groovy

Consolidate git* libraries

Replace the github, github_enterprise, & gitlab libraries with a single git library.

These libraries only differ in their implementation for how they fetch the name of a "source" branch in a Pull Request.

Expose a "distribution" field that can be set to one of "github", "github enterprise", or "gitlab" and eventually "bitbucket server" and "bitbucket cloud" (if APIs differ).

Document Persistent OWASP Dep Check Infrastructure

In order to boost the performance of the owasp dependency check library, there should be configuration options to pass relevant information to persistent vulnerability feeds.

as a bonus - infrastructure as code to deploy that infrastructure would be ideal.

NPM library

Ideally, the official npm library would integrate something like npx in a container image in the sdp-images repository and take a library configuration for what version of NPM to install (with the default being w/e the LTS is).

something like:

libraries{
  npm{
    npm_version = "14.16.1" 
    build{
      script = "build" // library should parse package.json to confirm the "build" key is present in scripts block
      env{} // env vars to be available to build. should be able to pull from credential for tokens. 
    }
    unit_test{
      script = "test" // library should parse package.json to confirm the "build" key is present in scripts block
      env{} // env vars to be available to build. should be able to pull from credential for tokens. 
    }
  }
}

and then the library could do something like:

build.groovy:

void call(){
  npm_invoke("build")
}

unit_test.groovy:

void call(){
  npm_invoke("unit_test")
}

npm_invoke.groovy:

void call(String stepName){
  // do stuff
}

NOTE

this would be a good use case for "step aliasing" or dynamic step generation lol
kinda annoying to have to create those wrapper steps for build and unit_test

could just do something like this in npm_invoke :

@StepAliases([ "build", "unit_test" ])
void call(){
  // autowire a STEP_ALIAS_NAME variable based on which one this is
}

where the library loading logic in JTE reads the @StepAliases annotation to transform npm_invoke into steps invokable via the names passed in the array

Unit tests BuiltinClassLoader.java error

Hey there,

I'm not very proficient in Java, so plz bear with me...

I'm trying to run the unit tests but I'm facing an error:

 $ just test              

> Task :test
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/Users/serpa/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-all/2.4.11/444a64af79c540aad257e49d95050e7c189f1309/groovy-all-2.4.11.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

JTEPipelineSpecification > classMethod FAILED
    java.lang.NoClassDefFoundError at ClassLoader.java:1017
        Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:581

libraries.twistlock.ScanContainerImageSpec > classMethod FAILED
    java.lang.NoClassDefFoundError at ClassLoader.java:1017
        Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:581

libraries.docker.BuildxSpec > classMethod FAILED
    java.lang.NoClassDefFoundError at ClassLoader.java:1017
        Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:581

libraries.docker.RetagSpec > classMethod FAILED
    java.lang.NoClassDefFoundError at ClassLoader.java:1017
        Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:581

...

23 tests completed, 23 failed

Java version:

openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Homebrew (build 11.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.12+0, mixed mode)

And I've also tried with Java 14, same errors.

Any gradle commands throws this error.

Am I doing something wrong?

Thanks!

git step on_merge is failing

Hi,

For some reason on_merge is failing. when I switch to on_change it worked. When I looked into code, there's lot going on with on_merge step when compared to on_change. Appreciate if you can provide some hints. Thank you!

[Pipeline] End of Pipeline
hudson.remoting.ProxyException: java.nio.file.AccessDeniedException: /var/jenkins_home/workload/workspace/ch_Pipeline_release_retail_pi1_2@2/.git/objects/pack/pack-11319dbc43aedd5e9db70292a7da3195057d362e.idx
	at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(Unknown Source)
	at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source)
	at java.base/java.nio.file.Files.newOutputStream(Unknown Source)
	at hudson.util.IOUtils.copy(IOUtils.java:52)
	at hudson.FilePath.readFromTar(FilePath.java:2982)
Caused: hudson.remoting.ProxyException: java.io.IOException: Failed to extract workspace.tar.gz
	at hudson.FilePath.readFromTar(FilePath.java:2992)
	at hudson.FilePath.access$300(FilePath.java:212)
	at hudson.FilePath$UntarLocal.invoke(FilePath.java:661)
	at hudson.FilePath$UntarLocal.invoke(FilePath.java:650)
	at hudson.FilePath.act(FilePath.java:1200)
	at hudson.FilePath.act(FilePath.java:1183)
	at hudson.FilePath.untar(FilePath.java:626)
	at org.jenkinsci.plugins.workflow.flow.StashManager.unstash(StashManager.java:161)
	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:78)
	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:65)
	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
Caused: hudson.remoting.ProxyException: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Failed to extract workspace.tar.gz
	at org.boozallen.plugins.jte.init.primitives.injectors.StepWrapperCPS.methodMissing(script16527525407151204730961.groovy:61)
	at WorkflowScript.run(WorkflowScript:57)
	at ___cps.transform___(Native Method)
	at jdk.internal.reflect.GeneratedConstructorAccessor1262.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:238)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.constructorCall(DefaultInvoker.java:25)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:97)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
	at jdk.internal.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
	at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
	at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:95)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.