Commit Graph

1259 Commits

Author SHA1 Message Date
Christophe Monniez
86810df3f7 [FIX] runbot: fix frontend team dashboards again
The previous fix in c9e8e1360 was not enough, while preventing a crash
of the view, the view was empty.
2025-01-06 12:40:28 +01:00
William Braeckman
e49c583b5b [FIX] runbot: replace target new with _blank
`target="new"` had the very confusing behavior of updating the same tab
within the same browser context (tab).
The commit replaces all `target="new"` occurences with `target="_blank"`
within the runbot templates.

See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target
2025-01-03 11:23:58 +01:00
William Braeckman
a0ff53f63b [IMP] runbot: add config_data to trigger form
Adds the missing field `config_data` to trigger's form view.
2025-01-02 14:32:43 +01:00
Xavier-Do
7542f41fff [FIX] runbot: fix _compute_similar_ids 2025-01-02 10:03:26 +01:00
William Braeckman
998163ee03 [IMP] runbot: add config_data to triggers
Adds support for config_data directly on the triggers.
This will be used to share configs between triggers with different
parameters.
2024-12-19 14:39:21 +01:00
William Braeckman
fbce7ae713 [IMP] runbot: add without-demo as field
Adds the without-demo flag as a field on config steps.
2024-12-19 14:39:21 +01:00
Xavier-Do
214ab338d5 [REV] runbot: lower sleep values"
Revert "[FIX] higher sleep values"

This reverts commit c562dac84d.

This was done before upgrading the postgresql serevr hardware. we should
be able to have faster updates now.
2024-12-19 08:43:33 +01:00
Xavier-Do
09b14e1702 [FIX] runbot: add timeout to request
For a strange reason, the runbot got stuck while updating a ci status.
The reason why it occurs know just after the upgrade is unknown, but
adding a timeout may help to mitigate this issue.
2024-12-16 16:23:50 +01:00
William Braeckman
881941988b [FIX] runbot: change md_description to html
Otherwise it doesn't output raw html.
2024-12-13 10:19:04 +01:00
William Braeckman
eacd2f369d [FIX] runbot: remove user_has_groups calls
The method was removed in odoo/odoo#151597
2024-12-13 08:45:42 +01:00
William Braeckman
33bef243d2 [FIX] runbot: export diff_match_patch
Fixes the export of diff_match_patch, it previously used global export
which is not supported anymore (at least not the way it was doing it
before).
2024-12-11 15:50:42 +01:00
William Braeckman
f847ba57e1 [FIX] runbot: crash with frontend_url widget 2024-12-11 15:50:42 +01:00
William Braeckman
9e1e686cc6 [FIX] runbot: restore form views
Since https://github.com/odoo/odoo/pull/154710 form views can use
<chatter/> directly to include the chatter, not doing so completely
breaks the dom generated by the form view.
2024-12-11 14:27:38 +01:00
William Braeckman
a7d09ddb5e [FIX] runbot: fix frontend urls to backend
Urls are broken after 18.0 upgrade
2024-12-11 14:27:38 +01:00
William Braeckman
03c0a5143e [FIX] runbot: replace old BS4 class with BS5
text-left -> text-start
remove data-toggle css rules
font-italic -> fst-italic
2024-12-11 14:27:38 +01:00
William Braeckman
28ce031886 [REF] runbot: replace t-esc with t-out
t-esc has been deprecated and uses redirects to t-out anyways, removing
since in dev mode it logs a warning in the terminal.

