summaryrefslogtreecommitdiff
path: root/Build/source/README.7continuous
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-10 17:01:25 +0000
committerKarl Berry <karl@freefriends.org>2018-04-10 17:01:25 +0000
commit03ceb06427ff4019680b054f9f08ce5c3923d063 (patch)
treed79d4a429493a50afe9977d247222d7426cdc40a /Build/source/README.7continuous
parent584f1a0700fa73a35b7ad9bdcc84eb4792cd9278 (diff)
tlbuild remake for 2018
git-svn-id: svn://tug.org/texlive/trunk@47432 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/README.7continuous')
-rw-r--r--Build/source/README.7continuous79
1 files changed, 79 insertions, 0 deletions
diff --git a/Build/source/README.7continuous b/Build/source/README.7continuous
new file mode 100644
index 00000000000..2558b814f35
--- /dev/null
+++ b/Build/source/README.7continuous
@@ -0,0 +1,79 @@
+(This file was generated by makeinfo and splitinfo.gawk.)
+(Released under the old-style GNU documentation license;
+ see sources or other output files for full text.)
+
+9 Continuous integration
+************************
+
+Overview: the sources of TeX Live are subjected to continuous
+integration testing on Travis-CI
+(<https://travis-ci.org/TeX-Live/texlive-source>) via a git-svn mirror
+of the sources that is pushed to Github
+(<https://github.com/TeX-Live/texlive-source>). The git-svn mirror is
+updated (currently) at 30 minute intervals, and only the last commit
+pushed is tested on Travis-CI.
+
+9.1 Transfer from Subversion to Github
+======================================
+
+git-svn (<https://git-scm.com/docs/git-svn>) is used to check out the
+subtree 'Build/source' of the Subversion repository. The author index
+file used is not maintained in either Git or Subversion but can be
+provided on request.
+
+ The initial checkout was done by invoking
+ git svn --authors-file usermap clone svn://USER@tug.org/texlive/trunk/Build/source
+
+where the 'usermap' file maps Subversion user names to name and emails
+of the authors. If no user account at <tug.org> is available, anonymous
+checkout is possible, too:
+ git svn --authors-file usermap clone svn://tug.org/texlive/trunk/Build/source
+
+ In the following, we will use _admin_ to refer to a user who has
+read/write access to the TeX Live subversion repository, and is also an
+administrator of the 'TeX-Live' Team on Github. The above initial
+checkout has been carried out by _admin_ on the server 'texlive.info'.
+
+ On Github (<https://github.com>), a new git repository named
+'texlive-source' was created by _admin_ within the 'TeX-Live'
+"organization" (<https://github.com/TeX-Live>). The remote was added to
+the checkout with 'git remote add origin
+git@github.com:TeX-Live/texlive-source.git'.
+
+ To automate the update on Github, a new ssh key was generated and
+added to the 'texlive-source' repository on Github as deployment key.
+This way pushes using this key can only go to the 'texlive-source'
+repository and not anywhere else.
+
+ The usage of 'git-svn' requires a strict discipline to keep a linear
+history in the master branch. Since we are aiming at a pure mirror
+facility, we have decided to further restrict the 'master' branch of the
+'texlive-source' repository on Github to changes by _admin_.
+
+ This setup allows other developers to branch off 'master' and push
+their branches to the Github repository, but all updates need to come
+from the local 'master' (not the one on Github) to Subversion, back to
+'master' on 'texlive.info', and from there to Github.
+
+9.2 Automatic update of the Git mirror
+======================================
+
+_admin_ has installed a cron job on 'texlive.info' running every 30
+minute which essentially runs 'git svn rebase' and 'git push' in the
+'master' branch of the checkout. The first command fetches the changes
+from the Subversion repository and updates the 'master' branch with
+them, the second one pushes changes (if available) to Github.
+
+9.3 CI testing on Travis-CI
+===========================
+
+The 'source' tree of TeX Live contains a top-level file '.travis.yml'
+which controls the automatic testing on Travis-CI. _admin_ has
+registered to Travis-CI and allowed access to the Github's 'TeX-Live'
+organization's 'texlive-source' repository. The default settings are to
+build the last commit of each push. No further action is necessary on
+Travis-CI.
+
+ If changes have been pushed via the cron job above, Travis-CI will
+automatically checkout the last pushed commit and try building it.
+