On Tue, Sep 15, 2015 at 9:24 AM, jcsirot <[email protected]> wrote: > I am currently working on the support of the workflow plugin for the ansible > plugin and I'm facing some questions.
Happy to help! BTW if you have a PR in progress, feel free to CC @jglick on it. Also if there is a JIRA issue open, mark with the `workflow` label, and make sure `jenkinsci/workflow-plugin/COMPATIBILITY.md` links to it. Did you attend my recent Office Hour on Workflow-related plugin development, or watch the recorded video? https://www.youtube.com/watch?v=4zdy7XGx3PA Also: https://github.com/jenkinsci/workflow-plugin/blob/master/COMPATIBILITY.md#plugin-developer-guide > 1. I wonder which versions of jenkins and workflow plugin I should use in > the pom.xml? For the moment I'm using Jenkins 1.580.1 and workflow 1.4.2 but > the docker workflow plugin is using Jenkins 1.596.1 and workflow > 1.7-alpha-1. Or the latest versions of Workflow (1.8+) requires 1.609.1+. Up to you; depends on your sensitivity to locking out users of old LTS lines, vs. being able to use features of, and test against, the latest upstream software. WF 1.4.2 + Jenkins 1.580.1 is the most conservative choice. > 2. Should I extend AbstractSynchronousNonBlockingStepExecution or > AbstractStepExecutionImpl? If you are indeed using WF 1.10+ with `AbstractSynchronousNonBlockingStepExecution` available, use it in preference to `AbstractSynchronousStepExecution` in most cases. > I'm not sure the clearly understand the impact of > synchronous and asynchronous executions on the workflow engine. An example > of AbstractStepExecutionImpl implementation would be greatly appreciated So if you *are* writing a custom step, you would use the more general `AbstractStepExecutionImpl` if your step needs to initiate some process, then wait (say, for an external service to call you back), then do something else later. You would also use it if your step `takesImplicitBlockArgument` (so invoked with a `{…}` closure). If the step just does something and exits as soon as it can, it is a synchronous step. > 3. Should I upgrade the Builder subclass to implement the SimpleBuildStep > interface? That is the easiest approach to compatibility. There is no need for any Workflow APIs at all. Your builder will behave exactly as it does in a freestyle build. You get less flexibility this way: for example, you lose the option of running the build step outside of a `node {}` block, even if it does not actually need a slave/workspace. -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr3qzE5AbOs-gY%2B9etdPSA%2Bb5GZhf1CyPLiyPu4MCYKqZQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
