Connecting Jenkins to Moodle

40 views
Skip to first unread message

dursun...@gmail.com

unread,
Apr 21, 2017, 7:33:54 AM4/21/17
to Jenkins Users
Hello erveyone,

at the moment I am writing my bachelor thesis on the topic "Connecting software development tools to an e-learning platform". The E-Learning platform in this case is 'Moodle'. The Tools would be for example 'Jenkins'. 

My task is to find out, whether following szenario is possible:
You are a Moodle participant and you have chosen the course for learning how to use 'jenkins'. First you are reading general things on slides in Moodle. After reading and getting a picture of Jenkins functionalities, the next task in moodle would be to open the tool jenkins and do a specific task there. Problem is how does the Moodle trainer know that this task has been done? 

My aim is to find out how the Moodle trainer knows that the task in the external tool is done.

Could this be done via web services e.g. Rest since Jenkins has the REST interface? In Jenkins it should be checked whether a certain task has been done, if so an email should be sent to the Moodle Trainer.

This is the only possibility I can imagine at the moment.

Maybe it would also be possible to do that through a URL which gets the information form Jenkins and the trainer can always check the URL?...

Is that possible?
Do you have other approaches?
I am grateful for any help!

greetings
Jüli

Mark Waite

unread,
Apr 21, 2017, 4:58:00 PM4/21/17
to Jenkins Users
A casual glance at the Moodle competency API (https://docs.moodle.org/dev/Competency_API) hints that you might be able to have the student create a Jenkins job which compiles and runs a program (written by the student) which includes a library call (library provided by you) that register the results of the student effort (compilation and running of that program) with the Moodle competency API.

You might provide your library in several different languages so that the students create and experience Jenkins with multiple languages and/or multiple platforms.

Another (possibly simpler) approach would be to point the students to one or more source code repositories (GitHub) which they will use to create something with Jenkins (compile, run tests, etc.).  You can include your "report back to Moodle" in those source code repositories.  When it compiles successfully, it will notify Moodle that the student has completed the lesson.

Mark Waite

dursun...@gmail.com

unread,
Apr 25, 2017, 8:42:46 AM4/25/17
to Jenkins Users
Hello Mark,

first I want to thank you for your answer. I think I didn't describe my task clearly.
I would like Jenkins to check wheter in Jenkins oder in another tool like 'DOORS' the task given by moodle is done. So Jenkins checks the Tool in which the Moodle participant has to do his task and looks wheter the task is done. If so, there has to be a connection between Moodle and Jenkins. Jenkins has to show Moodle hat the task is done, so the task in Moodle should automatically get a tick mark.

How could I make this kind of communication? Through a URL? Web Services?

Mark Waite

unread,
Apr 25, 2017, 6:06:09 PM4/25/17
to jenkins...@googlegroups.com
On Tue, Apr 25, 2017 at 6:42 AM <dursun...@gmail.com> wrote:
Hello Mark,

first I want to thank you for your answer. I think I didn't describe my task clearly.
I would like Jenkins to check wheter in Jenkins oder in another tool like 'DOORS' the task given by moodle is done. So Jenkins checks the Tool in which the Moodle participant has to do his task and looks wheter the task is done. If so, there has to be a connection between Moodle and Jenkins. Jenkins has to show Moodle hat the task is done, so the task in Moodle should automatically get a tick mark.


I think you're saying that you would like a Jenkins job to run periodically to check that an external system (DOORS, or SAP, or Jira, or Rally, or VersionOne, or ...) has reached a specific "goal state", then report the results of that query of the "goal state" to the Moodle server.

If you can write a program which checks the state of that external system, then you can ran that program from within a Jenkins job.

If you have a program which checks the state of the external system (which seems like the hardest part of the problem to me), then you should be able to call the Moodle API's from that same program to publish the status of the external system to Moodle.

In that scenario, Jenkins is the execution engine which runs the "status checker".  The "status checker" then calls Moodle to report results of the status check to Moodle.

Mark Waite
 
How could I make this kind of communication? Through a URL? Web Services?

Am Freitag, 21. April 2017 22:58:00 UTC+2 schrieb Mark Waite:
A casual glance at the Moodle competency API (https://docs.moodle.org/dev/Competency_API) hints that you might be able to have the student create a Jenkins job which compiles and runs a program (written by the student) which includes a library call (library provided by you) that register the results of the student effort (compilation and running of that program) with the Moodle competency API.

You might provide your library in several different languages so that the students create and experience Jenkins with multiple languages and/or multiple platforms.

Another (possibly simpler) approach would be to point the students to one or more source code repositories (GitHub) which they will use to create something with Jenkins (compile, run tests, etc.).  You can include your "report back to Moodle" in those source code repositories.  When it compiles successfully, it will notify Moodle that the student has completed the lesson.

Mark Waite

On Friday, April 21, 2017 at 5:33:54 AM UTC-6, dursun...@gmail.com wrote:
Hello erveyone,

at the moment I am writing my bachelor thesis on the topic "Connecting software development tools to an e-learning platform". The E-Learning platform in this case is 'Moodle'. The Tools would be for example 'Jenkins'. 

My task is to find out, whether following szenario is possible:
You are a Moodle participant and you have chosen the course for learning how to use 'jenkins'. First you are reading general things on slides in Moodle. After reading and getting a picture of Jenkins functionalities, the next task in moodle would be to open the tool jenkins and do a specific task there. Problem is how does the Moodle trainer know that this task has been done? 

My aim is to find out how the Moodle trainer knows that the task in the external tool is done.

Could this be done via web services e.g. Rest since Jenkins has the REST interface? In Jenkins it should be checked whether a certain task has been done, if so an email should be sent to the Moodle Trainer.

This is the only possibility I can imagine at the moment.

Maybe it would also be possible to do that through a URL which gets the information form Jenkins and the trainer can always check the URL?...

Is that possible?
Do you have other approaches?
I am grateful for any help!

greetings
Jüli

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/a6affd79-9ea8-40b8-bc99-1b4ea8e22c7e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages