1
0
mirror of https://github.com/ohwgiles/laminar.git synced 2024-09-28 22:40:45 +00:00
Commit Graph

349 Commits

Author SHA1 Message Date
Oliver Giles
3cc01bc45d Better average line in Build time graph
The technique to display the average line in the old Chart.js
does not look so great in the new version. Take a different
approach using a plugin instead.
2022-11-18 19:47:59 +13:00
Guilherme Lima
e25b58944d Minor tweaks to charts appearance
Some charts had a more 'curvy' look to it. Adjusted this by using the
'tension' parameter.
Adjusted 'Utilization' pie chart aspect ratio so it is not so big.
2022-11-18 19:47:59 +13:00
Guilherme Lima
1be755e323 Update Chart.js to version 3.9
Fixes #175

Following 3.x Migration Guide, here is a list of the changes:

https://www.chartjs.org/docs/latest/getting-started/v3-migration.html#specific-changes
- Chart.scaleService was replaced with Chart.registry. Scale defaults are now in Chart.defaults.scales[type].
- scales.[x/y]Axes arrays were removed. Scales are now configured directly to options.scales object with the object key being the scale Id.
- scales.[x/y]Axes.barPercentage was moved to dataset option barPercentages
- scales.[x/y]Axes.barThickness was moved to dataset option barThickness
- scales.[x/y]Axes.scaleLabel was renamed to scales[id].title
- scales.[x/y]Axes.scaleLabel.labelString was renamed to scales[id].title.text
- scales.[x/y]Axes.ticks.userCallback was renamed to scales[id].ticks.callback
- tooltips namespace was renamed to tooltip to match the plugin name
- legend, title and tooltip namespaces were moved from options to options.plugins

https://www.chartjs.org/docs/latest/getting-started/v3-migration.html#defaults
- legend, title and tooltip namespaces were moved from Chart.defaults to Chart.defaults.plugins.
- elements.line.fill default changed from true to false

https://www.chartjs.org/docs/latest/getting-started/v3-migration.html#chart-types
- horizontalBar chart type was removed. Horizontal bar charts can be configured using the new indexAxis option

https://www.chartjs.org/docs/latest/getting-started/v3-migration.html#tooltip
- xLabel and yLabel were removed. Please use label and formattedValue
- The callbacks no longer are given a data parameter. The tooltip item parameter contains the chart and dataset instead
- The tooltip item's index parameter was renamed to dataIndex and value was renamed to formattedValue

https://www.chartjs.org/docs/latest/getting-started/v3-migration.html#ticks
- options.gridLines was renamed to options.gridLines
2022-11-18 19:47:59 +13:00
Oliver Giles
e9fc547a72 wallboard: correctly tag running build for css
also on page refresh, not just via SSE.
2022-09-03 19:54:10 +12:00
Oliver Giles
01183a3c25 wallboard: fix stuck page without filter query
if no filter param is provided, use a copy of the jobs array
to avoid an infinite sort loop in the frontend

resolves #174
2022-09-03 19:53:14 +12:00
Oliver Giles
e7defa9f15 fe: fix display of first run of job
if it is still running and is the first known of its
name to the frontend, special handling is needed
2022-09-03 19:51:29 +12:00
Dmitry Bogatov
99e2e62906 laminard: ignore SIGHUP
Many daemons reload config file on SIGHUP; laminar don't have config file, so
signal is ignored (with informative message on stdout). Previously, default
handler for SIGHUP was used that terminates process.

