TeamCity Pipelines Help

Pipeline Settings

This document explains core Pipeline settings available in the settings pane. To view available Pipeline settings, click the Edit toggle next to its title.

Pipeline Settings

Repository

When you create a new Pipeline, TeamCity scans a VCS to gather a list of repositories that owned by or shared with you or your organization. Choose any repository to instantly create a Pipeline project that targets the default branch.

If you need to choose a different branch or specify which branches should be tracked or ignored, edit corresponding settings under the Repository section. You can use the asterisk ("*") character as a wildcard for any string. For example, the following setup allows TeamCity Pipelines to track all branches that start with "release-" (for example, "release-2023.05" or "release-2022.11"), and ignore the "sandbox" branch.

Edit repository settings

When viewing a Pipeline in a regular (non-edit) mode, use a selector in the page header to view/start runs for the target branch. To view all Pipeline runs regardless of a target branch, choose the <All branches> option.

Choose branch

You can click the side "+" button in the Repository section to add more repositories. This allows you to create Pipelines where different Jobs target different repositories. To select which repositories this particular Job should check out, toggle corresponding records in the Job settings pane.

Choose active repos

YAML Storage Location

You can choose whether an .yml configuration file with your pipeline settings should be stored directly on the TeamCity Pipelines server, or in the VCS. See this article for more information: Working with YAML.

Parameters

Parameters are name-value pairs. When TeamCity encounters the %parameter_name% syntax, it inserts the corresponding parameter's value instead. This technique can be helpful if you want to use aliases instead of actual values or pass the same value to multiple Steps.

In the Create a Multi-Job Pipeline tutorial, Job #2 runs the following script:

docker build . --pull --file ./docker/Dockerfile --tag myusername/myrepositoryname:mycustomtag docker push myusername/myrepositoryname:mycustomtag

If you create the "DockerRepo = myusername/myrepositoryname" and "ImageName = mycustomtag" parameters, you can rewrite this script as follows:

docker build . --pull --file ./docker/Dockerfile --tag %\DockerRepo%:%\ImageName% docker push %\DockerRepo%:%\ImageName%

Not only does this modification shorten your script body and make it more readable, but it also allows you to keep both values easily accessible. Should you require to change the repository or image name, you can do so from the Pipeline settings pane without tweaking script commands.

Secrets

Secrets are parameters whose actual values are stored securely by TeamCity and hidden away from web UI, logs, YAML configurations, and other locations. Use secrets to reference sensitive information (passwords, keys, access tokens, and so on) as parameters.

Auto-Run Pipeline

This section allows you to set up triggers that automatically start new builds when the specified conditions are met.

Build Triggers

Initially, only the On new changes option is present. When enabled, this option forces new builds to start whenever new changes in the remote repository are detected.

In addition to this trigger, you can schedule new builds to start at any given time. To do so, click the plus icon and specify the building schedule.

Integrations

Integrations are access points for 3rd-party services used by Jobs. Currently, you can set up the following integration types:

  • Docker — allows Jobs to log into private imag

  • NPM — allows Jobs to access NPM registries

  • Unity — required to build Unity projects using the Unity runner

Add Unity Integration

Once an integration is set up, any Job owned by this pipeline shows this integration under its settings. Use a toggle switch to allow a Job to use the corresponding integration. Note that you can also add new integrations when editing Job settings — these will be propagated to pipeline settings and become available for other Jobs in the same project.

Pipeline Integrations in Jobs

Docker

This integration allows you to sign in to your DockerHub account before a Job starts and log out when it finishes. For instance, this can be necessary if a Job calls the docker push command to upload an image to a DockerHub repository. See this tutorial for the example: Create a Multi-Job Pipeline.

NPM

Allows Jobs to access a private npm registry during a build (for example, to download a package).

Connection settings:

Setting

Description

Scope

The npm user/organization's scope to associate with the connected registry. If you want to use multiple registries per project, you need to specify a scope for each of them.

Leave empty if you want to use only one registry in this project. It will be used by npm/yarn commands by default.

Registry URL

The npm registry URL in the following format: http(s)://hostname[:port]. For example, https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm. The HTTPS schema is used by default.

Access token

The token, if it is required to access the registry. Leave empty for anonymous access. Note that token-based authentication could differ depending on a registry type. See instructions for npm Enterprise, Space Packages, or GitHub Packages.

Unity

Specify your account credentials and enter your licence key. This integration is required to run builds using the Unity runner and should be enabled in every Pipeline that uses this runner.

Last modified: 18 September 2024