The recording of our April 7th webinar, Getting Started with TeamCity, is now available on JetBrains YouTube Channel.
Learn how to get started with TeamCity for implementing continuous integration with Wes McClure of Full City Technology Co. In addition to the video there’s a wealth of information in the Q&As section below.
Select questions and answers from our webinar:
Are build configurations deactivateable/activateable?
You can pause / unpause build configurations in TeamCity
Something similar to Hudson Tray Tracker for Jenkins?
TeamCity has Windows Tray Notifier which serves similar purpose.
Custom build steps? For example, we have a custom MSBuild task (C# .dll) that sets version numbers. How would we leverage this in TeamCity?
TeamCity can pass any parameter to your build script. There is a custom build dialog where you can specify custom parameters, dependencies, changes, etc.
How would you roll back a deploy that failed or had issues?
If your build scripts handle rollback gracefully, it’s not a problem. You can just promote some of the previous builds to Deliver configuration.
How would you handle code signing? Configure it in Visual Studio…or make it a build only process?
If you need code signing – you should do that in build scripts, TeamCity itself does not handle it.
How do you handle NET assembly version increment? Does TC support it out of the box?
TeamCity has Assembly info patcher build feature exactly for this purpose, read more.
No need to set working directory?
Working directory is the same as checkout dir by default, but you can change it if needed.
How easy is it to switch between versions of Java between build projects or builds, and also, different versions of Maven?
TeamCity build agent detects installed Java automatically and reports it to the server. Then in TeamCity web interface you can choose specific version of Java available on the agent. There is always <Custom> option allowing to choose some custom Java. TeamCity also comes with a few versions of Maven out of the box – Maven 2, 3 and 3.1, so there is no need to install them on agents. Custom Maven installations are supported too.
The agent install is a manual process on the backend?
Agent should be installed manually and authorized to run builds. Agent upgrades, distribution of plugins among agents are handled automatically by TeamCity itself.
Can you elaborate on snapshot versus artifacts dependencies use cases?
Please refer to our documentation.
How to get build configurations/steps to run in parallel?
Build configurations can run in parallel on different agents, build steps can be executed sequentially only.
Does TeamCity integrate with RedGate SQL Server Source control?
No, but RedGate provides some other TeamCity plugin.
How can I deploy result artifact to some Application server? Maybe run some script on the test server or just copy artifact there?
It depends on the Application server itself. Some application servers provide tools for deployment, or support REST API. TeamCity can handle different ways.
How is using Promote different than running the Deliver build manually?
Promote ensures that exactly the same build will be used by Deliver. If you run Deliver itself, it can rebuild Promote because new changes could be detected while build was in queue. You can’t see it in the demo project but this happens all the time in real life.
So if I had one more step (build config) after Deliver, would promote be able to trigger Deliver and the step after it as well?
If you promote to this configuration – yes. Or you can promote to Deliver first, and then promote build in Deliver to the next configuration.
Is promote different from running a custom build from the Build Chains graph?
No, it’s the same, just simpler, because you don’t have to choose correct dependencies and revisions yourself, TeamCity will do it for you.
If I need to create a Hotfix branch on one project of the hierarchy, is there a way of cloning the whole dependency chain and change the branch on that one project? Or is there an alternative way to deal with this scenario?
You can’t clone the chain, but you can copy project containing this chain. We recommend to parametrize branch names in build configuration settings, i.e. use something like %branch% and then specify different values for branch parameter in different projects or configurations.
Can you do a checkout in a specific folder on the agent?
Yes, you can, although in an ideal world build should not depend on specific paths on disk. Also in case of specific checkout directory TeamCity won’t be able to reuse this directory among other build configurations with the same settings thus reducing the disk space requirements.
Can I ask you to review the differences, not just the advantages, if using TeamCity over Jenkins?
To review differences one should be expert in both products. We’re experts in TeamCity, but not in Jenkins. And as such our comparison will always be biased.
Can you set email notifications about broken build?
Yes of course, email, jabber, or notification in IDE are all supported.
Can you display some custom report? e.g. some xml transformed to html? (for example code metrics saved to xml and transformed to report via xslt)
Custom reports can be easily integrated into the TeamCity web interface, read more.
Best practice suggestions about upgrading to a new major version? A different upgrade testing environment prior to upgrading your main server, etc?
If it is critical for you to reduce downtime, you can install one more server with a backup from your current production server and upgrade it first. Then check how critical builds work. You can use evaluation license for this server. See this page for more.
About artifacts, are can they point a file on the agent?
You can publish any file produced by a build as artifact.
Can it be configured to open the folder?
Wildcards are supported, so you can publish content of some directory on agent. You can even ask TeamCity to pack it for you in zip: some_dir_on_agent/** => artifact.zip
About the Presenter:
Wes McClure is passionate about helping others achieve remarkable results with technology. Wes launched Full City Tech Co to leverage his expertise to help companies rapidly deliver high quality software to delight customers. Quality is achieved through collaborative practices like Continuous Integration. Wes has a strong background in using Continuous Integration with TeamCity to bring quality to the table. You can reach him by email.