Giter Site home page Giter Site logo

mawinter69 / dashboard-view-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jenkinsci/dashboard-view-plugin

0.0 0.0 0.0 672 KB

Jenkins dashboard-view plugin

Home Page: https://plugins.jenkins.io/dashboard-view/

License: MIT License

JavaScript 2.53% Java 96.20% CSS 0.14% HTML 1.13%

dashboard-view-plugin's Introduction

Jenkins Dashboard View Plugin

Jenkins Plugin GitHub release Jenkins Plugin Installs Maintenance

This plugin contributes a new view implementation that provides a dashboard / portal-like view for your Jenkins instance.

Add new view

On the Jenkins main page, click the + tab to start the new view wizard (If you do not see a +, it is likely you do not have permission to create a new view).  On the create new view page, give your view a name and select the Dashboard type and click ok.

Create new view

Configure dashboard view

The configuration is done in 2 parts, selecting the Jenkins jobs to include in the view, and selecting which dashboard portlets to have included in the view. The jobs that you select are used for all the portlets to draw their information from.

Configure view

Select jobs

Select the list of jobs to include in the dashboard. This is exactly the same process as the standard list view that comes with Jenkins.

Also a regular expression can be used to specify the jobs to include in the view.

Options

  • Show standard Jenkins list at the top of the page: shows uses standard Jenkins jobs list as it would be when using Jenkins' built-in 'List View' type.

Select portlets

Configure which portlets you want to see on the top and on the left and the right column. Each portlet may have its own configuration but at a minimum it requires a name to be given to it.

Click ok and the dashboard configuration will be saved and you will be brought to the dashboard view itself.

View layout

The dashboard view supports a layout with rows spanning the entire view with 2 columns.

Top portlet 1
Left portlet 1Right portlet 1
Left portlet 2Right portlet 2
Bottom portlet 1

Core portlets

The dashboard view comes with a number of portlets that you can configure your view with (New portlets can be contributed to Jenkins via other plugins, even your own).

Standard Jenkins jobs list

This portlet shows a row for each job showing the standard columns configured in Jenkins. All the configured portlets are displayed below this list.

Jobs Grid

The jobs grid portlet displays a 3 column table with the current status and a clickable link to the job. This offers a more compressed presentation of your jobs than the standard 1 row per job view, albeit at the cost of some job information.

Unstable Jobs

This portlet lists the unstable jobs within the view. Note, this does not necessarily list all of Jenkins' unstable jobs, but only looks at jobs configured for this view.

Test Statistics Grid

The test statistics grid shows detailed test data for the configured jobs.  This is useful to get an aggregated count of tests across the jobs in your view. If desired, jobs with zero tests can be hidden.

Test Statistics Chart

This is a pie chart of the tests in the configured jobs. It shows the passing, failing, and skipped jobs with the total number and percentages.

Test Trend Chart

This is a chart that shows your tests over time in aggregate. The logic is that for every day since the first job in the view was built, it shows the total number of passing, skipped and failing tests in aggregate across the build. It assumes that if a build did not occur on a given day, that the previous day's build results (or the previous-previous day, etc.) will be used.

Jobs statistics

Shows statistics based on jobs health.

Build statistics

Shows statistics based on build status.

Contributing

If you want to contribute to this plugin, you probably will need a Jenkins plugin developement environment. This basically means a current version of Java (Java 8 should probably be okay for now) and Apache Maven. See the Jenkins Plugin Tutorial for details.

If you have the proper environment, typing:

$ mvn verify

