TeamCity
Powerful CI/CD for DevOps-centric teams
Webinar Recording: Continuous Integration with JavaScript
The recording of our December 2 webinar with Wesley Higbee, Continuous Integration with JavaScript, is now available on JetBrains YouTube channel.
In this webinar you will learn about building and deploying JavaScript applications with TeamCity. Wes explains why we need CI and then covers the whole workflow for the modern JavaScript application: building the app, linting, unit testing and deployment. He uses tools like Gulp, SystemJS, TSLint and Karma during his demo, but in the same way you can configure any command-line tools to run on TeamCity.
You can reach Wes on Twitter @g0t4, read his blog at weshigbee.com and learn more about his company Full City Tech. Wes has also recently released a new video course on SystemJS.
And here’s a short Q&A section based on the questions asked during the webinar:
Q: Can TeamCity reject commits, if the build steps (e.g. running tests, bundling and minifying) are failing?
A: TeamCity can’t reject commits, because a commit done in VCS and TeamCity does not roll-back anything in VCS. But if you make a commit in a branch, you can configure TeamCity to run builds in such branches. Or you can use the so-called Remote run, i.e. send a patch to a server to test it without making a commit. For remote run, you need an IDE with the TeamCity plugin. You can learn more about it on this page.
Q: How do you manage the versioning of your artifacts?
A: If you’re using TeamCity built-in artifact storage, then artifacts are tied to a build. New build means new version of artifacts. If you want some previous version, you can locate it by build number.
Q: So, can the artifacts also be stored in source control?
A: This is usually not recommended, as artifacts can be quite large. TeamCity provides convenient storage of artifacts built into the product. But nothing restricts you from using any other storage if you can publish files there.
Q: Can artifacts be uploaded to remote storage, yet still be available via link, given that it’s possible for the user to retrieve them via http?
A: You can have a build step which uploads artifacts to any place you need. With the help of external plugins you can add build steps like ftp and scp which can simplify this task.
Q: What happens if the artifacts have been cleaned up if you want to rollback a deployment?
A: Then you have to rebuild the build produced these artifacts and then promote it to deployment configuration.
Q: What in your opinion is the biggest advantage of TeamCity that would make a developer team want to switch from Jenkins?
A: Out of the box experience. It just works; no need to search for additional plugins as everything you need is most likely already there. It also comes with decent IDE integration, on-the-fly reporting of results and other unique features. Plus it has a free version as well (limited to 20 build configurations).
Q: Are there any charting options to track inspections/tests completion, etc. from build to build in a visual way?
A: You can configure a chart in TeamCity to show the number of inspections vs. time.
Q: Is it a realistic option to run TeamCity Server and Agent for Node.js project on my MacBook Pro?
A: This depends on the complexity of your build: if it does a lot of CPU-intensive tasks or requires lots of memory, or if the repository is large, you can face some performance issues. On their own, TeamCity and the agent should not use too many resources.