aboutsummaryrefslogtreecommitdiff
Introduction
------------

automerge is a set of scripts used to manage continuous integration of a
set of branches being developed against mainline. Functionally, it aspires
to do what linux-next does.

ci-merge: The script that actually merges the branches together based on a
	  config file listing the various branches.
ci-report: Reports any warnings/errors resulting from the build
ci-test: Run some tests on the new build


ci-blame: Helper script used to report the commit ID that introduced a new
	  warning/error in the build
ci-config: Helper script that returns the configuration for the branches to
	   be used
ci.conf.sample: Sample configuration file

Quick Start
-----------

$ Setup a config file.

  You can do this by creating you own from ci.conf.sample, e.g. in
  $HOME/.automerge/config, or point to an existing with using --config/-f
  option

$ export LOCAL_LINUX_REPO=~/work/sources/linux-ci.git
$ export RR_CACHE=ssh://git@git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git

(Interactive run)
$ ci-merge -l $LOCAL_LINUX_REPO -c $RR_CACHE -f ~/.automerge/automerge-ci.conf -n

Conflict Resolution and sharing a rerere cache within a team
------------------------------------------------------------
The following example is used by the Qualcomm Landing Team to update their
shared rerere cache:

1. Make sure you have a local linux repo (LOCAL_LINUX_REPO)

2. If needed, add any new branches to the config file pointed to by -f or
autodetected by ci-config. The Qualcomm Landing Team configs live here[1]

3. Run automerge locally with any new branch or branch modifications
   $ cd <LOCAL_LINUX_REPO>
   $ export RR_CACHE=ssh://git@git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git
   $ ci-merge -c $RR_CACHE -f ~/.automerge/automerge-ci.conf -n

   Resolve the merge conflicts till ci-merge runs successfully

4. Commit the rr-cache from .git/rr-cache and then push to git.linaro.org
   $ git commit
   $ git push

   (You might need to setup a pushurl for the rr-cache git repo for git
   push to work)

5. Push your changes to automerge configs or branches to glo[1]

6. Rerun step 3 again. There should be no conflict now, since the resolution was pushed in step 4.

[1] https://git.linaro.org/landing-teams/working/qualcomm/configs.git