ReleaseEngineering/Applications/Ship It: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "= What is it? = Ship it is a system that accepts requests for releases from humans and translates them into information and requests that our [https://wiki.mozilla.org/Release...")
 
(Primary ship-it UI repo is on github, we have bm85 for release automation and bm81 for legacy)
Line 2: Line 2:
Ship it is a system that accepts requests for releases from humans and translates them into information and requests that our [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Documentation 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.
Ship it is a system that accepts requests for releases from humans and translates them into information and requests that our [https://wiki.mozilla.org/Release:Release_Automation_on_Mercurial:Documentation 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 [http://git.mozilla.org/?p=build/release-kickoff.git;a=summary git.mozilla.org]. Release runner is part of [https://hg.mozilla.org/build/tools/file/default/buildfarm/release/release-runner.py the build/tools repository].
Source code for the web application lives on [https://github.com/mozilla/ship-it github] (mirrored on [http://git.mozilla.org/?p=build/release-kickoff.git;a=summary git.mozilla.org]). Release runner is part of [https://hg.mozilla.org/build/tools/file/default/buildfarm/release/release-runner.py the build/tools repository]. Release promotion uses the default branch, while legacy automation (eg Thunderbird) uses the <tt>old-release-runner</tt> branch.


= Where is it? =
= Where is it? =
The web application is deployed on IT's generic web cluster. There are [https://ship-it-dev.allizom.org/ dev], [https://ship-it.allizom.org/ stage], and [https://ship-it.mozilla.org/ production] instances of it. More in-depth, IT-oriented, information is available on [https://mana.mozilla.org/wiki/display/websites/ship-it.mozilla.org mana].
The web application is deployed on IT's generic web cluster. There are [https://ship-it-dev.allizom.org/ dev], [https://ship-it.allizom.org/ stage], and [https://ship-it.mozilla.org/ production] instances of it. More in-depth, IT-oriented, information is available on [https://mana.mozilla.org/wiki/display/websites/ship-it.mozilla.org mana].


Release runner is deployed through Puppet on buildbot-master81. Supervisord manages the running process.
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 =
= 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 [http://git.mozilla.org/?p=build/release-kickoff.git;a=blob;f=requirements/compiled.txt its requirements list].
The web application depends on many Python packages. Most are included in a vendor library in the repository. Required binary packages are noted in [https://github.com/mozilla/ship-it/blob/master/requirements/compiled.txt its requirements list].


Release runner's dependencies are described [https://hg.mozilla.org/build/puppet/file/default/modules/releaserunner/manifests/init.pp in its puppet manifests].
Release runner's dependencies are described [https://hg.mozilla.org/build/puppet/file/default/modules/releaserunner/manifests/init.pp in its puppet manifests].
Line 23: Line 23:


== Release runner ==  
== Release runner ==  
Release runner's repository needs to be updated by hand to deploy a newly checked in version. Run the following on buildbot-master81 to do so:
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
  cd /builds/releaserunner/tools
  hg pull && hg up
  hg pull && hg up

Revision as of 02:00, 27 June 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

Using it

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