We now have integrated our Jenkins build environment hosted by apache.org with our Ant github repo[1], such that whenever a pull request is submitted, it now triggers a build and runs tests against the submitted pull request and then comments/adds a status to the PR on how the build went. This is going to help us in doing some basic verification of the changes that's being proposed in the PR.

The job resides at [2]. Few details about this job:

1. The goal of this job is to run tests against the PR. It doesn't produce any binaries. Furthermore, unlike the Ant Matrix builds, this one does _not_ run against all possible combinations of JDK/OS.

2. This job has been configured to be run against Windows (for now). I decided to use Windows since that's the one where we usually run into issues and not many of us Ant developers are on Windows. I _might_ add another job for the PRs which tests against Linux, but I'm not sure if there's a easy way to do that. So for now, it's going to be just Windows.

3. This job uses Java 8 runtime to compile and run the tests, irrespective of which branch the PR is submitted against. What this means is even if you submit this PR against 1.9.x branch of Ant, the minimum compatible Java version of which is Java 5, this job will still use Java 8 to both compile and run the job. This means, it may not be able to catch certain (compilation or other) issues. I did not find a way to conditionally choose a JDK version for the job nor did I find a way to conditionally choose a job for a PR (based on what branch it is submitted). So we will have to do with this, till we support multiple branches. However, given that this is just for basic testing and there will be PR reviewers to actually do the review and then another round of tests that get triggered when the PR is merged, I'm not too worried about this constraint for now.

4. Finally, the regular Ant Matrix builds are unchanged and will continue to build after commits are pushed to relevant branches to the Ant upstream repo. Those jobs will remain unaffected by this change.

5. A very minor detail - I have intentionally named the job with a space character in its name so that the checkout location too will contain that space in the directory path (Jenkins uses the project name to create directories for the checked out job). This will allow us to catch certain issues we typically have with URI parsing and such. But that's just a minor detail and doesn't have anything to do with the PR integration itself.

The next few days, I'll probably try and see if I can get a Linux based job to run alongside this Windows job for PRs.

One other thing - unlike the similar integration we have for Ant Ivy job/repo, this one is much more advanced (in a good way) plugin that's been configured with this Ant repo. This has much more finer grained controls over what can be triggered and who can trigger/retrigger the jobs from pull requests. This still follows the apache build conventions and in fact uses the same technique as many other apache hosted projects do. I'll migrate the one for Ivy to this scheme once things settle down with this one.

[1] https://github.com/apache/ant

[2] https://builds.apache.org/job/Ant%20Github-PR-Windows/


-Jaikiran


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to