Branch configuration
Description of the process for the configuration of branches in the Release Train Manager
Branch configuration file
The configuration of branches is defined in the branch-config.yml file.
Each stage defined in the schema is fully described in the Stages section.
Properties
| Property | type | description | default | mandatory |
|---|---|---|---|---|
| name | string | Name of the branch. The format is: [main|hotfix|fasttrack|release]/description#jira-id Example: name: main/doc-review#14820 |
none | true |
| release_branch | string | Name of the base branch from which the specific branch is generated. | master | In hotfix and fasttrack branches |
| release_version | string | Version of the base branch from which the branch will be generated. | none | In release branches |
| environment | string | English letter name to indicate the environment number to be generated to deploy the components used in the special branch. | none | If an environment is needed: from one to ten |
| mode | string | It specifies whether the branch that has been generated is to make a “real” change to the repositories to perform a test. | production | Use developer for test purposes |
| version | string | Version of configuration file. | 1.0.0 | Not used yet |
| description | string | Brief description of the changes for which the branch has been generated. | Fake text | true |
| jira | Jira | Jira references and tags referring to the task that the branch solves. | Fake data | true |
| teams | Map<string,Team> | List of teams involved in the resolution of the task solved by this branch. | none | At least one |
| main_protection | Object | Protection that will be applied to main branch when created in the RTM repository. This configuration can be partial and will be merged with the default configuration. All the documentation concerning the protection of a branch can be found at Github | Defined by Template | true |
| protection | Object | Default configuration property, this configuration will be merged between custom protection configurations of teams or main branches. All the documentation concerning the protection of a branch can be found at Github | Defined by Template | true |
Jira Property
| Property | type | description | default | mandatory |
|---|---|---|---|---|
| tags | string[] | String words used in Jira to categorize the feature or bug. | Fake data | true |
| references | string[] | Jira URLs where the tasks that the branch solves once the life cycle is completed are | Fake data | true |
Team Object
It contains a set of common properties and others customized by each team. In the following table, the properties that are shared by all teams are described.
| Property | type | description | default | mandatory |
|---|---|---|---|---|
| repositories | string[] | List of repository names involved in the changes to be made to the branch. | Defined by Template | true |
| protection | Object | Security configuration of the branches to be generated in the repositories. This configuration can be partial and will be merged with the default configuration. Example:protection: restrictions: users: [] teams: - aura-ci - aura-bot-global-dev - aura-bot-ext-devs apps: []All the documentation concerning the protection of a branch can be found at Github |
Defined by Template | true |
| stages | Map<string,string[]> | Map of stages in which the team has a series of steps to perform. All steps that must be performed to complete the phase. | Defined by Template | true |
| tasks | string[] | List of custom tasks to be completed before closing the PR for the branch. These tasks will be converted into a checkbox component in the body of the Pull Request | Fake data | false |
Team Bot Custom Properties
Description of the bot’s custom properties.
| Property | type | description | default | mandatory |
|---|---|---|---|---|
| update_dependencies | Object[] of {name: string, version: string} | List of objects with name and version. This property is used to update dependencies on the modules in the repositories defined by aura-bot. All the modules that use one of the libraries in the list, will be updated to the version that has been specified. | [] | false |
| dependencies | Object[] of {name: string, version: string} | List of objects with name and version. This property contains those @telefonica libraries that are needed in the Github library repository to isolate dependencies. At the INIT stage, the system will pick up that library from NPM and publish it to Github. | [] | false |
| node_version | number | Version of node to use in the bot’s Workflows. | 14 | true |
| tools | Object | It currently contains only one property, POEditor, which specifies the creation of a separated project to manage the localization strings. | Defined by Template | false |
Branch config File
name: master
environment: none
mode: production
version: 1.0.0
description: Text to describe the release changes
jira:
tags:
- MyTag
references:
- "https://jira.tid.es/browse/AURA-12941"
- "https://jira.tid.es/browse/AURA-13210"
teams:
bot:
update_dependencies: []
repositories:
- aura-aog-bridge
- aura-services-api
- aura-bot-common
- aura-clients
- aura-bot-libraries
- aura-bot-libraries-test
- aura-bot-platform
- aura-bridge
- aura-code-generator
- aura-locale-importer
- aura-movistar-libraries-utilities
- aura-terms-and-conditions-api
- aura-utilities
- aura-kpis-uploader
- aura-docs
node_version: 14
dependencies:
- name: baikal-sdk
version: 0.10.1
- name: baikal-sdk
tools:
po_editor:
project_base: Aura-Bot
protection:
restrictions:
users: []
teams:
- aura-ci
- aura-bot-global-dev
- aura-bot-ext-devs
apps: []
stages:
init:
- install-dependencies
- create-branch
- store-locales
- prepare-repository
- create-changelog
- protect-branch
- install-tools
start:
- unprotect-branch
- trigger-deploy-components
- protect-branch
- validate-deploy-components
prepare-to-merge:
- update-locales
- check-conflicts
- merge-and-update-versions
- publish-modules
- trigger-deploy-components
- validate-deploy-components
close:
- unprotect_branch
- prepare-versions-to-master
- merge-to-master
- validate-deploy-components
finalize:
- remove-main-branches
- uninstall-tools
- remove-packages
tasks:
- Review documentation before closing
- Review PoEditor content before closing
- Review performance before closing
devops:
repositories:
- aurak8s
stages:
init:
- create-branch
- initial-commit
- check-environment
- create-environment
- deploy-environment
- unprotect-tests-branch
- upload-environment-files
- protect-tests-branch
- protect-branch
prepare-to-merge:
- check-conflicts
- merge
close:
- check-environment
- close-environment
- delete-environment
- merge-to-master
protection:
restrictions:
users: []
teams:
- aura-ci
- aura-devops-admin
- aura-global-cto
apps: []
qa:
repositories:
- aura-tests
protection:
required_status_checks:
strict: false
contexts: ['continuous-integration/jenkins/pr-head']
enforce_admins: true
tests:
smoke_tests_enabled: false
wa_mobile_tests_enabled: false
stages:
init:
- create-branch
- prepare-repository
- protect-branch
start:
- sanity-tests
prepare-to-merge:
- unprotect-branch
- check-conflicts
- merge
- protect-branch
- smoke-tests
close:
- unprotect-branch
- restore-repository
- unprotect-master
- merge-to-master
- protect-master
- smoke-tests
nlp:
repositories:
- aura-cognitive-container
repository_components: complex_logic,context-4p-synchronizer,context_provisioning,context,nlp-provisioning,nlp
stages:
init:
- create-branch
prepare-to-merge:
- check-status-container
close:
- merge-to-master
tasks: []
training_nlp:
repositories:
- aura-nlpdata-es
release_branch: release/7.0
stages:
init:
- create-branch
prepare-to-merge:
- create-all-main-prs
- check-status-repositories
close:
- merge-to-master
tasks: [ ]
legacy:
repositories:
- aura-cognitive-containers
protection:
restrictions:
users: []
teams:
- aura-ci
- aura-platform-tech-leads
- aura-global-cto
apps: []
stages:
init:
- create-branch
- prepare-repository
- protect-branch
prepare-to-merge:
- check-conflicts
- unprotect-branch
- merge
- protect-branch
close:
- unprotect-branch
- update-version
- unprotect-master
- merge-to-master
- protect-master
main_protection:
restrictions:
users: []
teams:
- aura-ci
- aura-global-cto
apps: []
protection:
required_status_checks:
strict: false
contexts: []
enforce_admins: false
required_pull_request_reviews:
dismissal_restrictions:
users: []
teams:
- aura-ci
dismiss_stale_reviews: true
require_code_owner_reviews: true
required_approving_review_count: 2
bypass_pull_request_allowances:
users: []
teams:
- aura-ci
restrictions:
users: []
teams: []
apps: []
required_linear_history: false
allow_force_pushes: false
allow_deletions: false
block_creations: false
required_conversation_resolution: false