We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

CI/CD with TeamCity From Beginner to Advanced

Aref Karimi

Are you looking to master Continuous Integration and Delivery (CI/CD) with TeamCity from beginner to advanced level? Then, look no further than this comprehensive online course.

Read more

Are you looking to master Continuous Integration and Delivery (CI/CD) with TeamCity from beginner to advanced level? Then, look no further than this comprehensive online course.

Designed to equip developers and DevOps engineers with the essential skills and knowledge required for implementing an efficient CI/CD system, this course covers everything from setting up TeamCity in a highly available and scalable manner to deploying software automatically with one click.

With a focus on modern, feature-rich tools, this course deep dives into various secure ways of connecting to your source control system(s), such as "git" (e.g. GitHub). You'll learn how to automatically validate pull requests and ensure they are ready to be merged.

You'll also discover how to compile your code, run its unit tests, measure code quality, and package build artifacts. But that's not all. The course also covers deploying the artifacts to target servers, which can be tricky and complicated. However, various use cases for deploying the final software product are provided to familiarise you with deploying in different ways, whether using Docker, AWS Code Deploy or a third-party tool such as Octopus Deploy.

No prior knowledge about TeamCity, CI/CD, or AWS is required to complete the course. Whether you're a beginner or an experienced professional, you'll gain valuable insights and skills that will enable you to optimize your software development processes.

Enrol now and take the first step towards becoming an expert in Continuous Integration and Delivery with TeamCity.

Enroll now

What's inside

