Add HTTPRequest plugin to CI
Is it OK/possible to add this plugin to Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin With it a person could, if they wanted, set the Inria Jenkins to monitor some smalltalk mc repo urls and then trigger a github hook which would start travis-ci building a Configuration across several platforms. If you look at this repo: https://github.com/pdebruic/ConfigurationOfSeaside3 It contains the minimum needed to have Travis-CI build Seaside on Squeak, Pharo (1.4 & 2) , and Gemstone. To trigger the build you can either push a git commit to github or send a POST github as described here: http://developer.github.com/v3/repos/hooks/#test-a-push-hook I'd prefer to send a POST because it seems easier than coordinating a git push from the Inria CI. If its not possible to add that then I can just get a VPS for $1/month and run my own jenkins on it. But this technique may be generally useful. Thanks Paul
On 2013-10-31, at 19:55, Paul DeBruicker <pdebruic@gmail.com> wrote:
Is it OK/possible to add this plugin to Jenkins:
https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin
From what I get this plugin is used to make http request from jenkins. You can easily do that with pharo ;) or bash scripts. I always prefer to not use any jenkins specific stuff, since you cannot just copy the script and run it locally.
Please see below, if this is not what you need, I can install the plugin..
With it a person could, if they wanted, set the Inria Jenkins to monitor some smalltalk mc repo urls and then trigger a github hook which would start travis-ci building a Configuration across several platforms.
Maybe I misunderstood, but you want to monitor an external resource from jenkins, we use the [URLTrigger] plugin for that, see https://ci.inria.fr/pharo-contribution/job/AsmJit/configure
If you look at this repo:
https://github.com/pdebruic/ConfigurationOfSeaside3
It contains the minimum needed to have Travis-CI build Seaside on Squeak, Pharo (1.4 & 2) , and Gemstone. To trigger the build you can either push a git commit to github or send a POST github as described here:
http://developer.github.com/v3/repos/hooks/#test-a-push-hook
I'd prefer to send a POST because it seems easier than coordinating a git push from the Inria CI.
If its not possible to add that then I can just get a VPS for $1/month and run my own jenkins on it. But this technique may be generally useful.
You can just setup a repository polling see https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/configure
Hi Camillo, thanks for following up. Yes I thought to use the URLTrigger to monitor the Monticello repos. The reason to use the HTTPRequest plugin instead of just a bash oneliner with curl or something is that for the POST that triggers the Travis build to succeed you need to include github authentication information. The HTTPRequest plugin has a method to specify and store the login info in one place, and hide the password, rather than putting it in each Jenkins job config. So to build on multiple versions of Pharo, Squeak, and Gemstone (etc) you'd: 1. make a Github repo that tells Travis how to build the project and on what platforms 2. tell Travis about the Github repo 3. make a Jenkins job that monitors the Monticello repos the smalltalk devs currently use 4. when the Jenkins job notices a change, it sends a POST to Github triggering the build on Travis 5. (no idea how to do this yet, but probably not too bad) get the build results from Travis back to Jenkins to update the build status for each platform/version I suggest that we make a smalltalk-community group account on github that can store these multi-platform build jobs and keep that github account's authorization info in the HTTPRequest module on Inria's CI. thanks again, Paul Camillo Bruni-3 wrote
On 2013-10-31, at 19:55, Paul DeBruicker <
pdebruic@
> wrote:
Is it OK/possible to add this plugin to Jenkins:
https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin
From what I get this plugin is used to make http request from jenkins. You can easily do that with pharo ;) or bash scripts. I always prefer to not use any jenkins specific stuff, since you cannot just copy the script and run it locally.
Please see below, if this is not what you need, I can install the plugin..
With it a person could, if they wanted, set the Inria Jenkins to monitor some smalltalk mc repo urls and then trigger a github hook which would start travis-ci building a Configuration across several platforms.
Maybe I misunderstood, but you want to monitor an external resource from jenkins, we use the [URLTrigger] plugin for that, see https://ci.inria.fr/pharo-contribution/job/AsmJit/configure
If you look at this repo:
https://github.com/pdebruic/ConfigurationOfSeaside3
It contains the minimum needed to have Travis-CI build Seaside on Squeak, Pharo (1.4 & 2) , and Gemstone. To trigger the build you can either push a git commit to github or send a POST github as described here:
http://developer.github.com/v3/repos/hooks/#test-a-push-hook
I'd prefer to send a POST because it seems easier than coordinating a git push from the Inria CI.
If its not possible to add that then I can just get a VPS for $1/month and run my own jenkins on it. But this technique may be generally useful.
You can just setup a repository polling see https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/configure
signature.asc (457 bytes) <http://forum.world.st/attachment/4718258/0/signature.asc>
-- View this message in context: http://forum.world.st/Add-HTTPRequest-plugin-to-CI-tp4718203p4718345.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
On 2013-11-01, at 15:48, Paul DeBruicker <pdebruic@gmail.com> wrote:
Hi Camillo,
thanks for following up. Yes I thought to use the URLTrigger to monitor the Monticello repos.
The reason to use the HTTPRequest plugin instead of just a bash oneliner with curl or something is that for the POST that triggers the Travis build to succeed you need to include github authentication information. The HTTPRequest plugin has a method to specify and store the login info in one place, and hide the password, rather than putting it in each Jenkins job config.
So to build on multiple versions of Pharo, Squeak, and Gemstone (etc) you'd: 1. make a Github repo that tells Travis how to build the project and on what platforms 2. tell Travis about the Github repo 3. make a Jenkins job that monitors the Monticello repos the smalltalk devs currently use 4. when the Jenkins job notices a change, it sends a POST to Github triggering the build on Travis 5. (no idea how to do this yet, but probably not too bad) get the build results from Travis back to Jenkins to update the build status for each platform/version
Sorry for being sceptical, but why do you want to trigger the travis build on github from jenkins and then get the result back? Wouldn't it make more sense to just push the changes from the MC repositories to github and thus trigger the travis job that way? In any case, I added the HTTPRequest plugin so you can start trying out your travis trigger...
participants (2)
-
Camillo Bruni -
Paul DeBruicker