-
New Feature
-
Resolution: Fixed
-
Major
-
None
Allow the workflow to (visually) configure an SCM, check it out into a workspace on the Jenkins master, and load a sandboxed Groovy script from a defined location in that workspace.
Perhaps allow the workspace to be treated as a sourcepath so libraries can be imported.
Optionally include the flow SCM in polling and/or changelog generation.
Abandoned ideas:
- Construct URL with an instance of URLStreamHandler we can create a URL space that can access files over FilePath, and somehow prevent the class loader from continuing to use the workspace after it goes out of scope.
- Similar but the URLStreamHandler uses SCMSource to access files without ever checking out anything.
- is related to
-
JENKINS-26129 Multibranch workflow projects
-
- Resolved
-
- links to
[JENKINS-26101] Load entire script from SCM
Link |
New:
This issue is related to |
Status | Original: Open [ 1 ] | New: In Progress [ 3 ] |
Description |
Original:
h3. Adding classpath from workspace? By constructing {{URL}} with an instance of {{URLStreamHandler}} we can create a URL space that can access files over {{FilePath}}. This would enable primitives like this: {code} node { git url:'my-shared-script.git', credentialId: '1234-5678-deadbeefdeadbeef' addClassPath "." ... } {code} There's some details that need to be figured out how to prevent classloader from continuing to use workspace after the workspace goes out of scope. h3. "Add classpath from SCMSource" primitive The idea is similar here except the custom {{URLStreamHandler}} uses {{SCMSource}} to access files without ever checking out anything. {code} library type:'git', remote:'my-shared-script.git', credentialId: '1234-5678-deadbeefdeadbeef' ... {code} h3. Primitive that uses {{SCM}} to checkout stuff into the master Instead of messing around with {{URLStreamHandler}}, just use ordinary {{SCM}} and checkout code into some hidden locations on the master and adds that local directory as classpath. Needs to be seen if {{SCM}} checkout have any unwanted side-effect to the project or to the master. h3. Security Considerations In all the cases, do not allow class files, jar files to be added directly to the classpath as it'd bypass the sandbox. |
New:
Allow the workflow to (visually) configure an {{SCM}}, check it out into a workspace on the Jenkins master, and load a sandboxed Groovy script from a defined location in that workspace. _Perhaps_ allow the workspace to be treated as a sourcepath so libraries can be imported. Optionally include the flow SCM in polling and/or changelog generation. Abandoned ideas: # Construct {{URL}} with an instance of {{URLStreamHandler}} we can create a URL space that can access files over {{FilePath}}, and somehow prevent the class loader from continuing to use the workspace after it goes out of scope. # Similar but the {{URLStreamHandler}} uses {{SCMSource}} to access files without ever checking out anything. |
Summary | Original: Load Script from SCM (wave #2) | New: Load entire script from SCM |
Remote Link | New: This issue links to "PR 40 (Web Link)" [ 12030 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: In Progress [ 3 ] | New: Resolved [ 5 ] |
Workflow | Original: JNJira [ 160091 ] | New: JNJira + In-Review [ 196313 ] |
Component/s | New: pipeline-general [ 21692 ] |
Component/s | Original: workflow-plugin [ 18820 ] |