Skip to content

Creating Releases

Michael Sherron edited this page Jan 13, 2021 · 9 revisions

Repo Summary

There are three repositories at present for Acquia CMS.

  • acquia/acquia_cms - this repository, from which development happens and all releases are started.
  • acquia/acquia-cms-project - the public facing repository (eventually), from which customers will run composer create-project and our UIs will pull deploy artifacts.
  • acquia/sf-acms - a Site Factory specific repository that builds and stores its' own version of ACMS releases, customized to run inside ACSF.

Integration Environments:

There are two integration applications for ACMS in Acquia Cloud, each with their own environments:

Development and CI Workflow

  • Developers checkout a feature branch in a CloudIDE or their development machines, make code commits.
  • Developers push their feature branch and open a PR against the 'develop' branch.
  • Travis automated tests will run, and if they pass and all peer-review feedback has been implemented, a technical lead will merge the PR.
  • This will deploy the merged commits to our ACE integration environment.
  • Overnight builds on acquia/sf-acms to deploy the commits to our ACSF development environment.

Cutting and Deploying Releases

  • A release engineer (RE) will create a tag on the final commit in the develop branch for the current release.
  • Optionally, they may open a release branch, and cherry pick commits into that branch if it's necessary to omit commits for work that is still in progress. They would then apply the release tag to HEAD of the release branch.
  • The RE will then deploy the new tag to the Stage environment in our ACE integration environments, where UAT will take start.
  • The RE should then create the release tag on the ACSF integration environment and deploy it to ACSF. UAT will complete there.
  • Once UAT is completed, a PR will be issued to merge the release commits (and its' tag) into the 'main' branch. HEAD on 'main' should always represent the most recent known deployable state at any given point in time.
  • The RE will then deploy the tagged release to Production in both our ACE and ACSF integration environments and confirm our testing sites continue to run as expected.
  • The RE will create Github releases on the main repo and ACSF repo.
  • Product and the technical lead will work together to create release communications to be distributed within Acquia (process TBD).

Updating customer applications

  • acquia/acquia-cms-project is the repository customers should use for their applications. The composer.json for that project will pull in any tagged releases with a simple composer update. Similarly, the composer.json for SF-ACMS will pull in releases from ACMS.

ACMS Release Naming conventions

Clone this wiki locally