Интеграция cake и teamcity

Преимущества, из-за которых стоит купить JetBrains TeamCity

JetBrains TeamCity – это программный продукт, представляющий собой интегрированную среду для коллективного создания программного обеспечения и систему управления процессом разработки. Он автоматизирует основные процессы совместной разработки, в том числе процессы запуска тестов, анализа исходного кода, интеграции и надстройки кодовых изменений, заданных разработчиками, управления сборками. TeamCity координирует их, ускоряя процесс и обеспечивая эффективное взаимодействие членов команды.

JetBrains TeamCity позволяет обеспечить интеграцию и контроль за модификациями кода в процессе коллективной работы. Это решение осуществляет контроль над комплексной работой тестов, исправлением ошибок и производит генерацию оповещений. Мощная функциональность TeamCity позволяет осуществлять эффективное управление процессом разработки и использовать все возможные типы конфигурации для любых проектов.

Reading Logs

Each message has a timestamp and level (, , , ).

Example:

INFO — s.buildServer.SERVER — Agent vmWin2k3-3 has been registered with id 19, not running a build

  • means an operation failed and some data was lost or action not performed. Generally, there should be no ERRORs in the log.

  • generally means that an operation failed, but will be retried or the operation is considered not important. Some amount of WARNs is OK. But you can review the log for such warnings to better understand what is going OK and what is not.

  • is an informational message that just reports on the current activities.

  • is only useful for issue investigation, for example, to be analyzed by TeamCity developers.

Installing Several Build Agents on the Same Machine

You can install several TeamCity agents on the same machine if the machine is capable of running several builds at the same time. However, we recommend running a single agent per (virtual) machine to minimize builds cross-influence and making builds more predictable. When installing several agents, it is recommended to install them under different OS users so that user-level resources (like Maven/Gradle/NuGet local artifact caches) do not conflict.

TeamCity treats all agents equally regardless of whether they are installed on the same or on different machines.

When installing several TeamCity build agents on the same machine, consider the following:

  • The builds running on such agents should not conflict by any resource (common disk directories, OS processes, OS temp directories).

  • Depending on the hardware and the builds’ specifics, you may experience degraded building performance. Ensure there are no disk, memory, or CPU bottlenecks when several builds are run at the same time.

  • Preferably, agents should run under different OS users.

After having one agent installed, you can install additional agents by following the regular installation procedure (see an exception for the Windows service below), but make sure that:

  • The agents are installed in separate directories.

  • The agents have the distinctive and directories in the file.

  • Values for the and properties of are unique.

  • No build configurations specify the absolute path to the checkout directory (or, if necessary, you can enable the «clean checkout» option and make sure they do not run in parallel).

Usually, for a new agent installation you can just copy the directory of the existing agent to a new place except its , , , and directories. Then, modify with the new and values. Clear (delete or remove the value) the property and make sure the and are relative/do not clash with another agent.

Using Build Parameters in the Build Scripts

All build parameters starting with the prefix (environment variables) are passed into the build’s process environment (omitting the prefix).

All build parameters starting with prefix (system properties) are passed to the supported build script engines and can be referenced there by the property name, without the prefix. Note that this syntax will work in the build script (not in TeamCity settings):

  • For Ant, Maven, and NAnt, use

  • For MSBuild (Visual Studio 2005/2008 Project Files), use . Note that MSBuild does not support names with dots (), so you need to replace with when using the property inside a build script.

  • For Gradle, the TeamCity system properties can be accessed as Gradle properties (similar to the ones defined in the file) and are to be referenced as follows:

    name allowed as a Groovy identifier (the property name does not contain dots):

    println «Custom user property value is $\{customUserProperty\}»

    name not allowed as a Groovy identifier (the property name contains dots: for example, build.vcs.number.1): project.ext

When TeamCity starts a build process, the following precedence of the build parameters is used (those on top have higher priority):

  • parameters from the project- and agent-level build parameters file

  • predefined parameters

  • parameters defined in the Run Custom Build dialog

  • parameters defined in build configuration settings

  • parameters defined in a project (the parameters defined for a project will be inherited by all its subprojects and build configurations; if required, you can redefine them in a build configuration)

  • parameters defined in a template (if any)

  • parameters defined in the agent’s file

  • environment variables of the build agent process itself

