├── .gitignore ├── .github ├── CODEOWNERS ├── release-drafter.yml ├── dependabot.yml └── workflows │ ├── release-drafter.yml │ └── jenkins-security-scan.yml ├── .mvn ├── maven.config └── extensions.xml ├── src ├── main │ ├── resources │ │ ├── io │ │ │ └── jenkins │ │ │ │ └── plugins │ │ │ │ └── genericchart │ │ │ │ ├── GenericChartProjectAction │ │ │ │ ├── declareChartJsClickArray.js │ │ │ │ ├── floatingBox.jelly │ │ │ │ └── chartLogicBox.js │ │ │ │ ├── ChartModel │ │ │ │ ├── help-rangeAroundAlist.html │ │ │ │ ├── help-limit.html │ │ │ │ ├── help-resultDenyList.html │ │ │ │ ├── help-resultAllowList.html │ │ │ │ ├── config.jelly │ │ │ │ └── help-unstableCondition.html │ │ │ │ ├── GenericChartColumn │ │ │ │ ├── help-rangeAroundAlist.html │ │ │ │ ├── help-limit.html │ │ │ │ ├── help-resultDenyList.html │ │ │ │ ├── help-resultAllowList.html │ │ │ │ ├── config.jelly │ │ │ │ ├── column.jelly │ │ │ │ └── chartLogicColumn.js │ │ │ │ ├── GenericChartGlobalConfig │ │ │ │ ├── config.jelly │ │ │ │ └── help-customEmbeddedFunctions.html │ │ │ │ ├── GenericChartPublisher │ │ │ │ └── config.jelly │ │ │ │ └── presetEquations │ │ └── index.jelly │ └── java │ │ └── io │ │ └── jenkins │ │ └── plugins │ │ └── genericchart │ │ ├── GenericChartGlobalConfig.java │ │ ├── ChartPointsWithBlacklist.java │ │ ├── ChartPoint.java │ │ ├── GenericChartProjectAction.java │ │ ├── ReportChart.java │ │ ├── ChartModel.java │ │ ├── GenericChartColumn.java │ │ ├── GenericChartPublisher.java │ │ ├── PresetEquationsManager.java │ │ └── PropertiesParser.java └── test │ └── java │ └── io │ └── jenkins │ └── plugins │ └── genericchart │ └── PresetEquationsManagerTest.java ├── Jenkinsfile ├── LICENSE ├── pom.xml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | .idea/ 3 | *.iml 4 | work/ 5 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @jenkinsci/report-generic-chart-column-plugin-developers 2 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | _extends: .github 2 | tag-template: report-generic-chart-column-$NEXT_MINOR_VERSION 3 | -------------------------------------------------------------------------------- /.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -Pconsume-incrementals 2 | -Pmight-produce-incrementals 3 | -Pconsume-incrementals 4 | -Pmight-produce-incrementals 5 | -------------------------------------------------------------------------------- /src/main/resources/io/jenkins/plugins/genericchart/GenericChartProjectAction/declareChartJsClickArray.js: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------- /src/main/resources/io/jenkins/plugins/genericchart/ChartModel/help-rangeAroundAlist.html: -------------------------------------------------------------------------------- 1 |
12 | Expression : [[ avg(..L1)*1.1 < L0 ] || [L1*1.3 < L0 ]] || [ avgN(count(..L0)/4, ..L1)*1.197 | TRUE , thus job WILL be turned to unstable13 | Upon : 60,20,45,70
14 | As : Ln...L1,L0
15 | Expanded as: [[ avg(60,20,45)*1.1 < 70 ] || [45*1.3 < 70 ]] || [ avgN(count(60,20,45,70)/4, 60,20,45)*1.1<70 ] 16 |17 | brackets: [[ avg(60,20,45)*1.1 < 70 ] || [45*1.3 < 70 ]] || [ avgN(count(60,20,45,70)/4, 60,20,45)*1.1<70 ] 18 |95 | is: true 96 |19 | brackets: [ avg(60,20,45)*1.1 < 70 ] || [45*1.3 < 70 ] 20 |65 | to: true || [ avgN(count(60,20,45,70)/4, 60,20,45)*1.1<70 ] 66 |21 | evaluating: avg(60,20,45)*1.1 < 70 22 |35 | to: true || [45*1.3 < 70 ] 36 |23 | evaluating: avg(60,20,45)*1.1 < 70 24 |33 | is: true 34 |25 | evaluating: avg(60,20,45)*1.130 | ... 45.833333333333336 < 70
26 | is: 45.833333333333336
27 | evaluating: 70
28 | is: 70 29 |
31 | is: true 32 |37 | evaluating: 45*1.3 < 70 38 |51 | to: true || true 52 |39 | evaluating: 45*1.3 < 70 40 |49 | is: true 50 |41 | evaluating: 45*1.346 | ... 58.5 < 70
42 | is: 58.5
43 | evaluating: 70
44 | is: 70 45 |
47 | is: true 48 |53 | evaluating: true || true 54 |63 | true 64 |55 | evaluating: true60 | ... true | true
56 | is: true
57 | evaluating: true
58 | is: true 59 |
61 | is: true 62 |67 | evaluating: avgN(count(60,20,45,70)/4, 60,20,45)*1.1<70 68 |81 | to: true || true 82 |69 | evaluating: avgN(count(60,20,45,70)/4, 60,20,45)*1.1<70 70 |79 | is: true 80 |71 | evaluating: avgN(count(60,20,45,70)/4, 60,20,45)*1.176 | ... 45.833333337 < 70
72 | is: 45.833333337
73 | evaluating: 70
74 | is: 70 75 |
77 | is: true 78 |83 | evaluating: true || true 84 |93 | true 94 |85 | evaluating: true90 | ... true | true
86 | is: true
87 | evaluating: true
88 | is: true 89 |
91 | is: true 92 |
102 | 1+1 < (2+0)*1 impl [ [5 == 6 || 33<(22-20)*2 ]xor [ [ 5-3 < 2 or 7*(5+2)<=5 ] and 1+1 == 2]] eq [ true && false ] 103 |104 |
117 | avg( ..L{MN/2}) < avg(L{MN/2}..)
118 | Expression : avg( ..L{MN/2}) < avg(L{MN/2}..)
119 | Upon : 2,4,6
120 | As : Ln...L1,L0
121 | MN = 3
122 | L indexes brackets: avg( ..L{3/2}) < avg(L{3/2}..)
123 | Expression : 3/2
124 | Expanded as: 3/2
125 | is: 1.5
126 | 3/2 = 1 (1.5)
127 | to: avg( ..L 1 ) < avg(L{3/2}..)
128 | Expression : 3/2
129 | Expanded as: 3/2
130 | is: 1.5
131 | 3/2 = 1 (1.5)
132 | to: avg( ..L 1 ) < avg(L 1 ..)
133 | Expanded as: avg( 2,4) < avg(4,6)
134 | avg( 2,4) < avg(4,6)
135 | brackets: avg( 2,4) < avg(4,6)
136 | evaluating: avg( 2,4) < avg(4,6)
137 | evaluating: avg( 2,4) < avg(4,6)
138 | evaluating: avg( 2,4)
139 | is: 3.0
140 | evaluating: avg(4,6)
141 | is: 5.0
142 | ... 3.0 < 5.0
143 | is: true
144 | is: true
145 | true
146 | is: true
147 | true
148 |
149 | 154 | FINAL_DOWN_CUTTING_OK 2 5 5 5 155 |156 | To print them, use LIST_INTERNALS instead of expression or look onto 157 | 158 | pre pprepared availabe embedded functions and exempalr config