-
Bug
-
Resolution: Unresolved
-
Major
-
Jenkins 2.387.2 running on Linux 5.10.173-154.642.amzn2.x86_64 (Docker)
OpenJDK 11.0.18+10
Plugins:
P4 Plugin 1.14.0
Pipeline: Multibranch 733.v109046189126
Apologies in advance if this is the wrong expectation but I haven't found much documentation on this feature so any help with workarounds would be appreciated.
Expectation: When configuring a perforce-based multibranch pipeline to use a pinned label (which is ideally set based on a job parameter), a branch's pipeline groovy code should also sync to the revision tagged within that label. ie. "Release.jenkinsfile#8" is tagged in the pinned label, so when running the associated pipeline in Jenkins using that label, it will run the #8 revision of the pipeline.
Actual: The pipeline will always run the latest revision of the pipeline even when a label is pinned, either hardcoded or parameterized.
This is problematic if features/platforms/compilers are added or removed in the same branch, for example, we added a new feature to the latest revision which should not be triggered when using the old label since that feature didn't exist at the time, and so will always fail the pipeline.
This breaks the reproducibility of our releases so I am hoping this is an unintended bug and not a design flaw. If there is another way to do what I'm expecting please let me know.
Thanks,
Rob
- relates to
-
JENKINS-65246 P4 Polling does not work correctly if changelist is specified during sync
-
- Closed
-
Hi mjdetullio, any initial thoughts on this? We'll soon be adding a new platform/compiler that I expect will run into this issue as well.
If we try to rebuild an old perforce label from before this platform/compiler was supported, jenkins will sync the latest revision of the pipelines and trigger the new pipelines that didn't exist in the tagged label, failing the release, so that'll break the backwards-compatibility of our release pipelines.
At the same time, we'll be dropping an older platform/compiler, so when we delete those pipelines and references to them we won't be able to rebuild older labels that did support that build since they'll be gone in the latest revision.