Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Simple pull request Plugin GSoC 2018 Phase 1 Evaluation

Simple pull request Plugin GSoC 2018 Phase 1 Evaluation

Presentation slides of GSoC Phase 1 evaluation of project Simple pull request job plugin.

Project page: https://jenkins.io/projects/gsoc/2018/simple-pull-request-job-plugin/

Abhishek Gautam

August 14, 2018
Tweet

More Decks by Abhishek Gautam

Other Decks in Education

Transcript

  1. Simple pull request job Plugin (SPRP)
    First Evaluation by: Abhishek Gautam
    14 June 2018
    .

    View Slide

  2. Introduction
    ● I am a 3rd year Computer Science student from Visvesvaraya National Institute
    of Technology, Nagpur, India.
    ● I am a regular competitive programmer.
    ● I have done two internships as a Game Programmer as well.
    ● I am part of ACM Chapter and Google student developer club of my college.
    ● My interest in automation motivated my participation in the Jenkins GSOC
    2018 program
    .

    View Slide

  3. Project Mentors:
    ● Martin d'Anjou
    ● Kristin Whetstone
    ● Jeff K
    ● Oleg Nenashev (Organisation Admin)

    View Slide

  4. Project Description
    1. Configure job for pull requests using a YAML file.
    2. Interaction with Bitbucket Server, Bitbucket Cloud, Gitlab and Github.
    3. Detect the presence of certain types of the report at conventional location, and
    publish them. Users should also able specify the location using the YAML file.
    4. Publish build status.

    View Slide

  5. Prior work
    1. Travis YML Plugin: Runs “.travis.yml” as jenkins pipeline job. Does not support
    external pull request. Last commit for this plugin was on 14 Nov 2016.
    2. CodeShip Plugin: Converts codeship "steps.yaml" and "services.yaml" to
    scripted pipeline code. This plugin has never been released.
    3. Jenkins pipeline builder: This is a external non-Java-based tool, which cannot
    be easily converted to a Jenkins plugin.

    View Slide

  6. Design
    1. Build on the top of multibranch pipeline plugin.
    a. Interface to show branch and pull requests build
    b. Detection of trusted revisions in a repository.
    c. Publishing of build status to the repository.
    2. Convert the YAML configuration to declarative pipeline.

    View Slide

  7. Design (Specifying scripts to run)
    Example: Path provided: “./scripts/hello”
    a. On UNIX machine “./scripts/hello.sh” will be called
    b. On non-UNIX machine “./scripts/hello.bat” will be called.

    View Slide

  8. What is available now (Coding phase 1 features)
    1. User are able to use Jenkinsfile.yaml for build.
    2. Git Push step
    3. User scripts
    4. Agent configuration
    5. harvest results and reports.
    a. junit()
    b. findbugs()
    c. archiveArtifacts()
    6. Basic interface to parse and get build specifications from YAML file.

    View Slide

  9. Plugin Configuration

    View Slide

  10. Demo

    View Slide

  11. Plans for next coding phase 2
    1. Formalise the YAML format to use for Jenkinsfile.yaml
    2. Create Step Configurator for SPRP plugin. This will enable users to use
    Pipeline steps in Jenkinsfile.yaml.
    3. Automatic indentation in Pipeline SnippetGenerator class.
    4. Write tests for the plugin.

    View Slide