Title: #701: ci: add ability to run tests in jenkins
Jenkins master polls github for new branches and pull requests. When it discovers new pull
request or branch or changes to existing pull request or branch it will allocate a jenkins
agent and executes pipeline defined in `./Jenkinsfile` (in SSSD source) on this agent.
The pipeline executes `./contrib/test-suite/run.sh` and archives logs when testing is
finished. Script `./contrib/test-suite/run.sh` prepares sssd-test-suite, starts the
vagrant machines and copy SSSD source code to the client machine. Then it calls
`./contrib/test-suite/run-client.sh` on the client machine which runs continuous
### Extending current tests
To extend current testing capabilities, modify `./contrib/test-suite/run.sh` and
`./contrib/test-suite/run-client.sh` to new requirements. These files can be modified by
anyone but are considered untrusted from contributor that is not an administrator of SSSD
repository. This means that if a public contributor submits a pull request that changes
those files, Jenkins will refuse to run tests.
### Adding additional distribution to test on
You need to modify `./Jenkinsfile`. Simply copy, paste and amend existing Fedora 28 stage.
This file is also considered untrusted so only administrators can modify it within a pull
You also need to extend `sssd-test-suite` and prepare vagrant boxes for this distro.
To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/701/head:pr701
git checkout pr701