Eric Engestrom
656afd8ede
bin/gitlab_gql: fix command in example
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26141 >
2023-11-10 10:37:07 +00:00
Eric Engestrom
2cf031155b
gitlab_gql: make --rev
optional, defaulting to HEAD
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26073 >
2023-11-10 10:05:46 +00:00
Eric Engestrom
cc37af8fbc
bin/gitlab_gql: resolve sha locally to be able to use things like HEAD
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26073 >
2023-11-10 10:05:46 +00:00
Guilherme Gallo
f8b8352022
ci/bin: Print a summary list of dependency and target jobs
...
We already print all the detected target jobs from regex and its
dependencies. But for more complex regexes the list can be cumbersome,
and an aggregate list of dependencies and targets can be more value, so
add these prints as well.
This is what looks like:
```
Running 10 dependency jobs:
alpine/x86_64_lava_ssh_client, clang-format, debian-arm64,
debian-testing, debian/arm64_build, debian/x86_64_build,
debian/x86_64_build-base, kernel+rootfs_arm64, kernel+rootfs_x86_64,
rustfmt
Running 15 target jobs:
a618_gl 1/4, a660_gl 1/2, intel-tgl-skqp, iris-amly-egl, iris-apl-deqp
1/3, iris-cml-deqp 1/4, iris-glk-deqp 1/2, iris-kbl-deqp 1/3,
lima-mali450-deqp:arm64, lima-mali450-piglit:arm64 1/2,
panfrost-g52-gl:arm64 1/3, panfrost-g72-gl:arm64 1/3,
panfrost-t720-gles2:arm64, panfrost-t860-egl:arm64, zink-anv-tgl
```
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
e74238af42
ci/bin: Fix mypy errors in gitlab_gql.py
...
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
b87e092489
ci/bin: Fix gitlab_gql methods that uses needs DAG
...
Some gitlab_gql.py features like `--print-dag` were affected by recent
changes. Update those functions with the refactored data.
Fixes: c7b67d8619
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
278fc1c22a
ci/bin: gql: Improve queries for jobs/stages retrieval
...
Modify the GraphQL query used to fetch all jobs within a pipeline,
transitioning from fetching data via stage nodes to a direct job
retrieval approach.
The prior method was not paginated, potentially overloading the server
and complicating result parsing due to the structure of stage nodes. The
new approach simplifies data interpretation and handles job lists
exceeding 100 elements by implementing pagination with helper functions
to concatenate paginated results.
- Transitioned from extracting jobs from stage nodes to a direct query
for all jobs in the pipeline, improving data readability and server
performance.
- With the enhanced data clarity from the updated query, removed the
Dag+JobMetadata tuple as it's now redundant. The refined query
provides a more comprehensive job data including job name, stage, and
dependencies.
- The previous graph query relied on a graph node that will (or should)
be paginated anyway.
Closes : #10050
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
664e6addea
ci/bin: gql: Implement pagination
...
Make query support pagination by supplying the paginated key.
In the following toy example, the paginated key is:
["levels", "cars"]
```graphql
query vehicle_store($location: ID!) {
levels {
cars {
pageInfo {
hasNextPage
endCursor
}
...
}
}
}
```
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
c4b8c03012
ci/bin: gql: Log the caching errors
...
When using cache and it fails, log the errors, clear the cache and retry
the query bypassing the cache
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
aa2586b315
ci/bin: gql: make the query cache optional
...
Make the caching optional, as it can fail in some complex queries where
the transport middleware uses non-pickle-able objects.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
609b4bfef8
ci/bin: Replace AIOHTTPTransport with RequestsHTTPTransport
...
For some reason AIOHTTPTransport started to use MultiDict after doing
some adjustments in the GraphQL query, which made `filecache` fail
because MultiDict object are not pickle-able.
Changing the transport strategy from AIOHTTPTransport to
RequestsHTTPTransport, which dropped one requirement. We aren't doing
async anyway, all the calls were sync before.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
46b033a9bf
ci/bin: Fix find_dependency function calls
...
`find_dependency` signature changed, so we need to update their callings
correctly.
Fixes: 94655ff811
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Eric Engestrom
ba4f6e87c7
ci/gitlab_gql: stop re-compiling regex now that all users pre-compile it
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26070 >
2023-11-07 06:08:44 +00:00
Eric Engestrom
94655ff811
ci_run_n_monitor: compile target_jobs_regex only once
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26070 >
2023-11-07 06:08:44 +00:00
Eric Engestrom
a5cb331c64
gitlab_gql: strip newline at the end of the token file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26075 >
2023-11-07 06:06:22 +00:00
Guilherme Gallo
969ede4521
ci/bin: Refactor create_job_needs_dag
...
The function is getting too big, let's add comments, docstrings to the
most important function, new type hints and extract methods from it to
make it easier to read.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Guilherme Gallo
4e4743ec0a
ci/bin: Do not forget to add early-stage dependencies
...
In Mesa MR pipelines, we have the sanity job. This job is not an
explicit need for any one job, because only jobs with `- needs: []`
ignores previous jobs. If no `needs` is specified, the job will wait
until all the jobs of earlier stages are finished before starting.
See additional details section at:
https://docs.gitlab.com/ee/ci/yaml/index.html#stage-post
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10032
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Guilherme Gallo
c7b67d8619
ci/bin: Use iid instead of SHA in gitlab_gql
...
We were using sha to fetch the pipeline from GraphQL, but that leads to
wrong results when MR and branch pipelines exist. For example,
using pipeline-url as the MR pipeline:
- https://gitlab.freedesktop.org/gallo/mesa/-/pipelines/1017182
This would lead into the branch pipeline:
- https://gitlab.freedesktop.org/gallo/mesa/-/pipelines/1013189
Also simplify the GQL query, it had lots of unused data.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Christian Gmeiner
a53a394d30
ci: Bump PyYAML to 6.0.1
...
Fixes an issue I am seeing on Fedora 39. For more details
about the upstream fix see https://github.com/yaml/pyyaml/pull/702
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25878 >
2023-10-25 10:35:47 +02:00
Eric Anholt
74315051a9
ci_run_n_monitor: Always resolve --rev arguments for looking up pipelines.
...
Otherwise you'd loop forever never finding it with --rev <paste from
gitlab UI> or --rev <branch name>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25824 >
2023-10-25 01:48:18 +00:00
Helen Koike
663ad191ca
ci/ci_run_n_monitor: print job duration time
...
If the job is running, it prints the elapsed time so far, if it finished
already, it prints the time it took.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25822 >
2023-10-24 12:57:14 +00:00
Helen Koike
69012e355e
ci/marge_queue: add pretty_dutation()
...
Add pretty_duration() function that prints time in format 6m23s and use
it for marge_queue.
Signed-of-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25822 >
2023-10-24 12:57:14 +00:00
Helen Koike
9f4f52f4f3
ci/ci_run_n_monitor: keep monitoring if a job is still running
...
When running multiple targets, the script was returning if any of the
targets failed.
But sometimes some of the targets are still running and we want to
monitor it until it finishes, even if some of the targets failed.
So check if any targeted jobs are in pending or running before deciding
to finish.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25826 >
2023-10-22 09:30:56 +00:00
Helen Koike
46fc9decad
ci/marge_queue: add missing python-dateutils to requirements.txt
...
marge_queue.py requires python-dateutils to run, so add it.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25828 >
2023-10-20 18:27:44 +00:00
Eric Anholt
fb95f1d55c
ci_run_n_monitor: Poll mesa/mesa and user/mesa for pipelines at the same time.
...
Now you don't fail if you're trying to test a mesa/mesa MR pipeline and
gitlab takes more than 10s to create it. And you don't have to wait 10
seconds to get things started (aka see if your regex was right) if you're
testing a user/mesa fork pipeline.
Fixes: 941d92408e
("bin/ci_run_n_monitor: automatically pick MR pipelines when they exist")
Closes : #9894
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25810 >
2023-10-20 08:23:24 +00:00
Erik Faye-Lund
a4845e9c43
bin/gen_release_notes: escape at-symbols
...
If we don't do this, we end up with email-alike strings to be turned
into mailto links. This is not what we want.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712 >
2023-10-16 08:59:07 +00:00
David Heidelberg
0b31cda678
ci: ci_marge_queue.py
...
Show currently assigned jobs to Marge and return 0 when it's free.
Useful for combination with ci_run_n_monitor.py .
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20347 >
2023-10-14 11:28:56 +00:00
Eric Engestrom
d3e96aa02e
ci_run_n_monitor: dependency jobs must always be started
...
Fixes: 6b49b477ac
("ci/ci_run_n_monitor: simplify enable/cancel logic in monitor_pipeline()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25715 >
2023-10-13 18:37:56 +00:00
Helen Koike
51521e1f9d
ci/ci_run_n_monitor: limit repetitions on --stress
...
--stress options now receives the number of repetitions or -1 to behave
as before.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:58 +00:00
Helen Koike
57fa35f19c
ci/ci_run_n_monitor: allow <user>/<project> in --project
...
Allow to monitor pipelines in any <user>/<project> on gitlab.fdo.
If developers want to monitor MR pipelines, they can run with
--project mesa/mesa to force it to be picked from mesa username.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:58 +00:00
Helen Koike
6b49b477ac
ci/ci_run_n_monitor: simplify enable/cancel logic in monitor_pipeline()
...
leave to enable_job() and cancel_job() to do the right thing according
to the job status.
let target canceled jobs to be re-runned.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:58 +00:00
Helen Koike
17843ad7c6
ci/ci_run_n_monitor: merge enable_job with retry_job
...
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:58 +00:00
Helen Koike
90da4a6845
ci/ci_run_n_monitor: make --target mandatory
...
There is no point running without a target, just make it mandatory and
simplify the script.
Use ".*" to run all targets.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:58 +00:00
Helen Koike
633c08688b
ci/ci_run_n_monitor: merge print_job_status_change with print_job_status
...
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:57 +00:00
Helen Koike
7f6c339740
ci/ci_run_n_monitor: simplify with defaultdict
...
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:57 +00:00
Helen Koike
f838499901
ci/ci_run_n_monitor: print stress test results per job
...
Since we can monitor multiple jobs, print the result of the stress test
per job name.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25473 >
2023-10-11 21:50:57 +00:00
Eric Engestrom
e42c5b86d0
pick-ui: add Backport-to: XX.Y
nomination
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13664 >
2023-10-07 19:00:17 +00:00
Eric Engestrom
2d274a2553
pick-ui: use more expressive variable names
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13664 >
2023-10-07 19:00:17 +00:00
Eric Engestrom
36c3c3d9a4
pick-ui: use assignment expressions
...
Python 3.8 is 2 years old by now, I think it's time to allow using its
features, especially for a script that's only used by the release
maintainers.
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13664 >
2023-10-07 19:00:17 +00:00
Helen Koike
fa884141dc
ci/ci_run_n_monitor: add docs for multiple targets
...
clarify how multiple targets can be used with the pipe character.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25472 >
2023-09-29 09:50:53 -03:00
Eric Engestrom
7eabe9bb40
ci_run_n_monitor: add comment to explain "MR > fork" logic
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25186 >
2023-09-12 18:37:40 +00:00
Eric Engestrom
941d92408e
bin/ci_run_n_monitor: automatically pick MR pipelines when they exist
...
When an MR has been created, we usually want to run the jobs in the MR
pipeline so that reviewers see that things work as expected.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25153 >
2023-09-12 17:42:34 +00:00
Eric Engestrom
f398f0fb44
bin/ci_run_n_monitor: print in which repo we're looking for the pipeline
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25153 >
2023-09-12 17:42:33 +00:00
Eric Engestrom
8366d77e4c
bin/ci_run_n_monitor: error out if both --project and --pipeline-url are passed
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24937 >
2023-08-29 19:27:22 +00:00
Helen Koike
67147a3c5c
ci: add --project option to ci_run_n_monitor.py
...
Now that we have drm-ci, add --project, so the script can also be used
to linux (and any other projects).
Let the default to "mesa" so it can keep behaving as before when the
option is not given.
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24912 >
2023-08-29 16:54:31 +00:00
Konstantin Seurer
32ad8baa05
bin: Update spirv sources
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24512 >
2023-08-18 16:57:22 +00:00
Eric Engestrom
b13473efe9
bin/pick-ui: use venv wrapper
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24367 >
2023-08-03 23:21:32 +00:00
Eric Engestrom
2eca558dd4
bin/ci/update_traces_checksum: use venv wrapper
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24367 >
2023-08-03 23:21:32 +00:00
Eric Engestrom
ce49034bbb
bin/ci/gitlab_gql: use venv wrapper
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24367 >
2023-08-03 23:21:32 +00:00
Eric Engestrom
6e4843bb04
bin/ci/ci_run_n_monitor: use venv wrapper
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24367 >
2023-08-03 23:21:31 +00:00