Child pages
  • SPIN 2020 / 2021 Exercise
Skip to end of metadata
Go to start of metadata


Make sure you have a version of git installed and have a GitHub account.


Fork the repository into a repository of your own and clone your forked repository to your laptop.


  • Configure an action that outputs the commit hash of HEAD using the command git rev-parse and whose output it if a form similar to
HEAD is bb8c42de11e171e22a7df0615981608faf35ea4d
  • Once the action is in place on GitHub, add a line consisting of your name to and commit it to trigger the workflow. Check that the workflow triggered and produced output on the Actions pane. You should see output similar to this:

  • Finally, write and push to the repository a script using Perl or Python that counts the number of lines in and creates a HTML document whose body reads "Number of lines in is N" where "N" is the number of lines in

Sending in results

Once done, please send me the URL of your repository on GitHub using my email address. Please make sure that your repository:

  • contains you workflow yaml file
  • shows output of the workflow in the Actions pane
  • contains your script to count the number of lines in

Current Jenkins setup

As part of the project we would like to implement as much of the functionality currently offered by Jenkins as feasible. You can have a look at a sample Jenkins report for a test run that resulted in some failures on: using the user name Albert and password Einstein .

Items to implement:

  • identifying the updates to submodules that triggered each test run
  • capture log output
  • capture information which test failed and keep track of changes in the number of failing tests
  • send email to Einstein Toolkit mailing list when tests start to fail and are no longer failing
  • No labels

1 Comment

  1. Wishlist of functionalilty:

    • run tests and parse summary.log into list of failed tests including indication of
      • new tests (that pass, fail)
      • newly failing tests
      • newly passing tests
    • report which commits in submodules triggered build
    • report run time of each test as table (top 90%) and plot
    • report build time of each file as table (top 90%) and plot
    • link to commits in source code repositories
    • make log and diff (maybe full output) of failed tests available via web-interface