diff options
author | Karl Berry <karl@freefriends.org> | 2018-04-10 17:01:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-04-10 17:01:25 +0000 |
commit | 03ceb06427ff4019680b054f9f08ce5c3923d063 (patch) | |
tree | d79d4a429493a50afe9977d247222d7426cdc40a /Build/source/README.7continuous | |
parent | 584f1a0700fa73a35b7ad9bdcc84eb4792cd9278 (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.7continuous | 79 |
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. + |