The resultant set of parameters is also saved into a file which can be accessed by the build script. See the system property or environment variable description in Predefined Build Parameters for details.

Скомпилировать проект

Поскольку у нас проект на ASP.NET в виде Solution’а из Visual Studio – тут тоже было всё просто.

Идём в меню «Build Steps» (Шаги сборки), выбираем runner type (а их тут действительно много) и останавливаемся на MSBuild. Почему именно на нём? Он даёт достаточно простой способ описать процесс сборки, даже достаточно сложный, добавляя или удаляя различные шаги в простом XML-файле.

Далее всё элементарно.

Build file path – путь к sln-файлу.MSBuild version, MSBuild ToolsVersion и Run platform выбираем под требования своего проекта.

Если в проекте несколько конфигураций, то можно использовать опцию Command line parameters для ввода примерно такого ключа:

где Production заменить на нужный конфиг.

REST Authentication

You can authenticate in the REST API in the following ways:

  • The preferred way to access REST API is by using the . Provide your personal TeamCity access token generated on My Settings & Tools | Access Tokens in the HTTP header . For example:

    curl —header «Authorization: Bearer <token-value>» http://teamcity:8111/app/rest/builds

  • Using basic HTTP authentication (it can be slow with certain authentications, see below). Provide a valid TeamCity username and password with the request. You can force basic auth by including before the part, e.g. .

  • Using access to the server as a guest user (if enabled) include before the part, e.g. .

  • If you are checking REST requests from within a browser, and you are logged in to TeamCity in the browser, you can just use URL, e.g. .

Authentication can be slow when a basic HTTP authentication with a non-built-in module is used. If you want to use basic HTTP authentication instead of token-based one, consider applying the for reusing authentication between sequential requests.

If you perform a request from within a TeamCity build, for a limited set of build-related operations (like downloading artifacts) you can use values of system properties as basic credentials (within TeamCity settings you can reference them as and ).

Within a build, the request for current build details can look like:

Build Configuration State

A build configuration is characterized by its state visible in the UI which can be paused or active. By default, when created all configurations are active and can be paused manually as described below or automatically if the project is archived.

If a build configuration is paused, its automatic build triggers are disabled until the configuration is activated. Still, you can start a build of a paused configuration manually or automatically as a part of a Build Chain. Besides, information on paused build configurations is not displayed on the Changes page.

It is possible to manually pause all or selected build configurations for a project.

Автоматизирование запуска анализатора

Для автоматизации процесса анализа в CI (Continuous Integration) необходимо запускать анализатор как консольное приложение.

В TeamCity необходимо создать Build Step со следующими параметрами:

  • Runner type: Command Line;
  • Step Name: <name>;
  • Run: Custom script;
  • Custom script: <script>.

В скрипте напишите команду анализа (и команду конвертации отчёта в нужный формат).

Примеры команд для запуска анализатора, обработки результатов анализа и интеграции в сборочные системы приведены на следующих страницах документации:

  • Как запустить PVS-Studio в Linux и macOS;
  • Как запустить PVS-Studio в Windows;
  • Как запустить PVS-Studio Java.

Залить изменения на тестовый сервер

Сервер, на котором находится агент TC, и сервер, на котором установлен IIS, – разные серверы, причем, более того, находятся они в разных сетях. Поэтому файлы нужно как-то на конечный сервер доставить. И вот тут решение выбрано, может, не очень элегантное, зато крайне простое. Используем заливку через FTP, причем делает сие за нас MSBuild.

Схема такая:

  1. настраиваем на сервере FTP аккаунт для заливки файлов. Для дополнительной безопасности можно запретить заливку для всех IP, кроме внутреннего, если TC-сервер лежит во внутренней сети, конечно;
  2. устанавливаем на агента MSBuild Community Tasks, чтобы получить возможность использовать задачу «Залить по FTP». Качать тут;
  3. подготовить файл-сценарий для MSBuild, который будет производить следующие действия:
    1. сборка приложения во временной папке;
    2. подмена конфигурационного файла;
    3. заливка файлов по FTP.

