Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

TFS build selection list instead of latest build



  • We are using BuildMaster as a deployment tool, that picks up builds from a Team Foundation Server dropfolder. At the moment, we are picking up the latest green build, but I want to be able to support a pick and choose scenario as well, since we are deploying to multiple environments and need to be able to pinpoint certain builds to use for deployment to certain environments. I believe that I can crate a variable and pick build by freeform text, but that requires me to go to the TFS environment to find the build to use. When I install a new application in BuildMaster, buildmaster is able to provide a list of all available TFS build definitions, and when I get the latest build in my "Create Artifact from TFS Build Output" action, there must be some interaction going on with the TFS server, that lists all builds and figures the latest green one. So could there be a variable to use in order to get a dropdown list of builds for the specific build definition from TFS?

    Product: BuildMaster
    Version: 4.1.7



  • It appears you're right, the Create TFS Build action does not use the same logic as the recipe does. While we could add that functionality to the action, there is no variable for this per se, but you could always create your own variable (with a special variable setter) that queries these values.



  • I am not sure how variable setter works, would that be by using the API? Also, is there a variable that provides the latest green TFS build? I have verified that I can use a free-text variable where the deployment person can past a specific build number prior to running the deployment. The problem is that in most cases, I want to use latest TFS build and not a pick and choose one. If there is no variable that can get the latest TFS build, I need to duplicate the deployment plan and have one for latest build and another for manually chosen build.



  • Coincidentally, we also recently were wishing for a "TFSBUILD" variable so BuildMaster would know which TFS build (e.g., $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)) it was deploying. We don't really need to cherry-pick TFS builds per deployment, but it would be great if the deployment knew which TFS build it was getting. It must know... there just isn't a way that I can think of to access it.



  • Ahh I see what you mean now. If you already have your own custom extension, you can add a single line somewhere around here: https://github.com/Inedo/bmx-tfs2012/blob/master/CreateTfsBuildOutputArtifactAction.cs#L85

    that does something like this:

    this.Context.Variables["MyTfsVariable"] = build./* desired property */


  • I know this is a really really old thread but I thought I would share something that we did for our continuous integration builds / deployment process.

    Every build drop location for each build definition will contain a "Latest" folder in addition to the "versioned" folders that contains the output of each build. At the end of our build template, we perform the standard activity of placing the build artifacts in the versioned dropped location. For SUCCESSFUL builds, we copy the contents of the drop location and update the "Latest" folder. If a build fails for some reason, we leave the contents of the Latest folder alone.

    Our nightly automated package and deployment processes (for automated integration testing) have been simplified to always pull from the "Latest" folder. They can determine if the folder contains the same version as the last one or if it's been updated.



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation