Build your GCC C/C++ app
TFS 2017
This article applies to TFS 2017.2 and higher.
Note
In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.
Azure Pipelines and Team Foundation Server (TFS) provide a highly customizable continuous integration (CI) pipeline to automatically build your C/C++ application whenever your team pushes or checks in code. In this quickstart you learn how to define your CI pipeline for a C/C++ application compiled with GCC/g++.
Prerequisites
You need an Azure DevOps organization. If you don't have one, you can create one for free. If your team already has one, then make sure you're an administrator of the Azure DevOps project that you want to use. (An Azure DevOps organization is different from your GitHub organization. Give them the same name if you want alignment between them.)
While the simplest way to try this quickstart is to use an Azure DevOps organization, you can also use a TFS server instead of an Azure DevOps organization. Make sure that you have configured a build agent for your project, and that you have GCC installed on the agent machine.
Get sample app code
You can copy this sample app code directly into your version control system so that it can be accessed by your CI build pipeline. To get started, copy this URL to your clipboard:
https://github.com/adventworks/cpp-gpp-sample
To import the sample app into a Git repo in TFS:
On the Code page for your project in TFS, select the option to Import repository.
In the Import a Git repository dialog box, paste the above URL into the Clone URL text box.
Click Import to copy the sample code into your Git repo.
Set up continuous integration
A continuous integration (CI) pipeline automatically builds and tests code every time a team member commits changes to version control. Here you'll create a CI pipeline that helps your team keep the main branch clean.
Create a new build pipeline.
Under the Build and Release menu, select Builds then New to create a new build definition.
Select a source and chose your team project, repository, and default branch then select Continue.
Select a template or start with an Empty process to create your build pipeline.
In the right panel, select Empty, and then click Apply. This template allows starting from scratch and adding your own build tasks.
For the Agent pool:
Azure Pipelines: Select Hosted Ubuntu 1604 or Hosted macOS. This uses an Azure Pipelines pool of agents that have the software needed to build your app.
TFS: Select a pool that includes a Linux or macOS build agent.
Click Get sources and then:
Observe that the new build pipeline is automatically linked to your repository.
Click the + icon on Job 1 of the build and then:
TFS 2017.2
Search for the Command Line task and click Add to add it to your build.
Click the Command Line task and set its field values as follows:
Field Value Display name Build C++ application
Tool make
Finish
Click the Triggers tab and enable the Continuous Integration trigger. This will ensure that the build pipeline is automatically triggered every time you commit a change to your repository.
Click Save & queue to kick off your first build. On the Save build pipeline and queue dialog box, click Save & queue.
A new build is started. You'll see a link to the new build on the top of the page. Click the link to watch the new build as it happens.
View the build summary
Once the build completes, select the build number to view a summary of the build.
Notice the various sections in the build summary - the source version of the commit in build details section, list of all associated changes, links to work items associated with commits, and test results. When the build is automatically triggered by a push to your Git repository, these sections are populated with all the relevant information.
Publish your build output
Add the Copy Files and Publish Build Artifacts tasks to your build to save its compiled output as a build artifact.
Next steps
You've just put your own CI pipeline in place to automatically build and validate whatever code is checked in by your team. You can also automatically deploy your app. To learn more, see one of these topics:
You can also modify this build pipeline to meet the needs of your team.