jenkins-workflows
Purpose
To be used in conjunction with the jenkins-yml-workflow repository in a Jenkins repository. These are steps to take for interacting with a specific tool.
Creating Workflows
Basic structure of how the file should be laid out can be found in the example.groovy file. There are some important things to remember here:
- The 
return this;is required for Groovy to load anything. - Methods must be using 
public,defis not sufficient due to the way the Groovy load method works. - The workflowLibs when added as a global library is running outside of the Jenkins sandbox. Workflows will be inside the sandbox though so non white-listed methods cannot be used without approval.
 - Private methods are perfectly acceptable as long as they are to be called within a public method.
 
Where to add new workflows
If the tool can be used for multiple languages (Make/Mage) it should be grouped with similar tools if possible, for instance Glide and Godep are tools for Golang dependency management so they would go in a golang.groovy file. Make and Mage (a makefile alternative that allows you to use Go instead of Bash) would go into a build.groovy. If you are unsure of where to put a new workflow feel free to open an issue and we can help determine the best place for it.
Locking to a release
We highly suggest locking to a release so you always get consistent build results. We will never modify tags or commit SHAs after a release happens. This also helps allow the workflows to evolve rapidly without breaking you. Patch versions will never have breaking changes but major/minor could though we will make efforts to mitigate this as much as possible.
Example of how to lock to a release:
pipelines:
  tools:
    jenkins:
      workflows:
        tag: 0.1.0 # Example, check the latest release from https://github.com/concur/jenkins-workflows/releases
Contributing
We welcome your contributions and request that you please make sure that you look at the contributing guidelines before contributing. If you have a question on a feature proposal, or a bug fix that you'd like to address, please create an issue so that contributors can discuss and collaborate.