Continuity Plan - Core Product Processes
This page describes the plans for the continuity of the development and release processes operation in case of failure or unavailability of specific tools.
GitHub Repository
All the main repositories are backed up via GitProtect.io allowing restore of commit history, issues, pull requests, wiki, files, etc.
In order to maintain continuity if the service is unavailable, a restore of the repositories will be made in GitLab service for the needed repositories. The restore process will be made by the Head of Architecture, the CTO or anyone else with access to the backups.
To execute the restore process, follow the instructions at https://helpcenter.xopero.com/xopero-one-en/backup-plan-possibilities-and-the-data-solutions/backup-and-recovery/github-backup-and-recovery/recovery/recovery-of-a-single-repository-to-git-service-or-xopero-one-agent . The restore process requires access to the GitProtect account and to the destination account (GitLab). The restore process should focus on restoring the repository code and Pull Request data, all other information is considered secondary for the continuity of the work.
GitHub Actions / CI
Every CI process is defined by the workflow files contained in the repository, it allows any developer to check the steps needed for any desired action and perform the same actions locally, so itβs considered the source of truth for the actions in a disaster scenario.
Development
In case of unavailability of the CI tool, all the processes are capable of being run locally by the developer when working on changes prior to finishing the contributions.
Code Review
Reviewers are able to run the build, lint, type check, and tests locally to ensure the quality of the delivery prior to merge changes to the main branch.
Release of new Versions
All developers can build images locally by following the documentation and the CI workflow file in the repository. Some specific members have permission to push new images manually to DockerHub or GitHub Registries, among those, some names to mention are Guilherme Gazzo (Head of Architecture), Diego Sampaio (Staff Architect), and Rodrigo Nascimento (CTO). Other members may have access based on the registry of the system access of the company.
In case of a manual release, the Head of Architecture or the CTO should approve the execution.
DockerHub
All official deployment documentation links to registry.rocket.chat and not directly to DockerHub.
In case of DockerHub unavailability, the official URL can be pointed to the GitHub registry and the latest images can be uploaded manually.
Β