See odoo/odoo#81024
2024-12-11 14:27:38 +01:00
xdo
01e7676cb6 [FIX] runbot: revert some upgrade_code errors
Co-authored-by: William Braeckman (wbr) <wbr@odoo.com>
2024-12-11 14:27:38 +01:00
Xavier-Do
d30856107c [IMP] runbot: apply upgrade code 2024-12-11 14:27:38 +01:00
Xavier-Do
3d33448ad8 [FIX] runbot: fix query test 2024-12-11 14:27:38 +01:00
Xavier-Do
bb9242f49e [FIX] runbot: remove unaccent
see https://github.com/odoo/odoo/pull/139568
2024-12-11 14:27:38 +01:00
Xavier-Do
2b88938e14 [FIX] runbot: fix tests 2024-12-11 14:27:38 +01:00
Xavier-Do
8efc8874fe [FIX] runbot: adapt cron 2024-12-11 14:27:38 +01:00
Xavier-Do
aaf99dbe62 [FIX] runbot: adapt slug usage 2024-12-11 14:27:38 +01:00
Xavier-Do
90d2906712 [IMP] runbot: remove ruff from default image
ruff is using another specific image, not useful anymore.
2024-12-11 09:57:03 +01:00
Xavier-Do
6bf1991c9d [FIX] runbot: make archive work when an error has no linked build 2024-12-10 10:45:38 +01:00
Xavier-Do
9c995d1f7c [FIX] runbot: add edition access to error content
This was forgotten during the refactoring. Needed to link error together
2024-12-10 10:45:38 +01:00
Christophe Monniez
f74391fc13 [FIX] runbot: avoid empty string in stored compute 2024-12-10 09:33:44 +01:00
Xavier-Do
ee55c8c630 [FIX] runbot: add missing depends 2024-12-05 13:17:11 +01:00
Xavier-Do
4f3838b7e9 [FIX] runbot: fix bundle without batch display
In some case, when creating a bundle from the backend, it is possible
that the bundle has no batch at all, making _get_global_result() fail.
2024-12-05 09:09:52 +01:00
Christophe Monniez
58f0f8108a [FIX] runbot: import json for similar_ids
And small fix in fstring.
2024-12-04 11:03:41 +01:00
Xavier-Do
03a20398a1 [IMP] runbot: add forwarded for headers 2024-12-04 10:18:43 +01:00
Xavier-Do
c45f1a2dd6 [IMP] runbot: add qualifiers ir.model.fields 2024-12-04 10:17:21 +01:00
Christophe Monniez
65f2badd09 [IMP] runbot: add similar errors page
Add a page on error content showing errors with similar qualifiers.
2024-12-04 10:17:21 +01:00
Christophe Monniez
4bdd2e20b8 [IMP] runbot: permit to qualify build errors
Identifying build errors by fingerprint is not enough.
Most of the times we want to link build errors based on some criteria.

With this commit, a build error can be qualified by using regular
expressions that will extract informations.

Those informations will be stored in a jsondict field. That way, we can
find simmilar build errors when they share some qualifiers.

To extract information, the regular expression must use named group
patterns.

e.g:
`^Tour (?P<tour_name>\w+) failed at step (?P<tour_step>.+)`

The above regular expression should extract the tour name and tour step
from a build error and store them like:
`{ "tour_name": "article_portal_tour", "tour_step": "clik on 'Help'" }`

The field can be queried to find similar errors. Also, a button is added
on the Build Error Form to search for errors that share the same
qualifiers.
2024-12-04 10:17:21 +01:00
William Braeckman
075e6a99b0 [FIX] runbot: remove dead code
The template part was not reached only in certain cases and regardless
the empty collapse toggle has not been visible for a while..
As handling subbuild error logs adds unnecessary load when rendering the
page anyways (most people will not display the subbuild errors
regardless if the collapse is showing or not), we decided to remove it
completely.
2024-11-29 09:31:17 +01:00
William Braeckman
85e6b7a312 [REF] runbot: stop using link type ir.logging
Stop using the special $$icon$$ syntax when logging the download url for
the database dump.
2024-11-28 16:25:11 +01:00
Xavier-Do
07fda301a0 [FIX] runbot: pass build in error in case of log critical 2024-11-28 14:42:46 +01:00
William Braeckman
7b2ca7b919 [IMP] runbot: show state in favicon
Until now the favicon was handled by the `/favicon.ico` route made
available by `website`.

This commit adds the different favicons and logic to be able to display
the state of the current page through it.
2024-11-28 14:22:25 +01:00
Xavier-Do
b76a523730 [IMP] runbot: faster batch prepare 2024-11-28 14:12:42 +01:00
Christophe Monniez
0beb2cd71b [IMP] runbot: remove error logs menu 2024-11-28 13:43:40 +01:00
Christophe Monniez
f3c7212b7c [IMP] runbot: add responsible in error list view 2024-11-28 13:43:40 +01:00
Christophe Monniez
9d5b31fe18 [IMP] runbot: add a deduplicate server action
Duplicate error content should not happens ... but it does.
With this commit, a server actions allows to relink error contents and
thus removes error contents having the same fingerprint.
2024-11-28 13:43:40 +01:00
Christophe Monniez
3a485536fd [IMP] runbot: rename _merge method into _relink on error_content 2024-11-28 13:43:40 +01:00
Xavier-Do
0768d9c797 [IMP] runbot: optimize build error content merging 2024-11-28 13:43:40 +01:00
Christophe Monniez
96eb116ead [FIX] runbot: refactor error content merge 2024-11-28 13:43:40 +01:00
Christophe Monniez
60f7f195bf [IMP] runbot: find duplicate error contents 2024-11-28 13:43:40 +01:00
Christophe Monniez
276b43b729 [IMP] runbot: add possibility to search fingerprints 2024-11-28 13:43:40 +01:00
Christophe Monniez
34ed682a79 [FIX] runbot: bind the link error content action to the right model 2024-11-28 13:43:40 +01:00
Christophe Monniez
a82a995397 [IMP] runbot: add a message when a build error is merged
When digging into deactivated build errors, one cannot easily find why
an error was deactivated and to which one it was merged.

With this commit, a message is added in the chatter to explain where it
is merged.
2024-11-28 13:43:40 +01:00
William Braeckman
57bd762d9c [IMP] runbot: make computable fields searchable
Adds search functions for all 'related' computed fields on
runbot.build.error.
2024-11-28 13:40:16 +01:00
William Braeckman
b8d39471cc [IMP] runbot: add tracking on config steps modules 2024-11-28 13:39:48 +01:00
William Braeckman
ab0c95dac2 [IMP] runbot: add mail.thread to upgrade exception
Makes it easier to track when to remove upgrade exceptions.
2024-11-28 13:39:48 +01:00
William Braeckman
833b4e29d0 [IMP] runbot: add configurable process delay
Adds a configurable process delay on projects.
It can be used to reduce or otherwise increase the time between a push
and a batch starting.
2024-11-27 11:18:16 +01:00
Christophe Monniez
22151d3566 [FIX] runbot: fix log args
Previous fix was not enough when one of the args is not a string.

Courtesy of xmo
2024-11-26 09:13:05 +01:00
William Braeckman
ec440e61f7 [FIX] runbot: prevent crash with invalid exception 2024-11-26 09:12:30 +01:00
Xavier-Do
08016333fe [FIX] runbot: fix displayed log linked error 2024-11-26 09:04:43 +01:00
Xavier-Do
113f87dee2 [FIX] runbot: avoid duplicate ouptut because of Download progress 2024-11-26 09:04:43 +01:00
Xavier-Do
e6605dfaef [IMP] runbot: get docker metadata after build
The docker metadata are currently computed only on
some images durring the nightly.

This aims to get metadata after each docker image build in order to be
able to rely on them when needed.
2024-11-26 09:04:43 +01:00
Xavier-Do
36b35b6711 [FIX] runbot: test upgrade for dev branches again 2024-11-20 08:32:18 +01:00
Xavier-Do
325296a959 [FIX] runbot: fix code multiline display for check semgrep 2024-11-19 09:30:42 +01:00
Xavier-Do
ada5a5beaa [FIX] runbot: fix reclean 2024-11-19 09:30:42 +01:00
Xavier-Do
32e71a0a20 [FIX] runbot: fix reclean 2024-11-19 09:30:42 +01:00
Xavier-Do
77ba739836 [IMP] runbot: speedup parse_logs 2024-11-19 09:30:42 +01:00
Xavier-Do
34e18cf797 [FIX] runbt: runbot build error parse_log fixes 2024-11-19 09:30:42 +01:00
Christophe Monniez
c9e8e13606 [FIX] runbot: fix frontend team dashboards 2024-11-19 08:38:08 +01:00
William Braeckman
c2e9aaf387 [FIX] runbot: fix typo in server action 2024-11-14 12:05:10 +01:00
Christophe Monniez
9151c26232 [FIX] runbot: fix invalid field name 2024-11-14 09:33:44 +01:00
Christophe Monniez
2697a28e54 [IMP] runbot: allow override global docker registry on a host 2024-11-14 09:11:26 +01:00
Christophe Monniez
3197f75e45 [FIX] runbot: remove bulk update button from error content tree 2024-11-14 08:43:06 +01:00
Christophe Monniez
dc7eb66903 [IMP] runbot: add a display field to show error id in content tree 2024-11-14 08:43:06 +01:00
Christophe Monniez
b95256155c [IMP] runbot: add a default filter on build errors 2024-11-14 08:43:06 +01:00
Christophe Monniez
23be10f75b [IMP] runbot: add a search panel on build error list view 2024-11-14 08:43:06 +01:00
Christophe Monniez
90f114c730 [IMP] runbot: add a default filter on error content tree 2024-11-14 08:43:06 +01:00
Christophe Monniez
a6823f6d53 [FIX] runbot: adapt migration script
Fix a failure when a build error is not linked to any build. It happens
when a build error was merged into another.
2024-11-14 08:43:06 +01:00
Xavier-Do
56e242a660 [IMP] runbot: refactor build error models
The initial idea to link an error to another one was a quick solution
to group them if they where related, but this became challenging
to copute metada regarding errors.