Closes: #166
2022-01-30 08:21:14 +13:00
Oliver Giles
261c08d2fe test: assert on >= 5 rather than strictly ==
due to process scheduling, we may even receive job_completed
messages before the test continues. The assert only needs to
check that there are enough messages to prevent invalid indexing.
This fixes a flakey test.
2022-01-28 19:44:40 +13:00
Oliver Giles
48c0e9340e pkg: move to debian 11 (bullseye) 2022-01-28 19:28:30 +13:00
Oliver Giles
7303e4d592 fe perf: insertAdjacentHTML is faster than innerHTML+= 2022-01-22 20:08:23 +13:00
Oliver Giles
23cb30fc0c fe perf: throttle log rendering
as a further enhancement to efafda16f, schedule a render immediately if
500ms have passed without one, and cap the max delay to 500ms.
This removes delay for short logs, and prevents an issue where output that
is produced reasonably quickly will not be rendered for a long time.
2022-01-22 20:07:23 +13:00
Oliver Giles
7eb19ce8c4 fe: fix home icon link under subdir
when hosting laminar under a subdir, href=/ will break out of
the application. Use href=. instead (relative to base href)
2022-01-22 15:18:43 +13:00
Oliver Giles
7c4e1108ae nginx example: trailing slash on proxy_pass argument
this causes nginx to substitute the location directive. Makes no
difference if hosted at toplevel, but if using a subdirectory,
omitting the trailing slash will prevent laminar's http server
from finding the resources.
2022-01-22 15:18:43 +13:00
Oliver Giles
5607a93cc1 manpage: fix synopsis queue/start/run 2022-01-22 15:18:43 +13:00
Oliver Giles
41ddd8fe4f allow adding job to front of queue
laminarc now supports {queue,start,run} --next to place the job at the
front of the queue instead of at the end.

resolves #162
2022-01-22 15:18:43 +13:00
Oliver Giles
e581a0cf5d tests: add setNumExecutors method 2022-01-22 15:18:43 +13:00
Oliver Giles
4a6f99a203 tests: reinstantiate laminar for each unit
reinstantiate Laminar and Server classes and clean the temporary
LAMINAR_HOME directory for each unit test via SetUp and TearDown.
2022-01-22 15:18:43 +13:00
Oliver Giles
efafda16ff improve frontend performance with large logs
frontend would furiously try to render as fast as it received data
chunks from the server. This causes a lot of extra load on the browser
renderer if the logs are large. Buffer and batch calls to rerender
to improve performance.

