mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
=====================
 | 
						|
Version Control in CI
 | 
						|
=====================
 | 
						|
 | 
						|
Upgrading Mercurial
 | 
						|
===================
 | 
						|
 | 
						|
Upgrading Mercurial in CI requires touching a handful of different
 | 
						|
components.
 | 
						|
 | 
						|
Vendored robustcheckout
 | 
						|
-----------------------
 | 
						|
 | 
						|
The ``robustcheckout`` Mercurial extension is used throughout CI to
 | 
						|
perform clones and working directory updates. The canonical home of
 | 
						|
the extension is in the
 | 
						|
https://hg.mozilla.org/hgcustom/version-control-tools repository
 | 
						|
at the path ``hgext/robustcheckout/__init__.py``.
 | 
						|
 | 
						|
 | 
						|
When upgrading Mercurial, the ``robustcheckout`` extension should also
 | 
						|
be updated to ensure it is compatible with the version of Mercurial
 | 
						|
being upgraded to. Typically, one simply copies the latest version
 | 
						|
from ``version-control-tools`` into the vendored locations.
 | 
						|
 | 
						|
The locations are as follows:
 | 
						|
 | 
						|
- In-tree: ``testing/mozharness/external_tools/robustcheckout.py``
 | 
						|
- Treescript: ``https://github.com/mozilla-releng/scriptworker-scripts/blob/master/treescript/treescript/py2/robustcheckout.py``
 | 
						|
- build-puppet: ``https://github.com/mozilla-releng/build-puppet/blob/master/modules/mercurial/files/robustcheckout.py``
 | 
						|
- ronin_puppet: ``https://github.com/mozilla-platform-ops/ronin_puppet/blob/master/modules/mercurial/files/robustcheckout.py``
 | 
						|
- OpenCloudConfig: ``https://github.com/mozilla-releng/OpenCloudConfig/blob/master/userdata/Configuration/FirefoxBuildResources/robustcheckout.py``
 | 
						|
 | 
						|
 | 
						|
Debian Packages for Debian and Ubuntu Based Docker Images
 | 
						|
---------------------------------------------------------
 | 
						|
 | 
						|
``taskcluster/ci/packages/debian.yml`` and ``taskcluster/ci/packages/ubuntu.yml``
 | 
						|
define custom Debian packages for Mercurial. These are installed in various
 | 
						|
Docker images.
 | 
						|
 | 
						|
To upgrade Mercurial, typically you just need to update the source URL
 | 
						|
and its hash in this file.
 | 
						|
 | 
						|
 | 
						|
Windows AMIs
 | 
						|
------------
 | 
						|
 | 
						|
https://github.com/mozilla-releng/OpenCloudConfig defines the Windows
 | 
						|
environment for various Windows AMIs used by Taskcluster. Several of
 | 
						|
the files reference a ``mercurial-x.y.z-*.msi`` installer. These references
 | 
						|
will need to be updated to the Mercurial version being upgraded to.
 | 
						|
 | 
						|
The ``robustcheckout`` extension is also vendored into this repository
 | 
						|
at ``userdata/Configuration/FirefoxBuildResources/robustcheckout.py``. It
 | 
						|
should also be updated if needed.
 | 
						|
 | 
						|
Puppet Maintained Hosts
 | 
						|
-----------------------
 | 
						|
 | 
						|
Some hosts (namely macOS machines) are managed by Puppet and Puppet is used
 | 
						|
to install Mercurial.
 | 
						|
 | 
						|
Puppet code lives in the https://github.com/mozilla-releng/build-puppet repository.
 | 
						|
Relevant files are in ``modules/mercurial/``,
 | 
						|
``modules/packages/manifests/mozilla/mozilla-python27-mercurial-debian/``,
 | 
						|
and ``modules/packages/manifests/mozilla/py27_mercurial*``. A copy of
 | 
						|
``robustcheckout`` is also vendored at
 | 
						|
``modules/mercurial/files/robustcheckout.py``.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   The steps to upgrade Mercurial in Puppet aren't currently captured here.
 | 
						|
   Someone should capture those...
 |