Can jenkins the build-flow plugin trigger manual jobs? - jenkins

I am currently trying to create a build pipeline. The buildflow plugin looks interesting, but I cannot find any information on whether manual steps are possible.
Does anyone know if this is possible?

Does not seem this is possible yet, but you can look at the build pipeline plugin which supports manual steps. This is an alternative plugin for implementing build pipelines that also includes nice visualizations.

Related

File-based conditional steps in Jenkins Pipeline (like Make)

I'm considering the option to use Jenkins Pipeline to build data ETL pipelines. For the moment, it sounds more attractive, more modern and simpler to use than Make/Makefile.
However, I don't understand if the same Make/Makefile step-triggering behaviour is available, eg, let's say I have data2.xml built by the script csv2xml.sh, taking data1.csv as input: in a Makefile, it's pretty straightforward to declare that data2.xml must be built only if it doesn't exist or is older than data1.csv.
Is it possible to do the same in Jenkins Pipeline? Or am I looking at the wrong tool?
such steps are available under sh/bat execution, you can deal with your make/makefile as usual , Jenkins will just execute it and give you back results, afterwards inside pipeline you will decide what to do with it, e.g. upload to server or something similar

Jenkins configuration as code plugin vs Pipeline

I'm looking at options of configuring Jenkins as code. What I've found so far are those two options:
Configuration as code plugin (https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/README.md)
Pipeline (https://jenkins.io/doc/book/pipeline/)
What I don't understand yet is how those two work with each other? Do they both do the same and should I choose either one or another? Or maybe they do different things, in such case it would be great to know if those two can actually work together.
You can use pipeline to configure the build process as code.
You can use Jenkins Configuration as Code to configure the Jenkins instance as code.
You should also have a look at Job DSL Plugin to configure the jobs (everything but the build process) as code.
You may have a look at this repo to see it all work together: https://github.com/tomasbjerre/jenkins-configuration-as-code-sandbox

"Pipeline-as-Code" solution for TFS

Without switching over to Jenkins to do builds, is there (or will there be in the foreseeable future) a pipeline as code solution for TFS build?
EDIT: For clarity and future reference, I'm looking for a declarative method of defining a build, like appveyor or Travis or Jenkins do. Checkout the answer for the uservoice suggestion for this functionality.
There isn't any way to achieve this feature for now but we have already started working on this. Refer to this feature request on VSTS User Voice site for details: provide a way to version-control build definitions.

Jenkins Workflow Plugin Visualisation

I'm investigating the Jenkins Workflow plugin, so far I think its brilliant.
Is their a way to visualize the pipeline that is defined by the workflow script, I've come across something that CloudBees say they have but I'm presuming that isn't freely available, does anyone know of any others?
Jenkins Workflow visualization is now open sourced by Cloudbees as promised - https://github.com/jenkinsci/pipeline-stage-view-plugin
I just stumbled over this statement in a blog post from the Jenkins/Hudson founder, at https://groups.google.com/forum/#!topic/jenkinsci-dev/vbXK7JJekFw:
To reinforce the message that workflow is the future, CloudBees is going to open-source our workflow stage view plugin that was previously a part of CloudBees Jenkins Enterprise.
So it sounds like it's not freely available, but may be in the near future.

Can I force a plugin in Jenkins to run every single time any job runs

I have a plugin in Jenkins for Checkmarx which scans the source code for static code analysis. Is there to make that plugin be compulsory for every job in jenkins?
For that matter any plugin.
The answer, that you probably don't want to hear, is: No.
The only way you can enforce something to happen at all times, is by writing your own plugin for your own "Project type" (instead of Maven or Free-style), and then enforce that everyone uses your project type.
Found a implicit way to do it.
Using jenkins rest api(batch,python,ruby) - run through all job
config.xml.
Download the jobConfig.xml
Update the xml with the plugin(checkmarx in this case) config
Upload(POST) it back to jenkins server.
Run this on a schedule and it shall force everyone to use it.
As I said its an implicit way of doing it.
Checkmarx plugin provides a build step, so it will run every time the job runs. No need to force, if I understand the question correctly. Just make sure the "Skip scan if triggered by SCM Changes" flag is unchecked, which is the default. See more info about the plugin here: https://checkmarx.atlassian.net/wiki/display/KC/Configuring+a+Scan+Action
Downloading the config.xml for the job and posting it back is a bad idea for several reasons. First checkmarx does not require the code to be compiled so you are wasting precious cycles on a build slave. Second Jenkins jobs can do more than compile and they could deploy to production accidentally. Just don't do it. The best way to do what you want to do is to download the config.xml file and then extract the repository url. You can use the Checkmarx rest api to perform a scan. You can probably name the program in checkmarx in some way to relate it back to the jenkins job.

Resources