resolves #165
2022-01-01 21:30:38 +13:00
Oliver Giles
bb087b72ee Revert "make taskFailed non-fatal"
Originally reverted to prevent a crash when reading from an http
client raised ECONNRESET. Although this prevented a crash, laminar
stopped listening for http connections. That issue was resolved in
37bbf6ade4 (see #164), so make all exceptions fatal again.

This reverts commit 02810309fc.
2021-12-24 13:46:57 +13:00
Oliver Giles
37bbf6ade4 server: handle ECONNRESET in http connections
In real deployments, sometimes http connections break with ECONNRESET.
This causes the kj::HttpServer listener promise to break, which means
no more connections are accepted. Catch this exception and restart
the listener.

resolves #164
2021-12-24 13:46:54 +13:00
Oliver Giles
e1686d454b display run number for queued jobs
in the frontend and in laminarc queue/show-queued. This makes
it much easier to abort/unqueue runs which have not yet started.

resolves #155
2021-12-05 13:42:27 +13:00
Oliver Giles
549f49052a create unix sockets with 660 permissions
Realistically this is probably the permission mask you
want if you are using a unix socket for LAMINAR_BIND_RPC
or LAMINAR_BIND_HTTP.

resolves #160
2021-11-12 20:06:35 +13:00
Oliver Giles
d913d04c4a UserManual: correct Debian version name
resolves #163
2021-11-07 13:56:52 +13:00
Oliver Giles
78ceeec3e8 frontend: fix double-escaped link
do not escape links to downstream jobs generated with a private
ANSI CSI escape sequence, because the newer ansi_up escapes HTML.
Work around its dropping of unknown sequences, and have the link
use the Vue routing mechanism rather than a page reload.

resolves #161
2021-09-25 19:07:36 +12:00
Oliver Giles
ded13ed9fe docs: update references to current distro versions 2021-08-04 12:03:38 +12:00
Oliver Giles
15dbed4cac pkg: move centos8 to rocky8 2021-08-04 12:02:09 +12:00
Oliver Giles
e67e0bc453 examples: add git post-receive hook example 2021-07-30 19:59:13 +12:00
Oliver Giles
2de8b91ad2 examples: consistently omit extension for scripts 2021-07-30 19:58:44 +12:00
Oliver Giles
399f07cf3a add example config for nginx reverse proxy 2021-07-24 20:08:23 +12:00
Chl
2941a5abdd Fix typos and formulation in UserManual.md 2021-07-21 08:41:22 +12:00
Oliver Giles
a50514a135 frontend: better dynamic update of graphs
react to jobCompletion messages by updating graphs in
more cases so manual refresh is not necessary to see
most up to date representation.
2021-07-09 10:04:20 +12:00
Oliver Giles
60f7ee5402 make cmake 3.6 the minimum supported version
All packaged distros have this for a long time now.
2021-07-09 10:04:20 +12:00
Oliver Giles
7f1c293588 pkg: centos8 has cmake not cmake3 2021-07-09 10:04:20 +12:00
Starbeamrainbowlabs
fe4caa155b README: Use nproc to get cpu core count
This way, make will always use all the available cpu cores.
2021-06-24 11:05:12 +12:00
Oliver Giles
f3a6ba2f4b console log: improve color scheme
based on base16 default/bright palette
2021-06-11 15:41:16 +12:00
Oliver Giles
dff4c93e15 cmake: GTEST_LIBRARIES not GTEST_LIBRARY
Seems this used to be OK but now not always...
2021-06-09 20:39:01 +12:00
Oliver Giles
747ae3ada8 abort test: use "sleep inf" instead of "yes"
Sometimes yes can produce too much output too quickly and
overwhelm the host. It is not relevant to testing the abort
functionaliy.

resolves #143
2021-06-04 15:26:23 +12:00
Oliver Giles
9a5ccc70e3 add example script for docker builds 2021-06-04 10:12:59 +12:00
Oliver Giles
d01cf1c9b0 failure to remove rundir should not abort the jobrunner
kj::Directory::remove will throw if it fails to remove some files, e.g. in
case of insufficient permissions. Catch this and move right along.

resolves #156
2021-05-23 14:42:06 +12:00
Oliver Giles
02810309fc make taskFailed non-fatal
turns out we can end up here when an http client unexpectedly
drops the connection, so it must not cause an exit()
2021-05-03 09:18:06 +12:00
Oliver Giles
b16991b17a fix race in http log output
Creating of LogWatcher makes it automatically receive new log
chunks as it is part of logWatchers. But we cannot be sure that
stream->write().then() will have already completed, so there is
a chance that a null fulfiller will be caused, causing a crash.
We cannot defer the creation of the LogWatcher until after
stream->write() because in the meantime we may lose new messages,
so call writeLogChunk to make sure we have a fulfiller before
entering stream->write().

Also, pending chunks of log output were std::move()'d to the first
interested client in the loop, they need to be copied if there
is more than one client.
2021-03-19 21:11:22 +13:00
Paolo Greppi
c7c586167c use relative paths to support LAMINAR_BASE_URL option 2021-03-19 20:47:56 +13:00
Jan-Benedict Glaw
7e77ec1211 Allow subdirs in artifacts directory
Extend populateArtifacts() with a subdir parameter (default initialized to ".")
to allow for recursive calls. With subdirs encountered, call recursively.
2021-03-08 20:30:59 +13:00
Oliver Giles
9b8c3762ec fe: do not html entity encode angle braces
in log output, ansi_up does it already.

resolves #148
2021-03-07 21:02:42 +13:00
vrein
c42b6d4207 Pass reason and queuedAt to Home page 2021-02-22 08:53:05 +13:00
Oliver Giles
8df882b273 remove debug logging in app.js 2021-01-09 21:52:02 +13:00
Oliver Giles
14ea1f0f43 move ansi_up to latest version: 4.0.4
this is also the version in debian libjs-ansi-up
2021-01-09 21:51:12 +13:00
meskio
381fd8b55e
Remove vue-router in the build process (#141) 2021-01-07 09:32:14 +13:00
Oliver Giles
9f969ae847 remove deprecated href to custom style.css 2021-01-02 21:26:50 +13:00
Oliver Giles
907f3926ce remove dependency on vue-router
only a small subset of vue-router is used, and integration is
complicated by each route having its own EventSource request.
Implementing the routing directly allows simplification of
the EventSource logic.

Another motivating factor is that the vue-router packages in
debian have been unreliable, making the dependence on vue-router
a hinderance for packaging laminar in debian.
2021-01-02 21:26:13 +13:00