А так – задание по его вызову:

Недостаток решения – заливаются ВСЕ файлы, а не только новые изменившиеся. На проекте с кучей файлов верстки или множеством модулей это может стать проблемой из-за затрачиваемого на заливку времени.

Ещё один замеченный недостаток – при встрече файла с нелатиницей в названии падает с ошибкой. Латиница и буквы/цифры обрабатываются нормально. Ноги этой проблемы, похоже, растут из специфики протокола FTP: тот основан на ASCII, но, как именно кодировать не ASCII-символы, он не описывает, предлагая «делать так, как будет понимать ваш сервер». Соответственно, чтобы вылечить проблему, не меняя схему, нужно пропатчить MSBuild Community Tasks, благо, исходники открыты. Ну, или воспользоваться альтернативным способом заливки файлов, например через WinSCP.

General Logging Description

TeamCity uses log4j library for the logging and its settings can be .

By default, log files are located under the directory.

The most important log files are:

General server log

Log of user-initiated and main build-related events

Log of VCS-related activity

contains clean-up-related log

Notifications-related log

(off by default) Cloud-integration-related log

(off by default) Log of SQL queries, see

(off by default) Log with messages related to NTLM and other authentication for HTML requests

(off by default) Log of messages sent by the server to agents and IDE plugins via XML-RPC

(off by default) Log related to individual file content requests from VCS

(off by default) REST-API related logging

(off by default) Notification templates processing-related logging

(off by default) Logging related to agent push operations

(off by default) Logging related to personal builds processing on the server

(off by default) SVN integration log

(off by default) TFS integration log

(off by default) StarTeam integration log

(off by default) ClearCase integration plugin log

LDAP-related log

NuGet-related log

(off by default) logs of back-up/ restore/ migration performed with

(off by default) contains extended information on possible data truncation during back-up/ restore/ migration performed with maintainDB tool

(off by default) contains information on synchronization of the project settings with the version control

logs related to communication between browsers and the TeamCity server using the

logs related to communication between TeamCity and configured issue tracker

Other files can also be created on .

Installing Additional Build Agents

1. Install a build agent using any of the following options:

  • (Windows only)

  • (any platform): minimal and full-packed ZIP archives ara available

  • via the option to prepare a Docker container based on the official TeamCity Agent image

2. After installation, configure the agent specifying its name and the address of the TeamCity server in the file.

3. the agent. If the agent does not seem to run correctly, check the agent logs.

When the newly installed agent connects to the server for the first time, it appears on the page, tab visible to administrators/users with the permissions to authorize it. Agents will not run builds until they are authorized in the TeamCity web UI. The agent running on the same computer as the server is authorized by default.

The number of authorized agents is limited by the number of agents licenses on the server. See more under Licensing Policy.

New look, new feel, fewer clicks

TeamCity UI is getting a major overhaul, and here’s a first taste of what you’re going to
get in this version.

Not only have we improved the look, but we’ve also updated the underlying technology stack
so now the UI works as a single-page application, which means you can access parts of it
faster and all the changes appear instantly. See the
TeamCity UI roadmap to stay up to date with all the planned changes.

In 2019.1, we are targeting the pages related to working with projects and build
configurations.

Sidebar

You can now access and search all your projects and build configurations via a sidebar. Tag build
configurations or whole projects as your favorites, and they will always be available at the top of
the list in the sidebar. You can also find extra bits of handy information there, such as new
changes, build status, new tests, and running builds.

Project overview

The new project overview presents you with a dashboard-style view over your build configurations.
Each configuration gets its own card which displays a histogram with up to 14 of the latest builds.
For each of the builds, you can see the status (green means successful, red is failed), build time,
and how long the build has spent in the queue. There is also information about the build that is
currently running.

Прогнать юнит-тесты

У нас юнит-тесты являются отдельным проектом внутри решения. Так что на предыдущем шаге они уже скомпилированы – осталось их запустить.

Добавляем новый шаг, только теперь Runner – это NUnit

Обратите внимание на параметр Execute step: он указывает, при каких условиях нужно выполнять шаг, и имеет 4 значения:

  • If all previous steps finished successfully (zero exit code) – если все предыдущие шаги завершились без ошибок. При этом проверка выполняется чисто на агенте;
  • Only if build status is successful – аналогично предыдущему, но при этом агент ещё и уточняет у сервера TC статус билда. Нужно для более тонкого управления логикой задания, например, если нулевой код возврата конкретного шага для нас является ошибкой;
  • Even if some of the previous steps failed – даже если какой-то из предыдущих шагов завершился с ошибкой;
  • Always, even if build stop command was issued – выполнять шаг, даже если подана команда на отмену выполнения сборки.

Здесь самое важное – указать верный путь к сборке с тестами внутри проекта в графе Run tests from. У нас, например, он выглядит вот так:. %teamcity.build.checkoutDir% – это переменная, указывающая на папку, в которую скачиваются данные из репозитория

В принципе, она не обязательна для указывания, т.к. по умолчанию путь идёт именно относительно этой директории, поэтому путь можно было бы сократить до:

%teamcity.build.checkoutDir% – это переменная, указывающая на папку, в которую скачиваются данные из репозитория. В принципе, она не обязательна для указывания, т.к. по умолчанию путь идёт именно относительно этой директории, поэтому путь можно было бы сократить до:

Отдельно отмечу опцию Run recently failed test first – если в предыдущем прогоне какие-то тесты упали, то в следующем запуске первыми запустятся именно они, и вы быстро узнаете об успешности последних изменений.

Cross-platform dotCover

Since version 2019.2, TeamCity allows collecting coverage for .NET Core projects on Linux and macOS by supporting cross-platform JetBrains dotCover, version 2019.2.3+.

dotCover 2019.2.3 for Windows is bundled with TeamCity. If you need to collect code coverage under non-Windows platforms, add the cross-platform dotCover tool in Administration | Tools and enable the dotCover coverage in the .NET CLI build step. If you want to use cross-platform dotCover under Windows as well, make sure the agents have .NET Framework SDK 4.6.1+ installed.

Starting from this version, you can also run dotCover code coverage analysis inside a Docker container, with the Docker Wrapper extension.

dotCover Settings

Path to dotCover Home

Leave this field blank to use the default dotCover. The is set as default prior to TeamCity 2017.1; after this version, you can mark any of the additionally installed versions as default. Alternatively, specify the path to the dotCover installed on a build agent.

Filters

Specify a new-line separated list of filters for code coverage. Use to include or exclude assemblies from covered assemblies:

For example, to run coverage on all assemblies but not on , specify the following assembly filters for coverage:

See also the related blog post.

Attribute Filters

If you do not want to know the coverage data solution-wide, you can exclude the code marked with an attribute (for example, with ) from the coverage statistics. You only need to specify these attribute filters here in the following format: the filters should be a new-line separated list; the syntax should be used to exclude the code marked with the attributes from code coverage. Use the asterisk () as a wildcard if needed. Supported only for dotCover 2.0 or newer.

Additional arguments

Provide a new-line separated list of additional commandline parameters to pass to .

Installing TeamCity Server

After you have selected one of the , proceed with corresponding installation instructions:

  • – the executable which provides the installation wizard for Windows platforms and allows installing the server as a Windows service.

  • – the archive with a «portable» version suitable for all platforms.

  • Docker image – check the instructions at the image page.

  • – for experienced users who want to run TeamCity in a separately installed Web application server. Consider using distribution instead. is not recommended to use unless really required (please let us know the reasons).

Compared to the distribution, the and distributions:

  • Include a Tomcat version which TeamCity is tested with, so it is known to be a working combination. This might not be the case with an external Tomcat.

  • Define additional JRE options which are usually recommended for running the server.

  • Have the which provides several convenience options (for example, separate environment variable for memory settings) and configures TeamCity correctly (for example, configuration).

  • At least under Windows, provide better error reporting for some cases (like a missing Java installation).

  • Under Windows, allow running TeamCity as a service with the ability to use the same configuration as if run from the console.

  • Come bundled with a build agent distribution and single startup script which allows for easy TeamCity server evaluation with one agent.

  • Come bundled with the devPackage for TeamCity plugin development.

  • May provide more convenience features in the future.

After installation, the TeamCity web UI can be accessed via a web browser. The default addresses are for Windows distribution and for the distribution.

If you cannot access the TeamCity web UI after successful installation, please refer to the section.

The build server and one build agent will be installed by default for Windows, Linux or macOS. If you need more build agents, refer to the Installing Additional Build Agents section.

Basic TeamCity concepts

This section explains the main concepts. The complete list can be found here.

The TeamCity build system comprises a server and Build Agents.

Concept

Description

Build Agent

A piece of software that actually executes a build process. It is installed and configured separately from the TeamCity server, i.e. the agent can be installed on a separate machine (physical or virtual, and it can run the same operating system (OS) as the server or a different OS. Build Agents in TeamCity can have different platforms, operating systems, and preconfigured environments that you may want to test your software on. Different types of tests can be run under different platforms simultaneously so the developers get faster feedback and more reliable testing results.

TeamCity Server

The server itself does not run either builds or tests: the server’s job is to monitor all the connected build agents, distribute queued builds to the agents based on compatibility requirements, and report the results. All information on the build results (build history and all the build-associated data except for artifacts and build logs), VCS changes, agents, build queue, user accounts and user permissions, etc. are stored in a database.

Project

A TeamCity Project corresponds to a software project or a specific version/release of a software project. A project is a collection of build configurations.

Build Configuration

A combination of settings defining a build procedure. The settings include VCS Roots, Build Steps, Build Triggers described below.

VCS Root

A collection of version control settings (paths to sources, username, password, checkout mode and other settings) that defines how TeamCity communicates with a version control (SCM) system to monitor changes and get sources for a build.

Build Step

A task to be executed. Each build step is represented by a build runner providing integration with a specific build tool (like Ant, Gradle, MSBuild, etc), a testing framework (e.g. NUnit), or a code analysis engine. Thus, in a single build you can have several steps and sequentially invoke test tools, code coverage, and, for instance, compile your project.

Build Trigger

A rule which initiates a new build on certain events. For example, a VCS trigger will automatically start a new build each time TeamCity detects a change in the configured VCS roots.

Change

Any modification of the source code which you introduce. If a change has been committed to the version control system, but not yet included in a build, it is considered pending for a certain build configuration.

Build

Refers to both: the actual process of creating an application version and the version itself. After the build process is triggered, it is put into the build queue and is started when there are agents available to run it. After the build is finished, the build agent sends Build Artifacts to the server.

Build Queue

A list of builds that were triggered and are waiting to be started. TeamCity will distribute them to compatible build agents as soon as the agents become idle. A queued build is assigned to an agent at the moment when it is started on the agent; no preassignment is made while the build is waiting in the build queue.

Build Artifacts

Files produced by a build, for example, installers, WAR files, reports, log files, etc, when they become available for download.

Забрать свежие изменения из репозитория

Начинается всё с немудрёного создания проекта.

После – создание «build configuration» (конфигурации сборки). Конфигурация определяет сценарий сборки.

На втором же шаге создания конфигурации нас спросят об использованной VCS, так что отвечаем честно, что у нас тут git. У вас может быть другая VCS – не теряйтесь. Добавление нового репозитория производится кнопкой Create and attach new VCS root.

Итак, ключевые настройки:

  • VCS root ID можно не трогать – уникальный код, как ни крути. Если оставить пустым, генерируется автоматически;
  • Fetch URL – тот адрес, с которого мы будем забирать содержимое репозитория;
  • Default branch – ветка, с которой будет браться информация;

  • Authentication method – самое интересное – способ аутентификации. Тут может быть и доступ без авторизации (если данные лежат на внутреннем сервере, например), и по ключу, и по паролю. Для каждого варианта дополнительные поля будут свои, сами понимаете.

Остальное многообразие опций – на ваш вкус и цвет.

Далее, нужно настроить автоматический запуск задания. Идём в «Build Triggers» (условия сборки) и выбираем условие VCS Trigger – при настройках по умолчанию он будет раз в минуту проверять наличие новых коммитов в репозитории, а если таковые найдутся – запустит задание на выполнение.

Включить скачивание NuGet-пакетов

Важный пункт, в случае если вы используете NuGet-пакеты; если нет – можно переходить сразу к следующему пункту.

Поскольку NuGet-пакеты весят немало, да и хранить в репозитории бинарники библиотек без особой необходимости не хочется, можно использовать замечательную опцию NuGet Package Restore:

В этой ситуации бинарники библиотек в репозиторий не включаются, а докачиваются по мере необходимости в процессе сборки.

Но MSBuild – настоящий джентльмен и не будет без разрешения делать лишних телодвижений, поэтому и докачивать пакеты просто так не будет – ему сей процесс нужно разрешить. Для этого придется либо на клиенте установить переменную окружения Enable NuGet Package Restore в значение true, либо пойти в меню Build Parameters и выставить его там.

TeamCity

Это коммерческий сервер для CI/CD от компании JetBrains. Он известен своей простой настройкой и красивым пользовательским интерфейсом. TeamCity имеет мощный набор функций прямо «из коробки» и растущую экосистему плагинов.

Требуемое дополнительное ПО: Java Runtime Environment (JRE) версии 8.

Имея относительно скромный сервер (3,2 Гбайта ОЗУ, двухъядерный процессор 3,2 ГГц, один жёсткий диск и сетевой адаптер с пропускной способностью 1 Гбайт), вы можете получить следующее:

  • 60 проектов и 300 конфигураций сборки;
  • более 300 сборок в день;
  • около 2 Мбайта log-журнала на сборку;
  • 50 агентов сборки (компоновки);
  • 50 пользователей web-версии и 30 пользователей IDE;
  • 100 возможных подключений внешней СКВ (в основном Perforce и Subversion с использованием проверки сервера), средний интервал проверки изменений составляет 120 секунд;
  • более 150 изменений в день;
  • база данных (MySQL) работает на той же машине;
  • серверный процесс TeamCity имеет следующие настройки JVM: .

Требования к агенту в основном определяются запущенными сборками. Задача сервера TeamCity состоит в том, чтобы отслеживать все подключённые агенты, а также распределять сборки из очереди по этим агентам на основе требований совместимости и сообщать о результатах. Агенты могут иметь разные платформы, операционные системы и предварительно сконфигурированные среды.

Вся информация о результатах сборки хранится в базе данных: история и прочие данные, за исключением артефактов и журналов сборки, а также изменения VCS, агенты, очереди сборки, аккаунты и разрешения пользователей.

Пошаговая установка для Linux

Используйте архив TeamCity<номер версии>.tar.gz, чтобы вручную установить TeamCity в комплекте с контейнером сервлета Tomcat. Архив можно скачать отсюда.

При первом запуске TeamCity можно выбрать тип базы данных SQL, в которой будут храниться данные о сборке.

По умолчанию TeamCity работает на http://localhost:8111/ и имеет одного зарегистрированного агента сборки, который работает на той же машине.

Преимущества:

  • простота использования/настройки;
  • удобный интерфейс;
  • встроенные функции;
  • служба поддержки;
  • предлагает RESTful API;
  • хорошо задокументирован;
  • хорошая защищённость «из коробки»;
  • быстрая и простая установка/настройка.

Недостатки:

  • ограниченная интеграция;
  • является коммерческим инструментом;
  • маленькое сообщество, но оно растёт.

All in one

A project management tool that can be adapted to your processes to help you deliver
great products. Track tasks and bugs, plan sprints and releases, create workflows,
and customize YouTrack for your business processes. Never force your process to fit the limits
of a tool again. Unlike other issue trackers, YouTrack can be customized to your needs!

Take a tour

Be Agile

Agile Boards

YouTrack lets you configure an Agile Board for any process you can dream up.
Use the Agile boards to support you with your Scrum, Kanban, and mixed processes.

Be Agile your way — create boards with multiple projects, add swimlanes based
on user stories, epics, deadlines, or any other fields. See the changes
that are applied to the board or in the backlog in real time.

Planning

Plan the future of your project development with the flexible backlog. Create
user stories, feature requests and tasks. Don’t switch between tabs —
open the backlog right from the board, edit it and move issues to the sprint.

Monitor the progress of your product

Reports

Keep track of your project, team, and personal progress using dozens
of predefined reports. See how your issues are distributed over the projects,
assignees, and priorities. Check on how you are progressing over time using
the timeline reports. Track the estimated and the actual time
spent on various activities.

Dashboards

Get an overview of your projects using multiple dashboards and share them
with your team. Place reports, markdown notes, and issue lists as widgets
or create your own widgets if you’re in need of more data!

Time Management

Use time management on a per project basis to control the estimated
and actual time spent on various activities by each team member
and over the whole team. Create time reports and share them with the stakeholders
and customers. Plan ahead with your project activities using a Gantt Chart
and track your progress as you go, making sure you stay on schedule.

Create Knowledge Base

Your team documentation

Have you ever thought of keeping all your product documentation and personal notes
together, right near your issues and projects? YouTrack now includes Knowledge Base,
a project collaboration tool where you can add project plans, team policies,
and meeting notes. Group them by project and structure them in page trees,
and decide who will have access to the workspace. Organize everything your way –
for example, manage requirements and plan future releases with tables and checklists,
or discuss your team-building activities with gifs and embedded videos.

Public knowledge base

Build an awesome public knowledge base with guides and FAQs for your users.
Share your team’s collective knowledge – as texts, videos, or gifs – to bring
the best user experience to your customers or colleagues. Let them find answers
in one click using powerful full-text search, take part in discussions in comments,
and never lose an idea with the article history feature.

Bring IDE-style intelligence to your issue tracking

Smart search

Never get lost in your issues! Find things quickly using the smart search
with auto-completion.

For example, #YouTrack -{Board YouTrack} #unresolved assigned to: me sort by:
priority
will find you the unresolved issues that are not on the board assigned
to you and will sort the results based on priority. See, how intuitive!

Commands and shortcuts

Modify multiple issues quickly and efficiently using commands. Speed up
your routine operations using shortcuts just like you would in your favorite IDE.
Save time and stay focused on what’s important.

URL Structure

The general structure of the URL in the TeamCity API is

where

  • and define the server name and the port used by TeamCity. This page uses as an example URL.

  • (optional) is the to be used, this is generic TeamCity functionality.

  • is the root path of the TeamCity REST API

  • (optional) is a reference to a specific version of REST API.

  • is the REST API part of the URL. A typical way to get multiple items is to use in the form of (for example, ). These URLs regularly accept the parameter which can filter the items returned. Individual items can regularly be addressed by a URL in the form of . This URL always returns a single item. If the locator matches several items, the first one is returned. Both multiple and single items requests regularly support the parameter.

Подведём итоги

Это всего лишь 3 примера, но есть и много других инструментов, связанных с CD

Выбор правильного для вас может быть непростым, поэтому обратить внимание стоит на важные аспекты, от которых и будет зависеть выбор

Открытый исходный код позволяет заглянуть «под капот», а также быстрее реализовывать новые функции. Но, если что-то сломается, у вас есть только свой опыт и помощь сообщества. За платное программное обеспечение вы получаете поддержку разработчика, поэтому его легче внедрить и оно стабильнее в работе.

Если вы хотите интегрироваться со сторонней компанией или просто не хотите заботиться о функционировании и масштабировании, можете предпочесть SaaS-решение. С другой стороны, если безопасность является главной заботой или есть юридические ограничения, лучше использовать собственное решение (локальный хостинг).

Уделите больше внимание к особым требованиям вашего развёртывания. Их специфика может помочь сузить список подходящих инструментов и сэкономить время

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий