WIP [JENKINS-68955] Add inside() method to Container class #372
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements
Container.inside()to execute a closure within an already-running container, mirroringImage.inside()behavior.Changes
WithContainerStep.java: Made
Decoratorclass package-private (was private) to allow reuse byWithRunningContainerStepWithRunningContainerStep.java (NEW): A new step class for running build steps inside an already-running container
containerIdas required parameterWithContainerStep.Decoratorfor docker exec wrappingwithRunningDockerContainerstepDocker.groovy: Added
Container.inside(Closure body)methodwithRunningDockerContainerstep with the container's IDDockerDSLTest.java:
containerInside()test for the new functionalitycontainerInsideNonExistingContainer()test to validate error handling when using a non-existing container idUsage
Testing done
Added two test cases to validate:
insidemethod on a container object (fromwithRun) yields an execution context in the already running containerwintRunningDockerContainerwith a non-existing container id yields an exceptionSubmitter checklist