Skip to content
Brent Cook edited this page Jul 24, 2015 · 1 revision

Continuous Integration

tl;dr: The POSIX versions of Meterpreter are tested continuously with Travis-CI, while the Windows versions are handled by Jenkins.

We now have a lovely Jenkins server running at https://ci.metasploit.com, that keeps an eye on both commits to master and pull requested branches. Commits to the master branch are always automatically built. For pull requests, the process has a sometimes manual step (in order to avoid getting owned by random PRs that execute code).

If a Pull Request is from someone on Jenkins' whitelist of approved committers, the PR will be built and a message posted to the PR informing of success or failure.

If a Pull Request is from someone not on the whitelist, Jenkins will request authorization from an administrator. The correct response is:

jenkins, this is ok to test

If an administrator would like to add that committer to the whitelist, a comment of:

jenkins, add to whitelist

will do the job.

Note that Jenkins does not have push rights to the GitHub repos -- in the event ci.metasploit.com gets compromised, we don't want strangers pushing code to Meterpreter. Because of this, we are not giving Jenkins the ability to push status updates directly to the repo. Only the PR message message will happen.

Unlike Jenkins, Travis-CI does respect GitHub permissions, and therefore, can push statuses.

If there are problems or other considerations for CI, please hound @bturner-r7, @jlee-r7 or @todb-r7.

Clone this wiki locally