-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: [JENKINS-63284] Add initial Pipeline job support for Groovy properties #47
base: master
Are you sure you want to change the base?
Conversation
List<ParameterDefinition> parameterDefinitions = new ArrayList<>(getProjectParameterDefinitions(project)); | ||
for (List<ParameterDefinition> params : getBuildWrapperParameterDefinitions(project).values()) { | ||
// TODO: Update or get rid of getBuildWrapperParameterDefinitions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kinow Dear maintainers, please help me with this part of the plugin. I'm unsure how we use getBuildWrapperParameterDefinition
and how we test that it works.
Do we still need it with all these introspections with BuildWrapper and all?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isParameterDefinitionOf
method is called as a fallback when we cannot find the project of the parameter.
We navigate all the projects in Jenkins, trying to find one that contains the parameter UUID. It is highly inefficient, but was the last resort after getting so many bugs from users with custom plug-ins that were modifying the structure of project <-> parameters (i.e. inserting extra nodes in-between these two).
It should work with pipeline jobs, no?
@@ -134,6 +133,7 @@ protected AbstractScriptableParameter(String name, String description, String ra | |||
String projectName = null; | |||
String projectFullName = null; | |||
if (currentRequest != null) { | |||
// TODO: Check if we really need AbstractItem instead of Job class |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kinow Same for this commentary: why do we use AbstractItem
here but then filter with Project
class in getHelperParameters()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From memory, the name or full name may have the project name. Or one of them may contain a folder name. Or a special object name (e.g. another plug-in that provides an AbstractItem
.).
In case where the projectName is the name of an AbstractItem
that is not a Project
, we ignore that as we don't want to put another object instance in the jenkinsProject
bound variable.
Is there a reason why this was never finished ? |
Sorry, a bit strapped for time (life, work, being sponsored to work on other OSS projects, etc.) Maybe someone could test the current PR with pipelines, and report whether it's working or not? That could help myself or another dev when re-starting the work on this code. Cheers |
Hi @kinow,
Maybe additional development is required in other plugins to support this feature. Thanks, |
Thanks a lot for testing and reporting @dimmel82! |
Is there an update? I have been looking for this feature for a long time |
Pinging for updates |
This PR is only for having access to Jenkins API for pipeline job types from groovy code used in the parameter's script. |
I want to add support for Pipeline job for Groovy script properties.
Currently, the plugin does not fully work with the Pipeline job: it uses classes that are specific only for the Freestyle job for getting extra data to inject to Groovy binding.
I changed plugin code to deal with Job/Run classes and added a test that demonstrates the result.
With these changes, users will be able to use
jenkinsProject
Groovy property with the Pipeline job.Related issues: JENKINS-63284, JENKINS-65235, JENKINS-53554.
Related guide: Writing Pipeline-Compatible Plugins