Learning objectives

  • Learn how an efficient and scalable ci/cd system is implemented.
  • Install teamcity 2018 on a local machine or on a server farm
  • Setup static build agents as well as cloud build agents
  • Connect to source controls via https or ssh
  • Setup a project template to save time and effort
  • Parametrize build configurations
  • Add dynamics to your builds using system, environmental, and configuration parameters
  • Build and package your code into a teamcity artifact
  • Produce environment-specific configurations e.g. "web config transform" of asp .net projects (with visual studio or powershell)
  • Run unit tests and produce code coverage r`````eports
  • Run code analysis and code quality insection
  • Checking github merge pull requests automatically
  • Deploy your applications with aws code deploy
  • Manage and subscribe to notifications and alerts
  • Administer teamcity (e.g. manage users and groups)
  • Produce docker images and deploy to amazon elastic container services
  • Show more
  • Show less

Syllabus

Introduction

TeamCity is a powerful and user-friendly continuous integration and delivery (CI/CD) server that enables developers to automate their software builds, tests, and deployments. Developed by JetBrains, TeamCity offers seamless integration with a wide range of tools and platforms, making it a popular choice among software development teams of all sizes. With its intuitive web interface and extensive feature set, TeamCity provides a comprehensive solution for managing complex and distributed software projects. In this article, we'll explore TeamCity's key features and benefits and how it can help streamline your software development process.

Read more

TeamCity can automatically detect the code changes and compile and test the code changes to ensure they will not break the code in the main branch of the source control system. On top of that, a user can trigger a build and create code artifacts that can be deployed to a testing or production environment,

Installing and configuring TeamCity

TeamCity's architecture is designed to be highly scalable and flexible, allowing teams to integrate seamlessly with a wide range of tools and technologies. Whether you're a small startup or a large enterprise, TeamCity's CI/CD architecture can help you streamline your development process, increase efficiency, and deliver high-quality software faster than ever before.

TeamCity can be installed on Windows seamlessly. If you are a developer that uses Windows (i.e., you may be a dotnet developer), you may find yourself more comfortable setting up Jetbrains TeamCity on Windows.

In this lesson, I will explain the process of setting up TeamCity on Windows in detail.

For a Production environment, it is recommended to deploy TeamCity on a Linux machine as Linux uses the hardware resources more efficiently than Windows. In this lecture I will show you that how TeamCity can be setup on Ubuntu.

If you use a Mac computer and you want to deploy TeamCity on your local computer for the purpose of learning and practicing then you are covered by this lesson.

TeamCity Build Agents are an essential part of the TeamCity continuous integration and delivery system. These agents run the actual builds and tests, allowing for parallel and distributed builds, which significantly improves the overall build process efficiency. With TeamCity Build Agents, developers can quickly identify and resolve issues in the codebase, ensuring high-quality software releases. Additionally, these agents can be customized to meet the specific needs of a project, enabling teams to optimize their build environment fully. To achieve the best results with TeamCity Build Agents, it's essential to understand their capabilities fully and how they integrate with the overall build process.

TeamCity build agents can be either local (fixed) or cloud-based. Using AWS EC2, you can launch TeamCity build agents whenever you need them.

Installing TeamCity Build Agent on Windows
Installing TeamCity Build Agent on Ubuntu (Linux)
Working with Projects and Build Configurations

One of the key features of TeamCity is its support for projects, which allows teams to organize their builds and deployments into logical groupings. With projects in TeamCity, you can easily manage multiple build configurations and define dependencies. This not only makes it easier to keep your builds organized, but it also helps you identify and fix issues quickly. By leveraging the project functionality in TeamCity, you can increase your team's productivity and ensure that your software is always of the highest quality.

One key feature of TeamCity is its support for build configurations, which enable developers to define and manage different build environments for their projects. Build configurations provide a way to specify the build steps, dependencies, and settings required to build and deploy software in different scenarios. In this article, we will explore the benefits of using build configurations in TeamCity and provide practical tips for optimizing them to improve your software development process.

One critical aspect of using TeamCity is understanding and configuring Build Steps. Build Steps are the core components of your build process, allowing you to define the sequence of tasks required to compile, test, and package your software application. In this article, we'll explore the basics of Build Steps in TeamCity, including how to create and manage them effectively to help you get the most out of this powerful tool.

Build Artefacts are essential components of the software development process, enabling developers to create reliable and efficient build pipelines. In TeamCity, a build artifact is a file or set of files produced by a build that is stored in the TeamCity server and can be used for future builds, testing, or deployment. These artifacts can include compiled code, configuration files, test results, and other files necessary for the build process. By optimizing your use of build artifacts in TeamCity, you can improve your build and deployment process, accelerate your development workflow, and ensure that your software is delivered reliably and efficiently. This article will explore the benefits of using build artifacts in TeamCity and provide tips for optimizing your build pipeline.

Parametrising Build Configurations Part 1 is crucial to achieving a more efficient and effective software development process. By breaking down your build configurations into manageable, reusable components, you can reduce the manual effort required to build and test your code while also increasing the consistency and quality across your builds. This article will explore the basics of parametrising build configurations and provide some practical tips and best practices to help you get started. Whether you're a seasoned software developer or just starting, this guide will help you streamline your build process and improve your overall productivity.

Welcome to Part 2 of our series on parametrising build configurations! In Part 1, we covered the basics of build configurations and why they're important for software development. In this article, we'll dive deeper into the topic and explore the benefits of parametrising your build configurations. By making your build configurations more flexible and dynamic, you can save time and effort in the development process, improve the quality of your software, and make it easier to manage complex projects. So, whether you're a seasoned developer or just starting out, read on to learn more about the power of parametrising build configurations.

There are three use cases provided that show you how you can deploy your code in several different ways
Continues Deployment Use Cases - Introduction
If you use Amazon Web Services and deploy your software to EC2 instances then AWS Code Deploy is a great Continuous Deployment system for you. In this use case we explore Code Deploy.

This lecture will discuss a suggested deployment architecture based on AWS Code Deploy. However, it's usable if you do not use AWS. You can replace AWS CodeDeploy with your deployment tool of choice.

Uploading TeamCity artifacts to AWS S3 is crucial in optimizing your continuous integration and deployment (CI/CD) pipeline. Uploading TeamCity artifacts to AWS S3 streamlines your development workflow, enhances artifact management, and provides a scalable storage solution for your project. This integration ensures that your team can access, share, and deploy artifacts efficiently, ultimately leading to a more streamlined and productive software development process.

Installing the AWS CodeDeploy Agent is a crucial step in automating and streamlining your application deployment process on Amazon Web Services (AWS). This powerful tool enables you to consistently and efficiently deploy your applications to a variety of compute platforms.

Creating the IAM Role for AWS Code Deploy Agent

The "appspec.yml" file in AWS CodeDeploy is a critical component of the deployment process. This YAML-formatted configuration file is a blueprint for orchestrating deployments, ensuring seamless application updates on AWS infrastructure.

In "appspec.yml," you define deployment instructions, lifecycle hooks, and resource mappings. It bridges your application code and the deployment environment, enabling precise control over deployment phases.

Including the Deployment Scripts in Artifact

Creating AWS CodeDeploy applications is crucial in streamlining your deployment process on Amazon Web Services (AWS). AWS CodeDeploy is a powerful service that automates code deployments to various compute resources, including EC2 instances, Lambda functions, and on-premises servers.

Deploying the Artifact Using Code Deploy + Build Plan Dependencies
Octopus Deploy is a fantastic Continuous Deployment tool that abstracts the target environment from your Team City. In this use case we explore Octopus Deploy.
About Octopus Deploy
Installing Octopus Deploy on Windows Server
Working with Environments in Ocropus Deploy
Installing Octopus Deploy Tentacles on Windows
Installing Octopus Deploy Tentacles on Linux (Ubuntu)
Working with Packages in Octopus Deploy
Preparing TeamCity Artefact for Octopus Deploy
Publishing TeamCity Artefacts to Octopus Deploy
Defining the Deployment Process
Deploying Projects
This section includes more advanced topics about TeamCity
Cloud Build Agents in TeamCity
Build Triggers in TeamCity
Failure Conditions

One of the standout features of TeamCity is its Build Features functionality, which allows users to customize their builds with a range of add-ons and plugins. These features include code coverage analysis, static code analysis, and artifact publishing. By using Build Features in TeamCity, teams can tailor their builds to meet specific requirements and ensure their software is of the highest quality. With its easy-to-use interface and extensive library of plugins, TeamCity is the ideal solution for teams looking to optimize their development processes and streamline their workflows.

Connecting to GitHub via SSH keys is a secure and convenient way to access your GitHub repositories without the need to enter your username and password every time. Using SSH keys for authentication also reduces the risk of unauthorized access to your GitHub account. In addition, SSH keys can be easily managed and shared across multiple machines and users, making it ideal for collaborative projects. Following the simple steps to set up SSH keys for GitHub, you can enjoy a smoother and more secure experience while working on your projects.

Users, Groups and Roles in TeamCity

One of the essential features of TeamCity is its notification system, which helps keep team members informed about the status of their builds and deployments. With customizable notifications, developers can stay up-to-date with the latest changes in their projects and receive alerts when builds fail or succeed. This feature is critical for ensuring team members can quickly identify and fix issues, leading to faster and more efficient development cycles. By leveraging the notification system in TeamCity, teams can increase collaboration, productivity, and overall software quality.

Logging to TeamCity using Google (Open Authentication)

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops essential skills required for implementing an efficient CI/CD system, which is highly sought-after in today's software development industry
Taught by Aref Karimi, a recognized expert in CI/CD with TeamCity
Thoroughly covers various secure ways of connecting to source control systems like "git", ensuring adherence to industry best practices
Provides practical use cases for deploying software in different environments using Docker, AWS Code Deploy, and Octopus Deploy, bridging the gap between theory and real-world applications
Enhances knowledge of software development best practices, enabling learners to optimize their software development processes and deliver high-quality software faster

Save this course

Save CI/CD with TeamCity From Beginner to Advanced to your list so you can find it easily later:
Save

Reviews summary

Teamcity ci/cd basics

According to students, this course on TeamCity CI/CD is only of value to learners who are developing with AWS and Microsoft tools.
Not useful for non-AWS non-Microsoft users.
"As I don't use AWS and I don't program with Microsoft tools, the course contains lot's of useless information for me."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in CI/CD with TeamCity From Beginner to Advanced with these activities:
Follow a tutorial on setting up and using TeamCity
Following a tutorial will provide you with step-by-step instructions on how to set up and use TeamCity, ensuring a smooth onboarding experience.
Show steps
  • Locate and identify reputable tutorials on TeamCity setup and usage
  • Follow the instructions in the tutorial to set up and configure TeamCity
  • Complete the tutorial and practice using TeamCity
Form a study group with other students taking this course
Forming a study group will provide you with a collaborative environment to discuss course concepts, share knowledge, and support each other's learning journey.
Show steps
  • Identify other students taking this course through online forums or social media
  • Reach out to potential study partners and schedule regular meetings
  • Establish clear goals and expectations for the study group
  • Meet regularly to discuss course material, ask questions, and work on assignments together
  • Provide support and encouragement to each other
Show all two activities

Career center

Learners who complete CI/CD with TeamCity From Beginner to Advanced will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. They work to ensure that software is developed, tested, and deployed efficiently and reliably. This course is an excellent fit for DevOps Engineers because it provides a comprehensive overview of CI/CD, which is a key component of DevOps. By learning about CI/CD, DevOps Engineers can improve their skills in automating the software development process and delivering high-quality software products.
DevOps Consultant
DevOps Consultants help organizations to adopt and implement DevOps practices. They work with development and operations teams to improve the efficiency and effectiveness of software development and delivery. This course is an excellent fit for DevOps Consultants because it provides a comprehensive overview of CI/CD, which is a key component of DevOps. By learning about CI/CD, DevOps Consultants can improve their skills in helping organizations to adopt and implement DevOps practices.
Software Engineer
Software Engineers research, design, develop, and test software systems. This course may be useful to a Software Engineer because it discusses CI/CD, which stands for Continuous Integration and Delivery. CI/CD is a set of practices that help software development teams to automate the software development process, from building and testing to deploying and updating software applications. By learning about CI/CD, Software Engineers can improve the efficiency and effectiveness of their software development process.
Product Manager
Product Managers are responsible for planning, developing, and launching software products. They work with development and marketing teams to ensure that products meet customer needs and are successful in the market. This course may be useful to Product Managers because it discusses CI/CD, which can help to improve the efficiency and effectiveness of software development. By learning about CI/CD, Product Managers can make better decisions about product development and launch.
Data Engineer
Data Engineers design and build data pipelines. They work with data scientists and other engineers to ensure that data is available for analysis and use. This course may be useful to Data Engineers because it discusses cloud build agents, which can help to automate the deployment of data pipelines. By learning about cloud build agents, Data Engineers can improve the efficiency and effectiveness of their data engineering projects.
Cloud Architect
Cloud Architects design and develop cloud computing solutions. They work with cloud engineers and other professionals to ensure that cloud solutions are scalable, reliable, and secure. This course may be useful to Cloud Architects because it discusses cloud build agents, which can help to automate the deployment of cloud applications. By learning about cloud build agents, Cloud Architects can improve the efficiency and effectiveness of their cloud architecture projects.
Cloud Engineer
Cloud Engineers are responsible for designing and managing cloud computing systems. They work to ensure that cloud systems are scalable, reliable, and secure. This course may be useful to Cloud Engineers because it discusses CI/CD, which can help to automate the deployment and management of cloud applications. By learning about CI/CD, Cloud Engineers can improve the efficiency and effectiveness of their cloud operations.
IT Manager
IT Managers are responsible for planning, organizing, and directing the activities of IT departments. They work to ensure that IT systems are running smoothly and efficiently and that the organization's IT needs are met. This course may be useful to IT Managers because it discusses CI/CD, which can help to improve the efficiency and effectiveness of software development and delivery. By learning about CI/CD, IT Managers can make better decisions about IT investments and improve the overall performance of their IT departments.
Software Architect
Software Architects are responsible for designing and developing software systems. They work to ensure that software systems are scalable, reliable, and secure. This course may be useful to Software Architects because it discusses CI/CD, which can help to automate the software development process. By learning about CI/CD, Software Architects can improve the efficiency and effectiveness of their software development process.
Systems Engineer
Systems Engineers are responsible for designing, implementing, and maintaining computer systems. They work to ensure that computer systems are reliable, efficient, and secure. This course may be useful to Systems Engineers because it discusses CI/CD, which can help to automate the deployment and management of computer systems. By learning about CI/CD, Systems Engineers can improve the efficiency and effectiveness of their systems operations.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing software to ensure that it meets quality standards. They work to identify and fix bugs and defects before software is released to production. This course may be useful to Quality Assurance Analysts because it discusses CI/CD, which can help to automate the testing process. By learning about CI/CD, Quality Assurance Analysts can improve the efficiency and effectiveness of their testing process.
Technical Program Manager
Technical Program Managers are responsible for planning and managing software development projects. They work with development and operations teams to ensure that projects are completed on time, within budget, and with high quality. This course may be useful to Technical Program Managers because it discusses CI/CD, which can help to improve the efficiency and effectiveness of software development projects. By learning about CI/CD, Technical Program Managers can make better decisions about project planning and management.
Data Scientist
Data Scientists use data to solve business problems. They work with data to identify patterns, trends, and insights. This course may be useful to Data Scientists because it discusses cloud build agents, which can help to automate the deployment of data science models. By learning about cloud build agents, Data Scientists can improve the efficiency and effectiveness of their data science projects.
Release Manager
Release Managers are responsible for planning, coordinating, and executing software releases. They work with development and operations teams to ensure that software is released on time and with high quality. This course may be useful to Release Managers because it discusses CI/CD, which can help to automate the release process. By learning about CI/CD, Release Managers can improve the efficiency and effectiveness of their release process.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. They work with data scientists and other engineers to implement machine learning solutions. This course may be useful to Machine Learning Engineers because it discusses cloud build agents, which can help to automate the deployment of machine learning models. By learning about cloud build agents, Machine Learning Engineers can improve the efficiency and effectiveness of their machine learning projects.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in CI/CD with TeamCity From Beginner to Advanced.
Provides a comprehensive overview of DevOps principles and practices, and how to implement them in your organization. It valuable resource for anyone looking to improve their software development and delivery processes.
Provides a comprehensive guide to designing and building microservices. It covers everything from the basics of microservices to advanced topics such as service discovery and fault tolerance.
Provides a comprehensive guide to software coding. It covers a wide range of topics, from coding best practices to design patterns.
Provides a comprehensive guide to design patterns, a set of reusable solutions to common software problems. It covers a wide range of design patterns, from creational patterns to structural patterns.
Provides a beginner-friendly guide to Java. It covers a wide range of topics, from the basics of Java to advanced topics such as object-oriented programming.
Provides a comprehensive guide to Java concurrency. It covers a wide range of topics, from the basics of Java concurrency to advanced topics such as thread pools and synchronization.
Provides a comprehensive guide to effective Java programming. It covers a wide range of topics, from coding best practices to design patterns.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to CI/CD with TeamCity From Beginner to Advanced.
Continuous Integration and Delivery (CI/CD)
Most relevant
Continuous Integration and Continuous Delivery (CI/CD)
Most relevant
Master CI/CD for Android Developers
Most relevant
Hands-on with AWS: Software Development Practices
Most relevant
DevOps, CI/CD(Continuous Integration/Delivery) for...
Most relevant
Scaling up SharePoint Framework Development for...
Most relevant
Master CI/CD for Xamarin
Most relevant
Master CI/CD for React Native
Most relevant
Introduction to Jenkins
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser