# teamcity

Published articles for teamcity.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How We Handle Flaky Tests in Gradle

DevFeed: [How We Handle Flaky Tests in Gradle](<https://devfeed.tech/articles/how-we-handle-flaky-tests-in-gradle-24645.md>)

Original publisher: [Read original article](<https://blog.gradle.org/how-we-handle-flaky-tests-in-gradle>)

Author: Bo Zhang

Published: 2022-11-03T02:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ci](<https://devfeed.tech/topics/ci.md>), [code productivity](<https://devfeed.tech/topics/code-productivity.md>), [superProductivity](<https://devfeed.tech/topics/superproductivity.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [bazel](<https://devfeed.tech/tags/bazel.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build](<https://devfeed.tech/tags/build.md>), [ci](<https://devfeed.tech/tags/ci.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [junit](<https://devfeed.tech/tags/junit.md>), [retry](<https://devfeed.tech/tags/retry.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

This article explains how the Gradle team manages flaky automated tests. It covers retrying failed tests, automatically identifying flaky failures in CI, using dashboards and analytics to troubleshoot trends, and quarantining tests that are too unreliable. It also mentions Gradle's Test Retry Gradle plugin and alternatives such as Maven Surefire Plugin, JUnit Pioneer, and Bazel test rules.

### Source excerpt

Test flakiness is one of the main challenges of automated testing. Even though Gradle's focus is increasing developer productivity, the development of Gradle itself suffers from flaky automated tests. This blog explains some best practices when developing Gradle, which have proved effective over the years we fight with flaky tests. The Story Like in many other projects, every commit of Gradle must pass tens of thousands of automated tests. Any tiny flakiness may cause developer productivity loss. When I joined Gradle 5 years ago, the CI was full of flaky test failures - people would rerun a build, again and again, hoping to be lucky enough to get a green build. Later, we started a dedicated developer productivity team to deal with all the flakiness on CI, especially test flakiness. Here's how we do it step by step. Retry Failed Tests When a test fails, how do we determine if it's flaky or not? The easiest way is obviously retrying the failed test immediately: if the second run succeeds, the failed test is flaky. As a rule of thumb, by simply rerunning the failed test one more time, the test failures due to flakiness can be reduced by 90%. Many CI systems can recognize such flaky tests and mark the build as green automatically: In this example, the first run fails because of a network error, but the rerun succeeds. TeamCity recognizes this situation and "mutes" the test failure. If the build is connected to a Gradle Enterprise instance and that build has a published Build Scan, you can see the flaky tests in the test dashboard: In Gradle, we automatically retry the failed test classes with the Test Retry Gradle plugin. Please consult the documentation for how to adopt it in your build. Other Techniques to Retry Failed Tests If you are not using Gradle, that's okay. There are many alternatives that provide similar functionalities: Maven Surefire Plugin - Rerun failing tests JUnit Pioneer - Retrying Failing Tests Bazel flaky attribute in test rules All the tools above

## TeamCity C# API для сборки приложений

DevFeed: [TeamCity C# API для сборки приложений](<https://devfeed.tech/articles/teamcity-c-api-23952.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/651247/>)

Author: NikolayPyanikov (JetBrains)

Published: 2022-02-15T09:21:35Z

Content type: tutorial

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [teamcity](<https://devfeed.tech/topics/teamcity.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [.NET](<https://devfeed.tech/topics/net.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>)

Tags: [asp-net](<https://devfeed.tech/tags/asp-net.md>), [asp-net-core](<https://devfeed.tech/tags/asp-net-core.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [build-tools](<https://devfeed.tech/tags/build-tools.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cli](<https://devfeed.tech/tags/cli.md>), [core](<https://devfeed.tech/tags/core.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [net](<https://devfeed.tech/tags/net.md>), [script](<https://devfeed.tech/tags/script.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>)

### AI overview

This article presents the TeamCity C# scripting API for automating application builds. It describes integration with the .NET CLI, including process execution and detailed build, warning, error, and test information, as well as running processes in Docker containers and using ASP.NET Core-style composition and dependency injection. It also introduces packages for running, debugging, testing, and templating C# build scripts.

### Source excerpt

Начиная с первых версий .NET Core для сборки приложений, компания Microsoft предоставляет простой и удобный интерфейс командной строки (.NET CLI). Его возможности покрывают большинство потребностей по сборке, упаковке и тестированию приложений. Несмотря на это, по мере роста приложения, увеличения количества его составных частей/сборок/пакетов, усложнения процессов тестирования и развертывания, рядом с проектом часто появляются такие файлы сценариев как build.ps1, build.sh, build.cmd или даже полноценные инфраструктуры автоматизации построения приложений. В статье TeamCity C# script runner была предложена еще одна альтернатива - сценарии C#, которые особенно полезны, когда необходимо эффективно автоматизировать какой либо аспект сборки силами .NET разработчиков или DevOps, знакомыми с синтаксисом C#. Тогда же была упомянута идея расширить встроенный API сценариев для более глубокой интеграции с TeamCity и для поддержки наиболее частых вариантов использования. Предполагая, что API сценариев чаще всего будет задействован при сборке приложений, мы в первую очередь решили расширить именно его. В этой статье будут приведены примеры использования этого API. Читать далее

## TeamCity C# script runner

DevFeed: [TeamCity C# script runner](<https://devfeed.tech/articles/teamcity-c-script-runner-23942.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/586906/>)

Author: NikolayPyanikov (JetBrains)

Published: 2021-11-02T11:53:23Z

Content type: tutorial

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [teamcity](<https://devfeed.tech/topics/teamcity.md>), [Script](<https://devfeed.tech/topics/script.md>), [.NET](<https://devfeed.tech/topics/net.md>), [PowerShell](<https://devfeed.tech/topics/powershell.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [NuGet](<https://devfeed.tech/topics/nuget.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [docker](<https://devfeed.tech/tags/docker.md>), [net](<https://devfeed.tech/tags/net.md>), [nuget](<https://devfeed.tech/tags/nuget.md>), [powershell](<https://devfeed.tech/tags/powershell.md>), [script](<https://devfeed.tech/tags/script.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>)

### AI overview

This tutorial explains how to use the TeamCity 2021.2 C# script runner as an alternative to PowerShell scripts for build automation. It covers running scripts from .csx files or directly in the TeamCity build-step interface, configuring script parameters, Docker execution, NuGet package sources, and the default TeamCity C# script tool.

### Source excerpt

На операционных системах Windows администраторы традиционно используют PowerShell как средство автоматизации. Хотя PowerShell имеет .NET в своей основе, синтаксис его сценариев отличается от языка C#, к которому привыкли разработчики .NET, многие из которых занимаются и настройкой сборок. Для них альтернативой сценариям PowerShell могут быть сценарии C#, синтаксис которых практически идентичен синтаксису C#. В TeamCity 2021.2 появился специальный раннер для их поддержки. Читать далее

## How Badoo Increased Automated Merge Throughput

DevFeed: [How Badoo Increased Automated Merge Throughput](<https://devfeed.tech/articles/article-23640.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/560228/>)

Author: osmanov (Badoo)

Published: 2021-06-21T10:00:02Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [ci](<https://devfeed.tech/topics/ci.md>), [bitbucket](<https://devfeed.tech/topics/bitbucket.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [badoo](<https://devfeed.tech/tags/badoo.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [jira](<https://devfeed.tech/tags/jira.md>), [tag-5647dc7784f0](<https://devfeed.tech/tags/tag-5647dc7784f0.md>), [tag-e95ee8b94dca](<https://devfeed.tech/tags/tag-e95ee8b94dca.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

A Badoo and Bumble release engineer explains how the team optimized automated Git branch merging for mobile projects. The article contrasts earlier sequential merging with a custom automerge system designed to increase throughput while maintaining process reliability.

### Source excerpt

Меня зовут Руслан, я релиз-инженер в Badoo и Bumble. Недавно я столкнулся с необходимостью оптимизировать механизм автомерджа в мобильных проектах. Задача оказалась интересной, поэтому я решил поделиться её решением с вами. В статье я расскажу, как у нас раньше было реализовано автоматическое слияние веток Git и как потом мы увеличили пропускную способность автомерджа и сохранили надёжность процессов на прежнем высоком уровне. Читать далее

## Automating mobile app releases for iOS and Android at Badoo

DevFeed: [Automating mobile app releases for iOS and Android at Badoo](<https://devfeed.tech/articles/article-23614.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/509238/>)

Author: saliery (Badoo)

Published: 2020-07-02T13:36:17Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [App](<https://devfeed.tech/topics/app.md>), [Google Play](<https://devfeed.tech/topics/google-play.md>), [LineageOS](<https://devfeed.tech/topics/lineageos.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [app-store](<https://devfeed.tech/tags/app-store.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [devops](<https://devfeed.tech/tags/devops.md>), [fastlane](<https://devfeed.tech/tags/fastlane.md>), [google-play](<https://devfeed.tech/tags/google-play.md>), [ios](<https://devfeed.tech/tags/ios.md>), [re](<https://devfeed.tech/tags/re.md>), [release](<https://devfeed.tech/tags/release.md>), [release-engineering](<https://devfeed.tech/tags/release-engineering.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>)

### AI overview

A Badoo release engineer describes the company's automation of iOS and Android app releases. The process automates app-store metadata uploads and enables employees involved in the process to release applications in a few clicks; the release-engineering team reported saving about 830 hours in 2019.

### Source excerpt

Всем привет! Меня зовут Михаил Булгаков (нет, не родственник), я работаю релиз-инженером в Badoo. Пять лет назад я занялся автоматизацией релизов iOS-приложений, о чём подробно рассказывал в этой статье. А после взялся и за Android-приложения. Сегодня я подведу некоторые итоги: расскажу, к чему мы пришли за это время. Long story short: любой причастный к процессу сотрудник может зарелизить хоть все наши приложения на обеих платформах в несколько кликов -- без головной боли, больших затрат времени, регистрации и СМС. Так, наш отдел релиз-инженеров за 2019 год сэкономил около 830 часов. За подробностями -- добро пожаловать под кат! Читать дальше ->

## January 2019 meeting minutes

DevFeed: [January 2019 meeting minutes](<https://devfeed.tech/articles/january-2019-meeting-minutes-33130.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/january-2019-meeting-minutes/>)

Published: 2019-02-24T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Development](<https://devfeed.tech/topics/development.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [bug](<https://devfeed.tech/topics/bug.md>), [MIDI](<https://devfeed.tech/topics/midi.md>), [Playback](<https://devfeed.tech/topics/playback.md>), [jira](<https://devfeed.tech/topics/jira.md>), [teamcity](<https://devfeed.tech/topics/teamcity.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [development](<https://devfeed.tech/tags/development.md>), [free](<https://devfeed.tech/tags/free.md>), [jira](<https://devfeed.tech/tags/jira.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>), [testing](<https://devfeed.tech/tags/testing.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

Minutes from a January 24, 2019 ReactOS Mattermost meeting covering status reports, Mattermost, Google Summer of Code 2019, and TeamCity. The discussion includes testing progress for ReactOS 0.4.11, regression concerns affecting release timing, development maintenance, bug reporting, and restored MIDI playback functionality.

### Source excerpt

2019-01-24 19:00 UTC Mattermost meeting channel Proceedings Meeting started at 19:00 by Colin Finck, which is our first on Mattermost! Point 1: Status Reports Point 2: Mattermost Point 3: Google Summer of Code 2019 Point 4: TeamCity Point 1: Status Reports Alexander Rechitskiy did several bug reports and rechecked old bug reports. He conducted an experiment on crowdfunding work of Katayama Hirofumi MZ. Apart from that, he also did PR work.

## December 2018 meeting minutes

DevFeed: [December 2018 meeting minutes](<https://devfeed.tech/articles/december-2018-meeting-minutes-33101.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/december-2018-meeting-minutes/>)

Published: 2019-02-24T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [WINE](<https://devfeed.tech/topics/wine.md>), [datacenter](<https://devfeed.tech/topics/datacenter.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Process](<https://devfeed.tech/topics/process.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [free](<https://devfeed.tech/tags/free.md>), [gui](<https://devfeed.tech/tags/gui.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [process](<https://devfeed.tech/tags/process.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [servers](<https://devfeed.tech/tags/servers.md>), [teamcity](<https://devfeed.tech/tags/teamcity.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>), [wine](<https://devfeed.tech/tags/wine.md>)

### AI overview

ReactOS's December 2018 meeting covered project status, infrastructure work, the NT6+ compatibility strategy, and compiler upgrades. The minutes report improved infrastructure after server and VM changes, ongoing Wine synchronization, testing of a release candidate, and discussion of organizing NT6+ code and compatibility DLLs.

### Source excerpt

2018-12-20 19:00 UTC #meeting Proceedings Meeting started at 19:15 by Colin Finck. Point 1: Status Reports Point 2: NT6+ strategy Point 3: Compilers upgrade Point 1: Status Reports Amine Khaldi reported that he worked on Wine syncs. Colin Finck finished the backup of all our old servers/VMs and could finally terminate the contracts for 3 servers we had in use more or less unchanged for 5 years. Our infrastructure performs better now, is prepared for future tasks, and even got a little cheaper in the progress.