├── .github
├── release-drafter.yml
├── CODEOWNERS
├── FUNDING.yml
├── workflows
│ ├── cd.yaml
│ └── jenkins-security-scan.yml
└── dependabot.yml
├── .mvn
├── maven.config
└── extensions.xml
├── docs
├── Setting_up.png
├── 1_Adding_jobs.png
├── 0_A_place_to_start.png
├── 4_Colour_blind_mode.png
├── 2_Three_columns_view.png
└── 3_Two_columns_view_with_claim_and_build_failure_analyzer_plugins.png
├── Jenkinsfile
├── .git-blame-ignore-revs
├── .gitignore
├── LICENSE
├── pom.xml
├── CHANGELOG.md
└── README.md
/.github/release-drafter.yml:
--------------------------------------------------------------------------------
1 | _extends: .github
2 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @jenkinsci/build-monitor-plugin-developers
2 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [ jan-molak ]
4 |
--------------------------------------------------------------------------------
/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Pconsume-incrementals
2 | -Pmight-produce-incrementals
3 | -Dchangelist.format=%d.v%s
4 |
--------------------------------------------------------------------------------
/docs/Setting_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/Setting_up.png
--------------------------------------------------------------------------------
/docs/1_Adding_jobs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/1_Adding_jobs.png
--------------------------------------------------------------------------------
/docs/0_A_place_to_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/0_A_place_to_start.png
--------------------------------------------------------------------------------
/docs/4_Colour_blind_mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/4_Colour_blind_mode.png
--------------------------------------------------------------------------------
/docs/2_Three_columns_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/2_Three_columns_view.png
--------------------------------------------------------------------------------
/Jenkinsfile:
--------------------------------------------------------------------------------
1 | buildPlugin(timeout: 120, useContainerAgent: true, configurations: [
2 | [platform: 'linux', jdk: 21],
3 | ])
4 |
--------------------------------------------------------------------------------
/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
1 | # .git-blame-ignore-revs
2 | # Enable Spotless for code formatting (#720)
3 | d6817317a2b7dd6600903ff235134856c5e852c3
4 |
--------------------------------------------------------------------------------
/docs/3_Two_columns_view_with_claim_and_build_failure_analyzer_plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/build-monitor-plugin/HEAD/docs/3_Two_columns_view_with_claim_and_build_failure_analyzer_plugins.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # IntelliJ
2 | .idea
3 | *.iml
4 |
5 | # Eclipse
6 | .classpath
7 | .project
8 | .settings/
9 |
10 | #JEnv
11 | .java-version
12 |
13 | target
14 | work
15 |
16 | node
17 | node_modules
18 |
19 | use-node
20 | .DS_Store
21 |
22 | chromedriver.exe
23 |
24 | !.travis.yml
25 |
26 | build-monitor-plugin/src/main/webapp/styles/index.css
27 | build-monitor-plugin/src/main/webapp/styles/main.js
28 |
--------------------------------------------------------------------------------
/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | io.jenkins.tools.incrementals
4 | git-changelist-maven-extension
5 | 1.10
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.github/workflows/cd.yaml:
--------------------------------------------------------------------------------
1 | # Note: additional setup is required, see https://www.jenkins.io/redirect/continuous-delivery-of-plugins
2 |
3 | name: cd
4 | on:
5 | workflow_dispatch:
6 | check_run:
7 | types:
8 | - completed
9 |
10 | permissions:
11 | checks: read
12 | contents: write
13 |
14 | jobs:
15 | maven-cd:
16 | uses: jenkins-infra/github-reusable-workflows/.github/workflows/maven-cd.yml@v1
17 | secrets:
18 | MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
19 | MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }}
20 |
--------------------------------------------------------------------------------
/.github/workflows/jenkins-security-scan.yml:
--------------------------------------------------------------------------------
1 | # Jenkins Security Scan
2 | # For more information, see: https://www.jenkins.io/doc/developer/security/scan/
3 |
4 | name: Jenkins Security Scan
5 |
6 | on:
7 | push:
8 | branches:
9 | - master
10 | pull_request:
11 | types: [opened, synchronize, reopened]
12 | workflow_dispatch:
13 |
14 | permissions:
15 | security-events: write
16 | contents: read
17 | actions: read
18 |
19 | jobs:
20 | security-scan:
21 | uses: jenkins-infra/jenkins-security-scan/.github/workflows/jenkins-security-scan.yaml@v2
22 | with:
23 | java-cache: 'maven' # Optionally enable use of a build dependency cache. Specify 'maven' or 'gradle' as appropriate.
24 | # java-version: 21 # Optionally specify what version of Java to set up for the build, or remove to use a recent default.
25 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2013-2014, Jan Molak, SmartCode Ltd http://smartcodeltd.co.uk
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
2 | ---
3 | version: 2
4 | updates:
5 | - package-ecosystem: "maven"
6 | directory: "/"
7 | schedule:
8 | interval: "weekly"
9 | ignore:
10 | # Starting with 7.x, Guice switches from javax.* to jakarta.* bindings.
11 | # See https://github.com/google/guice/wiki/Guice700
12 | - dependency-name: "com.google.inject:guice"
13 | versions: [">=7.0.0"]
14 | # Bad release in Artifactory breaks Dependabot
15 | - dependency-name: "com.sonyericsson.jenkins.plugins.bfa:build-failure-analyzer"
16 | versions: ["2.27.0"]
17 | # This is the minimum Jenkins version
18 | - dependency-name: "org.jenkins-ci.main:cli"
19 | - package-ecosystem: "github-actions"
20 | directory: "/"
21 | schedule:
22 | interval: "weekly"
23 | - package-ecosystem: "npm"
24 | directory: "build-monitor-plugin"
25 | schedule:
26 | interval: "weekly"
27 | ignore:
28 | # Breaking changes, see:
29 | # https://github.com/jenkinsci/build-monitor-plugin/pull/677
30 | - dependency-name: "jasmine-core"
31 | versions: [">=3.0.0"]
32 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 |
6 | org.jenkins-ci.plugins
7 | plugin
8 | 5.18
9 |
10 |
11 |
12 | build-monitor
13 | ${revision}-${changelist}
14 | pom
15 | Build Monitor
16 | https://github.com/jenkinsci/build-monitor-plugin
17 |
18 |
19 | build-monitor-plugin
20 | build-monitor-acceptance
21 |
22 |
23 |
24 | scm:git:https://github.com/${gitHubRepo}.git
25 | scm:git:git@github.com:${gitHubRepo}.git
26 | ${scmTag}
27 | https://github.com/${gitHubRepo}
28 |
29 |
30 |
31 |
32 | repo.jenkins-ci.org
33 | https://repo.jenkins-ci.org/releases
34 |
35 |
36 |
37 |
38 | 1.14
39 | 999999-SNAPSHOT
40 |
41 | 2.492
42 | ${jenkins.baseline}.3
43 | jenkinsci/build-monitor-plugin
44 | false
45 |
46 |
47 |
48 |
49 | repo.jenkins-ci.org
50 | https://repo.jenkins-ci.org/public/
51 |
52 |
53 |
54 |
55 |
56 | repo.jenkins-ci.org
57 | https://repo.jenkins-ci.org/public/
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## Changelog
2 |
3 | * All notable changes prior to 1.12 are documented in this changelog.
4 | * Release notes for versions >= 1.14 can be found on the [GitHub releases page](https://github.com/jenkinsci/build-monitor-plugin/releases).
5 |
6 | == Release History
7 |
8 | - **1.11+build.201701152243** [Changelog](http://bit.ly/JBMDiffB20161104-B20170115) [Release notes](http://bit.ly/JBMBuild20170115)
9 | - **1.10+build.201611041949** [Changelog](http://bit.ly/JBMDiffB20160803-B20161104) [Release notes](http://bit.ly/JBMBuild20161104)
10 | - **1.10+build.201608030223** [Changelog](http://bit.ly/JBMDiffB20160613-B20160803) [Release notes](http://bit.ly/JBMBuild20160803)
11 | - **1.9+build.201606131328** [Changelog](http://bit.ly/JBMDiffB20160605-B20160613) [Release notes](http://bit.ly/JBMBuild20160613)
12 | - **1.9+build.201606052339** [Changelog](http://bit.ly/JBMDiffB20160502-B20160605) [Release notes](http://bit.ly/JBMBuild20160605)
13 | - **1.9+build.201605021413** [Changelog](http://bit.ly/JBMDiffB20160111-B20160502) [Release notes](http://bit.ly/JBMBuild20160502)
14 | - **1.8+build.201601112328** [Changelog](http://bit.ly/JBMDiffB20160105-B20160111) [Release notes](http://bit.ly/JBMBuild20160111)
15 | - **1.8+build.201601052013** [Changelog](http://bit.ly/JBMDiffB172-B20160105) [Release notes](http://bit.ly/JBMBuild20160105)
16 | - **1.7+build.172** (Nov 29, 2015) [Changelog](http://bit.ly/JBMDiffB164-B172) [Release notes](http://bit.ly/JBMBuild172)
17 | - **1.6+build.164** (Nov 08, 2015) [Release notes](http://bit.ly/JBMBuild164)
18 | - **1.6+build.163** (Nov 07, 2015) [Release notes](http://bit.ly/JBMBuild163)
19 | - **1.6+build.162** (Nov 05, 2015) [Changelog](http://bit.ly/JBMDiffB159-B162) [Release notes](http://bit.ly/JBMBuild162)
20 | - **1.6+build.142** (Apr 05, 2015) [Changelog](http://bit.ly/JBMDiffB140-B142) [Release notes](http://bit.ly/JBMBuild142)
21 | - **1.6+build.140** (Feb 09, 2015) [Changelog](http://bit.ly/JBMDiffB138-B140) [Release notes](http://bit.ly/JBMBuild140)
22 | - **1.6+build.138** (Jan 24, 2015) [Changelog](http://bit.ly/JBMDiffB135-B138) [Release notes](http://bit.ly/JBMBuild138)
23 | - **1.6+build.135** (Jan 6, 2015) [Changelog](http://bit.ly/JBMDiffB123-B135) [Release notes](http://bit.ly/JBMBuild135)
24 | - **1.6+build.132** (Oct 12, 2014) [Changelog](http://bit.ly/JBMDiffB123-B132) [Release notes](http://bit.ly/JBMBuild132)
25 | - **1.5+build.123** (Aug 19, 2014) [Changelog](http://bit.ly/JBMDiffB120-B123) [Release notes](http://bit.ly/JBMBuild123)
26 | - **1.5+build.120** (Aug 14, 2014) [Changelog](http://bit.ly/JBMDiffB119-B120) [Release notes](http://bit.ly/JBMBuild120)
27 | - **1.5+build.119** (Jul 27, 2014) [Changelog](http://bit.ly/JBMDiffB118-B119) [Release notes](http://bit.ly/JBMBuild119)
28 | - **1.5+build.118** (Jul 14, 2014) [Changelog](http://bit.ly/JBMDiffB117-B118) [Release notes](http://bit.ly/JBMBuild118)
29 | - **1.5+build.117** (Jun 29, 2014) [Changelog](http://bit.ly/JBMDiffB102-B117) [Release notes](http://bit.ly/JBMBuild117)
30 | - **1.4+build.102** (Jun 07, 2014) [Changelog](http://bit.ly/JBMDiffB72-B102)
31 | - **1.3+build.72** (Mar 01, 2014) [Changelog](http://bit.ly/JBMDiffB71-B72)
32 | - **1.3+build.71** (Feb 26, 2014) [Changelog](http://bit.ly/JBMDiffB70-B71)
33 | - **1.3+build.70** (Feb 23, 2014) [Changelog](http://bit.ly/JBMDiffB68-B70)
34 | - **1.3+build.68** (Jan 02, 2014) [Changelog](http://bit.ly/JBMDiffB64-B68)
35 | - **1.2+build.64** (Nov 13, 2013) [Changelog](http://bit.ly/JBMDiffB59-B64)
36 | - **1.1+build.59** (Oct 20, 2013) [Changelog](http://bit.ly/JBMDiffB53-B59)
37 | - **1.0+build.53** (Oct 09, 2013) [Changelog](http://bit.ly/JBMDiffB51-B53)
38 | - **1.0+build.51** (Oct 06, 2013) [Changelog](http://bit.ly/JBMDiffB33-B51)
39 | - **1.0+build.33** (Aug 17, 2013) [Changelog](http://bit.ly/JBMDiffB30-B33)
40 | - **1.0+build.30** (Aug 13, 2013) [Changelog](http://bit.ly/JBMDiffB20-B30)
41 | - **1.0+build.20** (Aug 10, 2013) [Changelog](http://bit.ly/JBMDiffB14-B20)
42 | - **1.0+build.14** (Jul 21, 2013) [Changelog](http://bit.ly/JBMDiffB10-B14)
43 | - **1.0+build.10** (Jul 13, 2013) First public release of the plugin
44 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Jenkins CI Build Monitor Plugin
2 |
3 | [](https://ci.jenkins.io/job/Plugins/job/build-monitor-plugin/job/master/)
4 | [](https://plugins.jenkins.io/build-monitor-plugin)
5 | [](https://plugins.jenkins.io/build-monitor-plugin)
6 |
7 | Build Monitor Plugin provides a highly visible view of the status of selected Jenkins jobs.
8 |
9 | It easily accommodates different computer screen sizes and is ideal as an Extreme Feedback Device to be displayed on a screen on your office wall.
10 |
11 | Have a question? Perhaps it's already been answered - check the [FAQ](#faq) section below.
12 |
13 | ## Features
14 |
15 | * Displays the status and progress of selected jobs. The view is updated automatically every couple of seconds using AJAX, so no "Enable Auto Refresh" needed.
16 | * Displays the names of people who might be responsible for "breaking the build".
17 | * Supports the [Claim plugin](https://plugins.jenkins.io/claim/), so that you can see who's fixing a broken build
18 | * Supports [View Job Filters](https://plugins.jenkins.io/view-job-filters/), so that you can easily create Build Monitors for "slow builds", "only failing", etc.
19 | * Supports [Build Failure Analyzer](https://plugins.jenkins.io/build-failure-analyzer/), so that you know not only *who*, but also *what* broke the build; [learn more](http://bit.ly/JBMBuild102)
20 | * Supports [CloudBees Folders Plugin](https://plugins.jenkins.io/cloudbees-folder/), so that you can have project- and team-specific nested Build Monitors; [learn more](http://bit.ly/JBMBuild117)
21 | * Supports [Pipeline Plugin](https://plugins.jenkins.io/workflow-aggregator/), so that the currently executing stage(s) are shown.
22 | * The number of columns and size of the font used is easily customisable, making it trivial to accommodate screens of different sizes.
23 | * UI configuration is stored in a cookie, making it possible to display different number of columns and using different font size on each of the screens at your office.
24 | * Can work in a colour-blind-friendly mode; [learn more](https://github.com/jenkinsci/build-monitor-plugin/issues/30#issuecomment-35849019)
25 |
26 | ## Your feedback matters!
27 |
28 | Found a bug or want to give feedback? Raise [an issue](https://github.com/jenkinsci/build-monitor-plugin/issues?state=open)
29 | or submit a pull request ([start with this mini-dev guide](https://github.com/jenkinsci/build-monitor-plugin/wiki/Development-Guide), it might come in handy).
30 |
31 | ## Setting up
32 |
33 | To create a new Build Monitor View, click on the "New View" tab, select "Build Monitor View" and select jobs you wish to display on the monitor.
34 |
35 | 
36 |
37 | Simple, right? :-) You can have as many Build Monitor Views as you want - the most popular approach is to have one per team or one per project.
38 |
39 | # A picture is worth a thousand words
40 |
41 | 
42 | 
43 | 
44 | 
45 |
46 | ## (A)TDD
47 |
48 | If you'd like to understand more about the logic behind the Build Monitor Plugin,
49 | have a look at the [tests that drove the design](/build-monitor-plugin/src/test/java/com/smartcodeltd/jenkinsci/plugins).
50 |
51 | ## FAQ
52 |
53 | ### How do I let my teammates know that I'm fixing a broken build?
54 |
55 | By claiming it. Build Monitor supports Jenkins [Claim Plugin](https://plugins.jenkins.io/claim/), so once you have it installed, enable "Broken build claiming" in the "Post-build actions" of your Jenkins job. From now on you'll be able to claim any further broken builds and Build Monitor will pick it up.
56 |
57 | You might also be interested in a [script](https://wiki.jenkins.io/display/JENKINS/Allow+broken+build+claiming+on+every+jobs) that enables claiming on all your Jenkins jobs.
58 |
59 | ### How do I know what broke the build?
60 |
61 | Wouldn't it be great to know _what_ made your build fail? Well of course it would. Build Monitor supports Jenkins [Build Failure Analyzer Plugin](https://plugins.jenkins.io/build-failure-analyzer/) so get it, teach it, and Build Monitor will tell you what the Failure Analyzer found out.
62 |
63 | ### I have too many jobs on one screen, what should I do?
64 |
65 | You have several options here:
66 |
67 | 1. **review the granularity of your jobs**: If you have too many low-level jobs displayed on one screen, consider consolidating them using [Promoted Builds Plugin](https://plugins.jenkins.io/promoted-builds/) or [MultiJob Plugin](https://plugins.jenkins.io/jenkins-multijob-plugin/)
68 | 1. **use job filters**: Build Monitor supports Jenkins [View Job Filters Plugin](https://plugins.jenkins.io/view-job-filters/), if you have it installed
69 | 1. get a bigger screen ...
70 |
71 | ### Red and green colours are lovely, but I'm colour blind ...
72 | There's a colour blind mode you can [enable in the Settings](https://github.com/jenkinsci/build-monitor-plugin/issues/30#issuecomment-35849019)
73 |
74 | ## Open Source Software Used
75 |
76 | * [Angular.js](http://angularjs.org/)
77 | * [Angular-slider](http://prajwalkman.github.io/angular-slider/)
78 | * Customised [Angular Bootstrap](http://angular-ui.github.io/bootstrap/)
79 | * [HTML5 Boilerplate](http://html5boilerplate.com/) normalize.css
80 | * [OpenSans font](http://www.google.com/fonts/specimen/Open+Sans) by Steve Matteson
81 |
82 | ## Friends of Build Monitor
83 |
84 | Build Monitor is continuously delivered to a Jenkins near you thanks to:
85 | * the time and commitment of [the author](http://smartcodeltd.co.uk/) and [the contributors](https://github.com/jenkinsci/build-monitor-plugin/graphs/contributors)
86 | * the [acceptance tests](/build-monitor-acceptance/src/test/java)
87 |
--------------------------------------------------------------------------------