Apache ignite Teamcity Bot

Clone this repo:
  1. 7d8ff79 IGNITE-21901 Ignite version temporarily changed back to 2.14 (#197) by oleg-vlsk · 8 months ago master
  2. 3470a8a 21520 Ignite version updated to 2.16 (#195) by oleg-vlsk · 9 months ago
  3. ef9c0a9 IGNITE-38586 Added handling for cases that cause failure on the checking server queue and build triggering #196 by Vladislav Pyatkov · 10 months ago
  4. ee6b03e IGNITE-38586 Added handling for cases which causes failure on the checking servers queue and build triggering. by sergeyuttsel · 10 months ago
  5. 3a0986e IGNITE-36129 Bot should send a message to the Slack channel on itself start and stop. Fixes #194 by Sergey Uttsel · 1 year, 10 months ago

ignite-teamcity-bot

Apache Ignite Teamcity Bot (MTCGA.bot) is Apache Ignite-based cache over JetBrains TeamCity server(s).

This tool intended to monitor Apache Ignite Teamcity where Apache Ignite is tested.

TC tool should help to avoid new failures introduction into master and provide ways of its early detection.

Major use cases are the following:

  • Continuous monitoring of master and/or release branch
  • Check branch/PR changes to new failures
  • MCTGA Bot for slack and for email notifications.

This tool is available on https://mtcga.gridgain.com/ - requires apache CI credentials.

Should you have any questions, please contact Ignite Developers at dev@ignite.apache.org or dpavlov@apache.org

Development

Project setup

Locally code can be set up using IntelliJ idea and gradle project import. Locally it can be run using org.apache.ignite.ci.web.Launcher.main() method. The bot will create necessary configs in ~/.ignite-teamcity-helper - it is bot Home directory. In can be changed with TcBotSystemProperties.TEAMCITY_HELPER_HOME system property.

Examples of configs can be found in conf directory. Main config file is conf/branches.json. This file needs to be placed to work directory, (under user home by default). Extra setup is required using security-sensitive information using PasswordEncoder. No TeamCity credentials are required because TC bot asks users to enter creds.

Code inspections, styles and abbreviation rules.

Code style is inherited from Apache Ignite. Please install following components for development using IntelliJ IDEA

Build

A build can be done using following commands

  • gradle clean
  • gradle build

It is recommended to use Java 8 for development.

It may be required to install Java Cryptography Extension JCE Unlimited Strength Jurisdiction Policy Files 8 Download because the Bot uses strong AES cryptography, but default java distribution may limit AES256 usage.

Resulting distribution can be found in projectRoot\jetty-launcher\build\distributions. Distribution will contain start script in \bin folder.

Internal Design

Main bot logic is placed in ignite-tc-helper-web module. jetty-launcher is an application module to start bot in production.

Apache Ignite TC Bot interacts with several data sources to find out current state and details of contribution.

TeamCity Bot Components and its interactions

Modules structure

Static content is placed in webapp.

TC Bot services can be found in tcbot-engine

TC Bot integrations are placed in corresponding submodules

Data SourcePure IntegrationPersistence-enabled
Teamcitytcbot-teamcitytcbot-teamcity-ignited
JIRAtcbot-jiratcbot-jira-ignited
GitHubtcbot-githubtcbot-github-ignited