AIDA completes this merge when new changes are executed in the master branch.
#TEAMCITY JIRA INTEGRATION CODE#
We use a special script that performs this operation in semi-automatic mode. If a task in the release contains an error we remove its branch from the release branch with Git rebase. Production: If the task is very important, it is checked again in the production environment.All tasks included in the build are re-tested. Staging: The release is tested in the production environment, translated into all languages, and fully monitored.At this stage, translations to major languages are generated, and the issue is tested in the production environment (databases, scripts, services). Shot is a folder on the server that is а cloned branch repository and configured Nginx, and has its own top-level domain:. Shot: The task is checked on the battlefield.Each task is checked in development environment and databases for testing.
#TEAMCITY JIRA INTEGRATION MANUAL#
Devel: The first stage of manual testing.After performing tests (22,000 tests in 3-4 minutes) AIDA provides a report in Jira, in spreadsheet form. They occur automatically when the reviewer changes status to ‘resolved’. Unit Tests: Unit tests are run in each branch.Code Review: Every task undergoes code review. Each department’s reviewer is chosen according to varying criteria i.e.it may be the person with the most experience or the development team leader.Devs also deploy hot fixes to production servers from this branch. As soon as a code from ‘Build’ is deployed to servers, it is merged to the master branch. Our master branch is a copy of production. Without such restrictions the QA team wouldn’t have time to check all the tasks on the release branch. For example, developers are prevented from adding a task to a branch release two hours before deploy to production servers. The hooks that prevent changes being made to a release branch use the same time-stamp. This structure means the team immediately knows the date and time of release from the branch name. We deploy code to production servers twice a day, so two release branches are created daily.īuild_
The branch name consists of the ticket number in JIRA and a description of the problem.īFG-9000_All_developers_should_be_given_a_years_holiday_(paid)Ī release is built and tested in its own branch, which is then merged with the branches for completed issues. Our model ensures each task is developed and tested in a separate branch. The Badoo Team uses Git as a version control system. Then we’ll discuss AIDA’s major contribution to both JIRA integration and TeamCity. We’ll start by looking at the version control system (VCS) we use here at Badoo, specifically how Git is used to automate creation of release branches, and their subsequent merging. In this post, we focus on how through using AIDA we were able to automate multiple workflows and create a scheme of continuous integration. To avoid complications stemming from this, we use AIDA.ĪIDA (Automated Interactive Deploy Assistant) is a utility that automatically performs many of the processes in Git, TeamCity and JIRA. It’s hardly news to anyone that product development and testing involve a lot of boring routine work, which can lead to human error.