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.
Related
I have a preflight job using perforce in which I retrieve a branch, unshelve (apply) a given changelist on it and then build to validate that the change in question has not broken the build. Very similar to what you would do for a GitHub Pull Request type of CI.
I use the official checkout() pipeline call to get the branch as it simplify dealing with the perforce creds, and that causes the jenkins build to include the changelog of that branch in the build. Yet, those are of no interest to me, as my interest is on the changelist I am unshelving on top of that branch.
Can I, from the pipeline script clear and fill the currentBuild.changeSet? If so, would someone have an example and which fields I can set under currentBuild.changeSet.items?
Or doing is only possible by going through the plugin road in the same way the p4/git plugins are doing this?
My advice, don't play with the currentBuild.changeSet. It also contains the changeset of the shared libraries you are using. I personally don't rely on that anymore.
However, here is an article on how to update the changeSet
https://support.cloudbees.com/hc/en-us/articles/217630098-How-to-access-Changelogs-in-a-Pipeline-Job-
Here is an exemple on how to implement that in a pipeline
https://issues.jenkins-ci.org/browse/JENKINS-58441
Finally, in an ideal world, don't share your jenkins with management or non developers/testers, share only a dashboard that is connected to a database that you filled with the relevant information you need. I use influxdb+grafana to do that with the influxdb plugin
We have JIRA, BitBucket and Bamboo, all integrated running locally on a server.
I would like to have Bamboo build my software when I decide to release it in JIRA.
There is a document available at Atlassian that describes this:
https://confluence.atlassian.com/jirasoftwarecloud/running-a-bamboo-build-when-releasing-a-version-764478184.html
The problem is that my interface doesn't have the Build Variables as described in the documentation. This is crucial, because I want JIRA to pass the version number and Bamboo to use that as a variable for different tasks.
Here is a screenshot of the interface:
I realise that the docs are for JIRA cloud, but seeing that the same interface is available on the server edition, I would expect to be able to accomplish the same thing.
We use JIRA version 7.9.2 and Bamboo version 6.5.1
Does anyone know why the Build Variables might be missing, or how else to tackle passing variables from JIRA to Bamboo in a self-hosted situation?
I worked around this by using the "Dump variables to log" job to check what variables are available. As it turns out the JIRA version is available when a build is triggered through the JIRA "release" button.
The variable I could use is bamboo.jira.version.
This doesn't solve the actual problem of defining arbitrary variables in JIRA and passing them on to Bamboo, but it solves the problem in my use-case, as I was looking to pass the release version.
Update:
I have an offical answer form Atlassian regarding this question.
I was under the impression that the custom variables you want to pass are defined on the release screen in JIRA itself.
As it turns out, variables are defined on the plan or global level in Bamboo, and they can then be used/overridden on the release screen in JIRA.
It works now!
I am trying to create a build in Jenkins, from certain changesets made in TFS.
I want to be able to decide which changesets should go in the build and which should be excluded.
I saw an earlier question How do you build from a specific TFS 2008 Changeset in Jenkins? which provided the answer using labels. Haven't tried it yet. But the question is 3 yrs old and I wanted to know if anyone has found an answer.
Any help would be appreciated. If it is not possible in Jenkins, please suggest any other tool that provides such functionality.
Atlassian Bamboo with TFS Repository Plugin
provides a solution for you :)
https://bitbucket.org/stellaritysoftware/tfs-repository-plugin/wiki/Home#!34-build-from-a-label-or-a-revision
BTW I've been looking around the tfs-plugin and although the docs doesn't mention "specific checkout by changeSet" I think there is a good chance that setting the VERSION_SPEC variable to change-set value, might do the trick for you.
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.
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.