In the context of pipeline as code, as an user, I have a lot of Jenkinsfile everywhere in my repositories and branches.
- The developers that deal with them as not necessarily familar with Jenkins, so those files should be high-level and understandable to those who don't know Jenkins.
- As an admin of Jenkins, I want to keep those files DRY by defining higher-level custom idioms
- As an intermediate user of Jenkins, I want to reuse building blocks of workflow that other knowledgeable people in the Jenkins community has developed.
Workflow plugin has one mechanism that touches (some of) this use case today, but it still need more improvements. Also, conversations with other Jenkins devs indicate that many want additional mechanisms to refer to reusable modules, and some has already developed additional plugins to do that.
As the Jenkins community, we need to build a small set of mechanisms to achieve 80% of these goals, while enabling other people to write plugins that support more unique use cases.
This ticket is a part of the 2.0 planning ticket to drive conversations about this and link to relevant activities.