In this example, I want to execute my own a custom task which will write some text into the event viewer as "My Custom Task is executed" & this custom task has to be executed after the TFS build succeeds
To proceed on we have to handle the below step:
- Create a class library to handle "Custom Task"
- Create "TFS Build Agent"
- Create "New Build definition"
- Run TFS build
Step 1: Custom Task
Writes text into event viewer after TFS build succeeds. This is to be implemented in Class Library.
- First, create a Class Library & name it "MySample"
- Add a class called MyTask and add a flowing reference to the library
- Microsoft.Build.Framework;
- Microsoft.Build.Utilities;
- System.Diagnostics;
- Now inherit the class "TASK" as shown below
- public class MyTask : Task
- {
- public override bool Execute()
- {
- EventLog log = new EventLog();
- log.Source = "Application";
- log.WriteEntry("Step 2 Executed");
- return true;
- }
- }
Note: In the above code, we are overriding the execute method & implementing
our own implementation.
- Now compile it and as usual, it will generate MySample.dll
Step 2: Create a TFS Build Agent:
Before working on a TFS build definition we need to have a TFS build agent.
Let's follow the below steps to create a build agent
- Connect to TFS Server from Team Explorer
- Right-click on the Build folder & select "Manage Build Agent"
- Now click on the "New" button in the build agent window & provide the below necessary information
Display Name: Name of your choice
Computer Name: TFS Server name
Communications port: TFS server port
Working directory: TFS build will create build files at this location. So provide the path of the TFS server's physical path
Agent Status: Enabled
- Now click the "Ok" button
Step 3:Create TFS Build Definition:
- Connect to TFS Server from Team Explorer
- Right-click on the Build folder & select "New Build Definition"
- A new window will open up as shown below
General - Build definition name: Enter build definition name
- Select workspace
Status: Active
Source Control Folder: TFS server path project
- Select "Project file", click the create button
- MS Build Project file creation wizard will open up. In this select the item as shown below
- Click next and leave other options as is & click the FINISH button.
- Leave retention policy section as it is
- Now select Build Defaults
Build Agent: Should select build agent name that we have created in
Step 2 Create TFS Build Agent
Builds will be staged: should provide a shared path which TFS server has access
- Trigger section allows configuring TFS to build to run at those intervals
- Finally, click the ok button
Step 4: Run TFS Build
- Connect to TFS Server from Team Explorer
- Expand Build folder & right build definition name which you want to run. In our case right-click "MyTestBuildDefinition" & select Queue new build definition
- Select as shown below
- Build Definition name
- Build Agent name
- Drop folder
- Priority
Now by this time, build definition would be stated up & know the processing right click on build definition name & select open
Finally, you should be seeing build succeeded if everything goes fine & now go the path (entered while creating build definition & build agent) to see the build files.
Happy coding, Hope this helps!