- The displayed error message was not always consistent with the real
root cause/the error that lead here.
- The aggregates (lets says, linked buils ids) could be the one of the
error, or from all error messages. Same for the versions, first seen, ..
This is confusing to knwo what is the leist we are managing and what is
the expecte result to display

Main motivation:
on a standard error page (will be changed to "assignment"), we want to
have the list of error message that is related to this one. We want to
know for each message (a real build error) what is the version,
first seen, ...
This will give more flexibility on the display,

The assigned person/team/test-tags, ... are moved to this model
The appearance data remains on the build error but are aggregate on the
assignation.
2024-11-14 08:43:06 +01:00
Xavier-Do
d990b39258 [FIX] runbot: consider to_upgrade as to_upgrade_to 2024-11-12 14:01:05 +01:00
Christophe Monniez
7e01b711ad [IMP] runbot: add charset to content-type
This commit adds the utf-8 Content-Type to nginx response headers for
txt files. That way, the logs files can be properly viewed in browsers.
2024-11-12 12:14:40 +01:00
Christophe Monniez
5b70e91043 [IMP] runbot: add a searchpanel on bundle search 2024-11-12 12:14:12 +01:00
Xavier-Do
2b690de566 [IMP] runbot: allow to disable upgrade from a version 2024-11-12 08:33:14 +01:00
Christophe Monniez
ecd9681b65 [FIX] runbot: properly join log args
When a type error occurs when trying to format a message in a build log,
the suspicious are are joined with the message. But as the args may be a
tuple, an errors occurs when concatenating the message with the args
during the join.

With this commit, we ensure that the args are casted into a list.
2024-11-09 17:42:52 +01:00
William Braeckman
63dac316ab [FIX] runbot: remove console.log 2024-11-06 16:32:35 +01:00
William Braeckman
2fec54838e [IMP] runbot: add customer is me filter
As we try to assign ourselves as customer to build errors it is useful
to add a new filter to find errors on which we are the customer more
easily.
2024-10-22 09:25:53 +02:00
Christophe Monniez
dda0170a89 [FIX] runbot: avoid trying to push unexisting image
When an image is build for the first time and the build fails, an
ImageNotfound Exception is raised when trying to push the image.

Whith this commit, a warning is emmited instead of crashing in such a
case.
2024-10-10 09:16:56 +02:00
Christophe Monniez
a8b3d6e205 [FIX] runbot: avoid copying always_pull field
This commit will prevent people acting like cowboys to break the whole
system by duplicating a Dockerfile without disabling the always_pull
field.
2024-10-10 07:41:04 +02:00
Xavier-Do
ad87096436 [IMP] runbot: allow to skip requirements from trigger 2024-10-08 10:47:48 +02:00
Xavier-Do
f8f435d468 [FIX] runbot: remove record iteration in onchange
A recent task introduced a record loop using self inside.

It doesn't respect an api multi classic loop but it isn't an issue
since onchange are always called on a single record.

Removing the loop on all onchange to clean it up.
2024-09-25 10:37:09 +02:00
odoo
0b5d7d0566 [IMP] add customer on runbot build tasks
Idea is to help runbot/QA team to monitor other peoples tasks
easier. This way we will have a responsible person for each task
that someone else has assigned.
The goal of pr is two-fold:
1) We need to be able to better monitor the progress of tasks that
are not our own.
2) It introduces another metric with which we can measure individual
progress, and this can become main measuring metric for future non-technical
employees whose main goal will be making sure that none of the tasks become
rotten(not have any visible progress for months).
2024-09-19 08:20:14 +02:00
Christophe Monniez
3ae3f6dff3 [IMP] runbot: pull docker image only when needed
When a lot of Docker images are updated at the same time, all runbot
hosts will try to pull them at the same moment.

With this commit, only the images marked as `always_pull` will be pulled
and if one of them takes too much time to be pulled, we let the host
make another loop turn before continuing the images pull.

