- Notifications
You must be signed in to change notification settings - Fork116
WIP: [JENKINS-63284] Add initial Pipeline job support for Groovy properties#47
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:master
Are you sure you want to change the base?
Conversation
| privatestaticbooleanisParameterDefinitionOf(@NonnullStringparameterUUID,@NonnullJob<?, ?>project) { | ||
| List<ParameterDefinition>parameterDefinitions =newArrayList<>(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 usegetBuildWrapperParameterDefinition 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.
ThisisParameterDefinitionOf 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?
| StringprojectName =null; | ||
| StringprojectFullName =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 useAbstractItem here but then filter withProject class ingetHelperParameters()?
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 anAbstractItem.).
In case where the projectName is the name of anAbstractItem that is not aProject, we ignore that as we don't want to put another object instance in thejenkinsProject bound variable.
c4sh commentedFeb 1, 2022
Is there a reason why this was never finished ? |
jan-stoltman-bolt commentedMar 25, 2022
kinow commentedMar 25, 2022
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 |
dimmel82 commentedAug 17, 2022
Hi@kinow, Maybe additional development is required in other plugins to support this feature. Thanks, |
kinow commentedAug 17, 2022
Thanks a lot for testing and reporting@dimmel82! |
JinPengGeng commentedJun 1, 2023
Is there an update? I have been looking for this feature for a long time |
asetty commentedJul 27, 2023
Pinging for updates |
mvanini commentedDec 17, 2023
This PR is only for having access to Jenkins API for pipeline job types from groovy code used in the parameter's script. |
wrbst commentedApr 14, 2025
3 years later. |
kinow commentedApr 14, 2025
Hi@wrbst I merged changes contributed via PRs to adjust the code to changes in Jenkins upstream. The tests passed, and quick manual tests were OK too, and the code changes looked fine. The plug-in releases got blocked due to regressions in the last release. It's been going for a few months already (you can check the commits & JIRA). Regressions and security bugs normally take most of myvolunteer time to work on the plug-in. You can see in the comments (above) that there were some errors with this PR on user's environments, so I planned to work on this when I had more time as I expect some hiccups and need to do more tests. If OP can rebase and fix conflicts, and others can test & send PRs to update it fixing the code, it would be easier to review. Otherwise, I'll work on this when I have time tovolunteer on this PR. I'm highlighting this as you can see in thisrecent example that some users expect open source volunteers to prioritize the bugs/PRs regardless of their lives/jobs/family/personal issues/etc.. |
Uh oh!
There was an error while loading.Please reload this page.
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
jenkinsProjectGroovy property with the Pipeline job.Related issues:JENKINS-63284,JENKINS-65235,JENKINS-53554.
Related guide:Writing Pipeline-Compatible Plugins