-
Notifications
You must be signed in to change notification settings - Fork 318
Jenkins
Since Jenkins is not as straightforward as Travis CI to navigate, this page contains a few things you might need to know about our own Jenkins server and how to navigate the results. This server is only accessible if you're logged into GitHub and part of the matlab2tikz organization.
For every pull request, Jenkins will try to build the merged pull request on some supported environments:
- MATLAB 2014a
- MATLAB 2014b
- Octave 3.8
if the person who requests the pull is part of the matlab2tikz organization.
For security reasons, pull requests of outsiders are not build automatically, but require confirmation from a developer.
There are a few commands that @matlab2tikzBot can understand and in some pull requests the bot will for feedback. Note, however, that the bot is quite stupid and requires almost exactly these phrases (case matters, whitespace does not).
The @matlab2tikzBot will ask for confirmation to test a pull request from new developers:
Can a developer please verify this PR for testing?
Any developer can respond:
-
@matlab2tikzBot: test this PR
to test the PR -
@matlab2tikzBot: add OP to whitelist
to whitelist the person for testing (should be done with care and it's often easier to add the person to the organization after their first PR anyway)
At any random time, you should also be able to instruct the bot to test the current PR again using @matlab2tikzBot: please test this
Tip: You can add these commands to your saved replies for convenience
Note that you can always use the breadcrumbs bar at the top to navigate or to look where you are in the hierarchy.
The first interesting page is the matlab2tikz project page which shows the last few complete builds of the project (lower left corner) and for each environment (R2014a
, R2014b
and Octave
) whether the last build passed.
The easiest way to navigate further, is to pick a job number in the lower left corner. Note those are mostly linked to a GitHub PR.
You will end up on a job page, this shows the results/progress of that job for all environments we test in.
In the left sidebar, you can access some of the aspects of the job, e.g. see how many TODOs/FIXMEs are in the code using the Open Tasks.
In the main panel (center), you see an overview of the test results. Most importantly, at the bottom you get a bit of information about:
- why the tests failed (e.g. for build #51, it reports "The function "m2tstrjoin" crashed on line 14.")
- what the overall status in the different environments ("configurations") was.
By clicking on one of the configurations, you get a more detailed report specifically for that environment.
E.g. for build #51 on MATLAB 2014a, you get quite a detailed breakdown of the test report.
A few interesting things (both in the center panel and left sidebar):
- TAP results and TAP Extended Test Results show a table of the headless tests.
- Again you can see what likely caused a build fail. Clicking on "Indication N" takes you to the part of the log that makes Jenkins decide that way.
- If you click on ACID report you get the typical Travis report formatted as HTML page.
- You can also look at the Console output produced during the build if you prefer an unformatted representation.
This is a short and incomplete changelog of what has changed to our Jenkins. This should allow us to track any regressions of Jenkins.
-
2015 October 12: @egeerardyn: installed
Xvfb
plugin and configured it. Hopefully, this allows some MATLAB tests depending on the Filter Design toolbox to run properly. - 2016 Spring: Jenkins server now uses wired LAN instead of wireless LAN.
- 2016 September 5 - 16: @egeerardyn: Jenkins server downtime is scheduled: the Jenkins server will be moved to a new location.
-
2016 November 23: @egeerardyn: Server update removed dependency of
libread.so.6
from Octave. Patched in theso.7
version which seems to launch Octave 3.8 just fine for the time being. - 2017 April 11: @egeerardyn: taking Jenkins CI server offline due to lack of valid MATLAB license and phasing out Octave 3.8 is imminent.
This is an incomplete list of tasks that should/could happen:
- Write scripts for granting SSH access to developers automatically based on their Github keys
- Integrate with PMD/CPD to check for duplicate code and other code smells.