| |
| Variables |
| --------- |
| |
| The Travis scripts use the following environment variables: |
| |
| * APR_VERSION - if set, APR of this version is built and installed in |
| $HOME/root/apr-$APR_VERSION - a value of "trunk" means trunk is |
| used, "*.x" means a branch, otherwise a tagged version is implied. |
| |
| * APR_CONFIG - arguments to pass when running APR's configure script |
| if APR_VERSION is set |
| |
| * APU_VERSION - if set, APR-util of this version is built and |
| installed in $HOME/root/apr-util-$APU_VERSION - a value of "*.x" |
| means a branch, otherwise a tagged version is implied. (Since there |
| is no "trunk" for apr-util, that value cannot be used here.) |
| |
| * APU_CONFIG - arguments to pass when running APR-util's configure |
| script if APU_VERSION is set |
| |
| * CONFIG - arguments to pass to httpd's configure script. |
| |
| * BUILDCONFIG - arguments to pass when running httpd's ./buildconf script |
| |
| * MFLAGS - arguments to pass when running "make" for httpd. |
| |
| * SKIP_TESTING - if set, the Perl test framework is not run for the |
| build. |
| |
| * TEST_UBSAN - set for job using UBSan ("Undefined Behaviour Sanitizer") |
| |
| * TEST_MALLOC - set for job using enhanced malloc debugging. |
| |
| * TEST_INSTALL - set for job testing "make install" |
| |
| * TEST_VPATH - set for job testing srcdir!=builddir |
| |
| * TEST_LDAP - set for job with slapd, running LDAP tests |
| |
| * TEST_SSL - set for job with SSL/TLS testing variants |
| |
| * TESTS - a list of Perl framework tests to run |
| |
| * TEST_ARGS - arguments to pass to ./t/TEST in the Perl test framework |
| |
| Caching |
| ------- |
| |
| Perl modules installed in $HOME/perl5 are cached. |
| |
| Anything installed into the $HOME/root directory is cached - notably, |
| versions of APR/APR-util are installed here and cached across httpd |
| build jobs without needing to be rebuilt every time. |
| |
| TODO list |
| --------- |
| |
| * MacOS build |
| * Windows build |
| * clang-on-Linux build |
| * Use containers for non-Ubuntu-based Linux testing |
| * sanity checks for use of APLOGNO() - empty arguments, accidental duplicates, etc. |
| - not sure how exactly |
| * Known test failures |
| - "apt-get install" timeout/fails - workaround by moving apt install to before_script phase? |
| |
| Testing from a Feature Branch |
| ----------------------------- |
| |
| An SVN branch off trunk should be mirrored to github, and will be |
| tested in the same way that trunk is in Travis, so this workflow is |
| available for those familiar with using Subversion and the standard |
| ASF/httpd repository layout. |
| |
| Tested branches are listed at: https://travis-ci.org/github/apache/httpd/branches |
| |
| Travis will also run the tests for a PR filed against the httpd Github |
| repository at https://github.com/apache/httpd or from a fork of this |
| repository if enabled for the Travis user. |
| |
| A workflow to enable testing would be as follows, substituting |
| $USERNAME for your github username: |
| |
| $ git clone https://github.com/apache/httpd |
| $ cd httpd |
| $ git remote add $USERNAME git@github.com:$USERNAME/httpd.git |
| $ git checkout -b my-feature origin/trunk |
| ... do some work ... |
| $ git commit ... |
| $ git push -u $USERNAME my-feature:my-feature |
| |
| To enable testing for a fork, visit the settings page at |
| https://travis-ci.org/$USERNAME/httpd/settings - you may need to sync |
| your account via https://travis-ci.org/account/repositories for a |
| freshly created fork. |
| |
| To create a Pull Request, go to a URL like: |
| https://github.com/apache/httpd/compare/trunk...$USERNAME:trunk |
| |
| Once a PR has been created, travis will run the tests and link the |
| results from a PR comment. All tested PRs are listed here: |
| https://travis-ci.org/github/apache/httpd/pull_requests |
| |
| To merge from github back to SVN trunk, create a patch from e.g.: |
| |
| $ git diff origin/trunk..my-feature |
| |
| and then apply it in SVN. To rebase a feature once trunk has |
| diverged, from a feature branch run: |
| |
| $ git pull |
| $ git rebase -i origin/trunk |
| |
| and follow the standard rebase steps. |