ReleaseEngineering/Applications/Ship It: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Primary ship-it UI repo is on github, we have bm85 for release automation and bm81 for legacy)
(→‎Release runner: add supervisorctl call)
Line 26: Line 26:
  cd /builds/releaserunner/tools
  cd /builds/releaserunner/tools
  hg pull && hg up
  hg pull && hg up
Switch to root and run
supervisorctl restart releaserunner


= Using it =
= Using it =
Standard usage of Ship It is documented as part of the full [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Starting_a_Release#Submit_to_Ship_It release automation documentation]. [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Troubleshooting Troubleshooting information] is also available there.
Standard usage of Ship It is documented as part of the full [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Starting_a_Release#Submit_to_Ship_It release automation documentation]. [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Troubleshooting Troubleshooting information] is also available there.

Revision as of 23:41, 17 August 2016

What is it?

Ship it is a system that accepts requests for releases from humans and translates them into information and requests that our Buildbot-based release automation can process. It consists of a web application/api and a backend script ("release runner") to do much of the actual work.

Source code for the web application lives on github (mirrored on git.mozilla.org). Release runner is part of the build/tools repository. Release promotion uses the default branch, while legacy automation (eg Thunderbird) uses the old-release-runner branch.

Where is it?

The web application is deployed on IT's generic web cluster. There are dev, stage, and production instances of it. More in-depth, IT-oriented, information is available on mana.

Release runner is deployed through Puppet on buildbot-master85 for release promotion, and on buildbot-master81 for legacy automation. Supervisord manages the running process.

Requirements/dependencies

The web application depends on many Python packages. Most are included in a vendor library in the repository. Required binary packages are noted in its requirements list.

Release runner's dependencies are described in its puppet manifests.

Deployment

Web app

The dev instance of Ship It automatically pulls the tip of the master branch of the git repository - no human intervention is needed to deploy to it. Stage and production deployment are handled through Chief, which let us push explicit revisions at will:

When deploying, you should enter your own name in the first field, the deployment password in the second, and the revision you want to push in the third. If you don't have the deployment passwords, ask someone for them.

Release runner

Release runner's repository needs to be updated by hand to deploy a newly checked in version. Run the following on buildbot-master85 (release promotion) or buildbot-master81 (legacy) to do so:

cd /builds/releaserunner/tools
hg pull && hg up

Switch to root and run

supervisorctl restart releaserunner

Using it

Standard usage of Ship It is documented as part of the full release automation documentation. Troubleshooting information is also available there.