jenkins-bot has submitted this change and it was merged.
Change subject: Add developer instructions for using travis-ci ......................................................................
Add developer instructions for using travis-ci
Change-Id: Ic2fc7f0975bda22ffad03f99add2b2a383d7c791 --- M .travis.yml M tests/README.rst 2 files changed, 55 insertions(+), 6 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/.travis.yml b/.travis.yml index c708c6a..414475a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ +# See tests/README.rst for instructions for using travis with developer builds. + language: python
python: @@ -59,10 +61,10 @@
env: global: - # This is the encrypted password, which can only be decrypted by Travis itself - # See http://docs.travis-ci.com/user/encryption-keys/ - # And http://docs.travis-ci.com/user/build-configuration/#Secure-environment-varia... - # Command use to generate: travis encrypt USER_PASSWORD=<pwd> -r wikimedia/pywikibot-core + # This is the encrypted password for Wikimedia SUL user 'Pywikibot-test', + # and is only decrypted by Travis when running builds of code merged into + # the github repository 'wikimedia/pywikibot-core'. + # See http://docs.travis-ci.com/user/encryption-keys/ for more information. - secure: kofInMlisiTBt9o/Ustc/vySlkKfxGzGCX2LwA1D2waym8sDTS0o5gMJ5LsrT/BUKwZbe1vLozPHqZrrkQvsdTml+DpZuotzdILs0m0f3BUoexEC6OON5IDljuxFyETrD1Ug44ih5Mc4lVFOdTcBzg501ZmswGwQrBvg/OyEFfE= matrix: - LANGUAGE=en FAMILY=wikipedia diff --git a/tests/README.rst b/tests/README.rst index e5e289d..4258016 100644 --- a/tests/README.rst +++ b/tests/README.rst @@ -10,8 +10,8 @@ 'load tests protocol'. https://docs.python.org/2/library/unittest.html#load-tests-protocol. The default ordering begins with tests of underlying components, then tests -site and page semantics, and finishes with tests of the scripts and tests -which are not yet included in the ordered tests. +site and page semantics, and finishes with tests of the scripts and finally +any tests which have not been inserted into the ordered list of tests.
A function collector also exists in the 'tests' package.
@@ -71,6 +71,41 @@ python pwb.py tests/site_tests.py -v
+travis-ci +========= + +After changes are published into a github repository, tests may be run on +travis-ci.org according to the configuration in .travis.yml . + +When changes are merged into the main repository, they are replicated to +https://github.com/wikimedia/pywikibot-core , and travis tests are run and +published at travis-ci.org/wikimedia/pywikibot-core/builds . These tests +use the Wikimedia global (SUL) account 'Pywikibot-test', which has a password +securely stored in .travis.yml . See section env:global:secure. + +Anyone can run these tests on travis-ci.org using their own account, with +code changes that have not been merged into the main repository. To do this: + +1. create a github and travis-ci account +2. fork the main github repository https://github.com/wikimedia/pywikibot-core +3. enable builds from the travis profile page: https://travis-ci.org/profile +4. push changes into the forked git repository +5. watch the build at https://travis-ci.org/<username>/pywikibot-core/builds + +Only travis-ci builds from the main repository can access the password for the +Wikimedia account 'Pywikibot-test'. All tests which require a logged in user +are skipped if the travis-ci build environment does not have a password. + +To enable 'user' tests on travis-ci builds for a different repository, add +a username and password to travis: + +1. Go to https://travis-ci.org/<username>/pywikibot-core/settings/env_vars +2. Add a new variable named PYWIKIBOT2_USERNAME and a value of a valid + Wikimedia SUL username +3. Add another variable named USER_PASSWORD, with the private password for + the Wikimedia SUL username used in step 2 +4. The next build should run tests that require a logged in user + Contributing tests ==================
@@ -118,6 +153,18 @@
self.get_site('itwikt')
+For tests which require network access to a website which is not an APISite, +the class attribute 'sites' may include a hostname. + +:: + + sites = { + 'wdq': + 'hostname': 'wdq.wmflabs.org', + } + } + + Other class attributes ----------------------
pywikibot-commits@lists.wikimedia.org