wiki:DeveloperGuidelines/Testing/CI

Version 4 (modified by anirudh.tiwari, 7 years ago) ( diff )

--

CI Server

Unittests on every PR

Using Travis-CI, UnitTests are run on every new pull request made in the GitHub repository of Eden and then the status of the pull request is updated.

How PRs are tested

When a pull request is opened, Travis CI receives a pull request notification from GitHub. This notification is turned into a build and run. These are the steps that are followed.

  1. Web2py is installed from web2py src.
  2. A new requirements.txt file is generated from optional_requirements.txt and requirements.txt. In future, if any other requirements.txt (for eg: for EdenTest) is also given as argument, that will also be incorporated in the generated_requirements.txt file. Note: generated_requirements.txt is not in the main branch and not in version control. Also, packages like matplotlib are installed from the binaries as installing them from pip, which builds first, takes a lot of time.
  3. Eden is installed.
  4. 000_config.py is configured based on the enviorment variables. As of now, all the database systems supported by Eden are tested, namely, mysql, postgres-9.1, postgres-9.3, postgres-9.3+postgis and sqlite3.
  5. Prepopulation
  6. UnitTests are run

Note: For postgres-9.3, psycopg2 is used as the driver as the default web2py driver pg8000 does not have all the mappings.

Please see .travis.yml for the configuration and the files inside travis directory for the scripts used above.

Along the way, commit status of the commits involved is updated, which in turn shows on GitHub as either a warning that the build is still running, that the pull request should be merged with caution because the build failed, or that it can be merged safely because the build was successful.

Travis CI builds a pull request when it's first opened and when commits are added to the pull request throughout its lifetime. Rather than test the commits from the branches the pull request is sent from, it tests the merge between the origin and the upstream branch.

To enable Travis CI for your developer branch. Sign in with your GitHub account on Travis CI, in the process you'll be asked to grant Travis CI a set of access permissions. Once you are done with it, go to the profile page of your Travis account. There you'll find all your repositories, flip the switch for those repositories for which you want to enable the Travis CI service.

Note: See TracWiki for help on using the wiki.