should create a plugin as target/*.hpi, which you can install in your Jenkins instance. Running

$ mvn hpi:run -Djenkins.version=2.375.2

allows you to spin up a test Jenkins instance on localhost to test your local changes before commiting.

Code Style

This plugin tries to migrate to Google Java Code Style, please try to adhere to that style whenever adding new files or making changes to existing files. The style is enforced using the spotless plugin, if the build fails because you were using the "wrong" style, you can fix it by running:

$ mvn spotless:apply

to reformat Java code in the proper style.

Extending the Dashboard View plugin

Much of the benefit of this plugin will be realized when other plugins that enhance Jenkins offer support for it.

Add support in your plugin:

  • Extend the DashboardPortlet class and provide a descriptor that extends the Descriptor<DashboardPortlet>
  • Create a jelly view called portlet.jelly
  • Optionally create a jelly view called main.jelly to be used when the portlet is in maximized mode (otherwise the same portlet.jelly view will be used)

It is possible to define custom parameters for the DashboardPortlet. The displayName is always required. To add new parameters:

  • create a jelly file called config.jelly to be used when the portlet is configured (added to the view in 'Edit View' config page);
  • modify constructor (with @DataBoundConstructor) to receive the new parameters.

Looking at the source code of this plugin will show a number of examples of doing this. The core portlets do the same thing that your plugin would do.

Please update the list below with a pull request against this repository.

Sample files:

MyPortlet.java:

import hudson.plugins.view.dashboard.DashboardPortlet;

class MyPortlet extends DashboardPortlet {

    @DataBoundConstructor
    public MyPortlet(String name) {
        super(name);
    }

// do whatever you want

    @Extension
    public static class DescriptorImpl extends Descriptor<DashboardPortlet> {
        @Override
        public String getDisplayName() {
            return "MyPortlet";
        }
    }
};

portlet.jelly:

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define"
  xmlns:dp="/hudson/plugins/view/dashboard" xmlns:l="/lib/layout"
  xmlns:t="/lib/hudson" xmlns:f="/lib/form">

  <dp:decorate portlet="${it}"> <!-- This is to say that this is a dashboard view portlet -->
    <tr><td> <!-- This is needed because everything is formatted as a table - ugly, I know -->

      <!-- you can include a separate file with the logic to display your data or you can write here directly -->
      <div align="center">
        <st:include page="myportlet.jelly"/>
       </div>

     </td></tr>
  </dp:decorate>
</j:jelly>

Other plugins that support the Dashboard View

(This is a curated list. If your favorite plugin is missing, please create a pull request to add it)

  • Cadence vManager - This plugin adds an ability to perform REST over HTTP calls to Cadence vManager as a step in your build.
  • Cppcheck Plugin - This plugin generates the trend report for CppCheck, a tool for static C/C++ code analysis.
  • Maven Release - This plugin allows you to perform a release build using the maven-release-plugin from within Jenkins.
  • OWASP Dependency-Check Plugin - This plugin can analyze dependencies and generate trend reports for Dependency-Check, an open source utility that detects known vulnerabilities in project dependencies.
  • Parasoft Findings
  • Questa VRM - Adds the ability for Jenkins to publish results from Mentor Graphics Questa Verification Run Manager (VRM).
  • Release Plugin - This plugin adds the ability to wrap your job with pre- and post- build steps which are only executed when a manual release build is triggered.
  • Rich Text Publisher Plugin - This plugin puts custom rich text message to the Build pages and Job main page (for last build). Atlassian Confluence, WikiText and HTML notations are supported.
  • SLOCCount Plugin - Adds a portlet showing number of lines, files and languages per job.
  • Warnings Next Generation Plugin - This plugin collects compiler warnings or issues reported by static analysis tools and visualizes the results.

License

This plugin is licensed under the MIT License (MIT), see LICENSE.

TODO

  • Use <div> instead of <table> to place portlets in the page.
  • Update this README with more screenshots.

Changelog

dashboard-view-plugin's People

Contributors

tobix avatar mambu avatar dependabot[bot] avatar ssogabe avatar evandy0 avatar olivergondza avatar jglick avatar ndeloof avatar cburroughs avatar stephenc avatar vlatombe avatar alanharder avatar cpoenisch avatar basil avatar rsandell avatar v1v avatar daniel-beck avatar christ66 avatar petehayes avatar pgottinger avatar sghill-rewrite avatar olamy avatar jetersen avatar jenkinsci-cert-ci avatar jwal avatar bvolpato avatar jake-stacktrace avatar timja avatar uhafner avatar sonarsphere avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.