Skip to content

Latest commit

 

History

History
133 lines (101 loc) · 4.02 KB

README.md

File metadata and controls

133 lines (101 loc) · 4.02 KB

propelo-job-reporter

Propelo's Jenkins Plugin to send reports about jobs' logs and metadata to the Propelo Service.


Installation

Installation pre-requirements


  1. Have a Propelo account with permissions to add an integration.
  2. Have access and permissions to install plugins in Jenkins.


Instalation Steps


  1. Login to your Propelo account
  2. Access the Integrations Settings Tile.
Integrations Tile
  1. Add a new Jenkins integration
Add a Jenkins Integration Install the plugin Add a new instance
  1. Install the plugin

  2. Configure the plugin




Contributing


Build


  • Maven

    Steps:

    • Build command: mvn install

    • This creates an hpi file that can be uploaded to Jenkins:
      target/propelo-job-reporter.hpi

    Notes:

    • Use Java 8 to build otherwise there will be some issues with Javadoc step, e.g.:

      JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 mvn install
      

  • Gradle

    Steps:

    • Build command: JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./gradlew clean build

    • This creates an hpi file that can be uploaded to Jenkins:
      build/libs/propelo-job-reporter.hpi

    Notes:

    • Use Java 8 to build otherwise there will be some issues with Javadoc step, e.g.:

      JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./gradlew clean build
      

The findbugs step may fail (skipTests=true doesn't seem to work) but anaways runs after the build has been created



Deploy


Testing

Test while developing

  JENKINS_HOME=jenkins-job-reporter/work ./gradlew clean server

  JENKINS_HOME=jenkins-job-reporter/work JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./gradlew clean server  

  GRADLE_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 JENKINS_HOME=jenkins-job-reporter/work JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./gradlew clean server  

Run Jenkins docker image:

  1. Blue Ocean Jenkins

    https://hub.docker.com/r/jenkinsci/blueocean/
    
  2. Officcial jenkins docker (lts or any specific version)

    docker run -d --name jenkins-dev -p 8080:8080 -p 50000:50000 --mount "type=bind,source=/<base path>/data/jenkins_dev,target=/var/jenkins_home" --env JAVA_OPTS=-Dhudson.footerURL=https://levelops.io jenkins/jenkins:lts
    
  • Run integration test class over Wiremock provided in resources


Develop


Jelly UI: https://wiki.jenkins.io/display/JENKINS/Jelly+form+controls

Knowledge Base


  • Adding Plugin Manually return error "413 Request Entity Too Large".
    This is a known issue with Jenkins Nginx default settings.
    Solution: Increase client max body size limit in Nginx config
    1. Edit Nginx config
      vi /etc/nginx/nginx.conf
    2. Add the following line to http or server or location context to increase the size limit
      \# set client body size to 20M \#  
       client_max_body_size 20M;
    3. Restart Nginx service
      service nginx reload
    References:
    Link to Jenkins Bug.
    Link to solution instructions.
    Link to Jenkins Gradle Plugin
    Link to Jenkins Gradle Plugin - GitHub