Finally, if a host uses the Docker registry, it will pull the remote
image when running a step, that way the image will be pulled
automatically if needed.
2024-09-13 11:57:07 +02:00
Xavier-Do
b60d54d4ea [FIX] runbot: fix image build failure 2024-09-12 13:08:00 +02:00
Xavier-Do
b96b32e8b9 [IMP] runbot: better docker logging
The docker operation are called often and cannot be logged each time.
If a docker operation is slow, we log it at the end but waiting for this
output we have no idea what the process is doing.

This pr proposed to go a lower level and get the stream from the docker
operation to be able to log earlier if we started a potentially slow
operation.
2024-09-11 13:16:13 +02:00
Xavier-Do
14bac37438 [IMP] runbot: small change of docker_build api
returns now a dict instead of a tuple for easier extension
2024-09-11 13:16:13 +02:00
Christophe Monniez
e4b04a42d1 [FIX] runbot: remove leftover tuple in markdown log 2024-09-09 08:07:42 +02:00
Christophe Monniez
33452d27e7 [IMP] runbot: add the possibility to disable a test per version
When disabling tests on runbot by using the test_tags on a build error,
the tests are disabled on every tested version. This can be annoying
when a test only fails from one version up to another.

With this commit, a min and max version can be specified on a
build_error when the test_tags field is used.
If the min and max are not used, the test will be disabled cross
versions.
2024-09-06 11:09:40 +02:00
Xavier-Do
dff50b49c4 [IMP] runbot: Improve stats listing display
Sort trigger and group them by category, better selection of categories
to display on stats page
2024-09-06 09:57:45 +02:00
Christophe Monniez
bc5e7fe69c [IMP] runbot: bump chrome version to 126.0.6478.182 2024-09-05 15:34:31 +02:00
Xavier-Do
21d6c84b26 [FIX] runbot: fix markdown adding escape
A common error on runbot is to generate link containing a __init__.py
file

[/some/path/to/__init__.py](/some/path/to/__init__.py)

This would be rendered as

<a href="/some/path/to/<ins>init<ins>.py">/some/path/to/<ins>init<ins>.py</a>

Breaking the link, and the display of the name

By default markdown will not render links avoiding this issue, but it
will remain for the content of the a, needing to manage some kind of
escaping.

The way to escape markdown is to add a \ before any special character
This must be done upront before formating, adding the method
markdown_escape

Our implementation of markdown is not meant to meet the exact
specification of markdown but better suit our needs. One of the
requirements is to be able to use it to format message easily but adding
dynamic countent comming from the outside. One of the error than can
occur is also

'Some code `%s`' % code can also cause problem if code contains `

This issue could be solved using indented code block, but this would
need to complexify the generated string, have a dedicated method to
escape the code blocs, ...

Since we have the controll on the input, we can easily sanitize all
ynamic content to avoid such issues. For code block we introduce a way
to escape backtick (\`). It is non standard but will be easier to use.

Combine with that, the build._log method now allows to add args with the
values to format the string (similar to logging) but will escape
params by default. (cr.execute spirit)

name = '__init__.py'
url = 'path/to/__init__.py'
code = '# comment `for` something'
build._log('f', 'Some message [%s](%s) \n `%s`', name, url, code)

name, url and code will be escaped
2024-09-05 15:33:41 +02:00
Xavier-Do
2fd7f47e49 [IMP] runbot: make stats when build timeout
The stats are only kept when the build finishes, this makes sence to
avoid collecting stats of a manually killed build (or because of newer
build found), but the stats mays be interresting when the build timeouts.

Adding a manual collection of stats in this case.
2024-09-05 14:24:41 +02:00
Xavier-Do
bc8c2a4853 [IMP] runbot: faster fetch
Use 2 jobs to fetch multiple origin at the same time.
2024-09-05 14:20:06 +02:00
Xavier-Do
7411bd5755 [FIX] runbot: allow - in database name
The underscore was previously used in database name, but this is not a
valid character for certificates (still need some investigation about
the limitations)

If it worked to access it it was causing issues for IOT andother.
_ is forbidden on saas actually.

The design_theme database was changed to design-theme, but this is not
accessible through the nginx condig. This should solve the issue.
2024-09-03 10:54:54 +02:00
Xavier-Do
9660cf6517 [IMP] runbot: bundle with all pr closed 2024-08-29 15:03:45 +02:00