204 Commits

Author SHA1 Message Date
Jordan Petridis
a74bda813b ci: Always create the subproject cache from the upstream repo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8994>
2025-05-23 14:29:52 +00:00
Tim-Philipp Müller
90902d36dd ci: work around Meson issues on Windows with author names in non-Western scripts
Work around Meson issues if this env var contains characters that
cannot be represented in the active code page (e.g. CP1252).

UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 865: character maps to <undefined>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8747>
2025-04-16 12:02:54 +01:00
Jordan Petridis
741d1e5039 ci: Set CARGO_NET_GIT_FETCH_WITH_CLI
Recent infrastructure migration are causing issues
with the cargo fetch for our gitlab instance.

Use git itself to do the fetching

Similar to [1]

[1]: https://gitlab.freedesktop.org/gstreamer/gst-ci/-/issues/71

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8801>
2025-04-11 11:38:08 +03:00
Thibault Saunier
fa63afba84 ci: Build the dots_viewer only once
We do not need to build it for each and every test we run.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8520>
2025-03-26 01:11:12 +00:00
Tim-Philipp Müller
9a75d56cf8 ci: drop placeholder-job tag for image jobs
They're not privileged so won't work anymore.
Using kvm tag for now as per discussion on IRC,
until a better solution comes along in future.

Keep placeholder-job tag on trigger job and
pre-commit checks jobs.

Add kvm tag to fluster job.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8677>
2025-03-25 16:39:00 +00:00
Tim-Philipp Müller
b3dd34cfa0 ci: disable gtk4 build by default
It's not used by anything in the monorepo, only used when
rebuilding the gstreamer-rs image (used by gst-plugins-rs
where the gtk4 plugin lives).

Doesn't make sense to build all of gtk4 on every CI run that
touches the relevant files just to make sure it still works
for the image rebuild, and it's a problem for users with long
filenames (such as `gstreamer-backport-bot`) where the pipeline
will simply not pass because the gtk glib-mkenums command line
length exceeds 32767 characters.

Better to set up a scheduled pipeline for that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8636>
2025-03-13 15:06:00 +01:00
Jordan Petridis
1747b5fa73 Revert "ci: Add rules:changes:compare_to to the job rules"
This reverts commit dcd11f0a104964f7fc02c38104ed57fd0aa794a2.

In dcd11f0a104964f7fc02c38104ed57fd0aa794a2 we started making use
of gitlab's changes:compare_to in hopes of addressing #3780

However compare_to seems to have different behavior based on:

* The type of the branch
* If the repo is a fork or not
* If the pipeline is a branch or MR pipeline
* If the commit is force pushed or not
* If the pipeline is associated with a "push" event,
  * Manual and scheduled pipelines are not.

If we leave compare_to underfined and to its default value,
it causes issues with branch pipelines, as:

* If you push a new branch, it doesn't have anything to compare
against and changes: either will trigger or not, depending on the
gitlab version

* If you push to an existing branch, it only compares against the
previous commit.

* if you force push to a branch, it doesn't work at all it seems. [1]

Thankfully for merge request pipelines, it always seems to compare
against the Merge Request Target tree. But also if there is a Merge
Request open, and the value of compare_to isn't defined (say if it's a
force push or it's the first branch pipeline of the branch) it will
fallback to using the tree from the Merge Request Target, making it even
more confusing.

But if we try to overide it to fix the behavior for branches, we end up
breaking merge request. There seems to be a bug in gitlab (unclear if
its intended or not) where if you have access to the upstream
repository, gitlab will compaee_to against that in the MR pipeleine, but
otherwise it will try to compare against your fork's branch which will
certainly be outdated. Additionally it didn't seem to error out if the
branch specified doesn't exist only in one of the two places so its very
hard to reverse engineer the behavior.

[1] https://gitlab.com/gitlab-org/gitlab/-/issues/349694

Long story short, this is way more complicated than its worth, and has
caused a lot of issues since it was introduced. Revert the change and
try again another time.

Related https://gitlab.com/gitlab-org/gitlab/-/issues/389808

Close #3965

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8563>
2025-03-12 20:46:23 +00:00
Tim-Philipp Müller
5cd582c9c6 libxml2: update wrap to v2.13.5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Andoni Morales Alastruey
3213e641ec hooks: use pre-commit to run all hooks
Migrate all the pre-commit and commit-msg hooks to use
pre-commit (https://pre-commit.com/)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:15:25 -03:00
Matthew Waters
5b32fe7b24 ci: add an ABI check job
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>
2024-11-18 12:11:57 +11:00
Edward Hervey
591ddfe203 ci: Don't use a massive image for the cerbero trigger
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4024

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7893>
2024-11-15 09:22:16 +01:00
Tim-Philipp Müller
0d8596fafc ci: tag rustfmt job as placeholder job
Not really cpu bound and should finish quickly in any case.
Reduces wait time for initial stage and contention with the
normal job queue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7810>
2024-11-01 22:20:41 +00:00
Matthew Waters
5ef423fcaa ci: update macos CI to 15 Sequoia
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7788>
2024-11-01 01:31:06 +00:00
Detlev Casanova
215953faf9 ci: Run virtme tests on the fluster docker image
The separated docker image to run the fluster tests wasn't used properly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Jordan Petridis
7cf69a0f2f ci: Create a separate image for fluster
Move the fluster setup into it's own image.

It's only one job using it and this allows us to make
the build image used for the rest of the jobs smaller.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Jordan Petridis
a31c8cf370 ci: Push a dedicated toolbox image
This is mostly done to remove the hardcoded HOME
env var that ci-templates appends to the image. See [1]

[1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2433#note_2243222

But it also allows us to add extra things useful for local
development to it, as long they don't interfere with the
build enviornment.

This also means we can switch the build image to be based
on top of the normal fedora one rather than toolbox,
so it will no longer advertise the toolbox compatible labels
since it was buggy anyway.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
b462d15fe0 gitlab-ci.yml: Don't build both qt5/qt6 on static builds
It doesn't make any sense since we can only link against one of the two
libraries

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Jordan Petridis
d9c35760b8 ci: Update fedora base image to f40
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:18 +00:00
Nirbheek Chauhan
15b0b49918 ci: Add scripts to retry windows builds on spurious errors
Similar to cerbero, we run meson commands inside a powershell script
that will examine the output for spurious errors and re-run that
particular command.

https://gitlab.freedesktop.org/slomo/gstreamer/-/jobs/65265526

https://gitlab.freedesktop.org/slomo/gstreamer/-/jobs/65265524

https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/65331410

https://gitlab.freedesktop.org/jcowgill/gstreamer/-/jobs/65489856

https://github.com/rust-lang/rust/issues/127883#issuecomment-2290594194

Co-Authored-by: L. E. Segovia <amy@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7680>
2024-10-23 14:38:20 +00:00
Jordan Petridis
120f2a6b83 ci: Explicitly set the number of jobs validate-launcher will run
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7592>
2024-10-02 13:58:09 +00:00
Tim-Philipp Müller
7135dd19fd ci: run rustfmt job only for changes in Rust code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7325>
2024-09-15 19:03:51 +00:00
Jordan Petridis
dcd11f0a10 ci: Add rules:changes:compare_to to the job rules
By default MR pipelines always compare against the
target branch, however branch pipelines compare
the difference of the last two commit.

This means that once we merge something, jobs that we
expected to run, might not depending on what the last
two commits touched.

Add rules:changes:compare_to: keyword so the behavior
is the same between branch and MR pipelines.

https://docs.gitlab.com/ee/ci/yaml/index.html#ruleschangescompare_to

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3780
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7507>
2024-09-15 15:52:31 +00:00
Jordan Petridis
d8421a1f42 ci: switch rules:changes to be using paths: subkeyword
This is (should) be functionally identical to the existing rules.

When not specified, items added to the changes: are automatically passed
to changes:paths [1], however we are going to introduce another keyword
(changes:compare_to) in the followup commit. Thus switch already from changes: to
changes:paths so it is easier to test the changes standalone.

[1]: https://docs.gitlab.com/ee/ci/yaml/index.html#ruleschanges

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7507>
2024-09-15 15:52:31 +00:00
Jordan Petridis
595983df9f ci: Set SUBPROJECTS_CACHE_DIR variable
It's used in the build script and it fails if it's undefined.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7428>
2024-09-09 13:51:15 +00:00
Nirbheek Chauhan
cb89358d74 ci: Don't build the gtk subproject unless the changes are relevant
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7439>
2024-09-03 01:30:57 +05:30
Edward Hervey
0fc5210c48 gitlab-ci: Try timestamps on CI logs
https://docs.gitlab.com/ee/ci/yaml/ci_job_log_timestamps.html

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7383>
2024-08-21 12:44:09 +00:00
Nirbheek Chauhan
337fee8388 ci: Add a gtk subproject for testing on windows and macos
The gstreamer-rs CI needs to build gtk to test the gtk4 plugin in
gst-plugins-rs. Formalize support for gtk in the monorepo, and disable
it by default because it's not an important dependency; unlike
libnice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7372>
2024-08-17 16:07:34 +05:30
Tim-Philipp Müller
734f1b47a2 ci: disable -Werror for gstreamer-sharp for the time being
Generated files trigger compiler warnings, needs to be
investigated where/how to best fix those.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7326>
2024-08-14 04:34:28 +00:00
Nirbheek Chauhan
9cc363311d meson: Add an option to disable gst-full
Not all static-library build configurations need to use this, and the
CPU time and RAM needed by gst-full targets is quite significant.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7315>
2024-08-13 01:01:28 +00:00
Jordan Petridis
a80fef34a2 ci/scripts: Specify arguments by args rather than env vars
This dehardcodes the builddir the scripts use, and allows
us to pass it as a cli argument.

It also allows us to pass the test stuite string as an
arg for test.sh

This makes the scripts a bit more usable for local development
as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7114>
2024-07-04 15:07:28 +03:00
Loïc Le Page
9d703439f1 pitch: add validate tests
Add pitch tests with different forward and backward playback rates.
Those tests depend on the libSoundTouch version to validate the buffers
checksums. The actual version uses libSoundTouch 2.3.2, use the
`--force-fallback-for=soundtouch` meson option to build using the same
version.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6247>
2024-05-02 13:26:09 +02:00
Jordan Petridis
472d1b52d3 ci: Add a simple build job based on debian
The gstreamer-rs repos use debian based images already,
which we can later base on this one. Additionally it's
good to have another distro target so we avoid weird
fedoraisms when possible.

It will also be simpler to keep it up to date, as we
don't need to run the test suite against this build as
well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6656>
2024-04-24 15:01:27 +00:00
Tim-Philipp Müller
8564118d2a ci: tag fedora amd64 docker job as placeholder job
It finishes fairly quickly in most cases and even if it
needs to rebuild the image it doesn't use a lot of cpu
resources.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6646>
2024-04-15 23:29:13 +00:00
Ruben Gonzalez
27fc705bb2 CI: Use G_DEBUG=fatal_criticals and --gst-disable-registry-fork with gst-inspect-1.0 test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5704>
2024-04-07 06:36:44 +00:00
Nirbheek Chauhan
bd753822c4 ci: Enable opus and vpx plugins everywhere by default
Ensure that they are build-tested on the CI.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351>
2024-03-23 13:08:15 +00:00
Nirbheek Chauhan
4fc56a08ee soup: Re-add soup-lookup-dep option
It's still useful on Linux since it ensures that the tests are going
to be built, since they use the same dep lookup as the plugin now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6197>
2024-02-23 11:47:47 +05:30
Piotr Brzeziński
bf4cf0d9c1 ci: Ensure gtk-sharp uses the same revision in both places
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6182>
2024-02-22 13:21:07 +00:00
Nirbheek Chauhan
40774c2607 ci: vs2022 x86 was only configuring, was not building
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6166>
2024-02-21 13:03:43 +00:00
Nirbheek Chauhan
11f6984bf5 soup: Link to libsoup in all cases on non-Linux
We have unsolvable issues on macOS because of this, and the feature
was added specifically for issues that occur on Linux distros since
they ship both libsoup 2.4 and 3.0.

Everyone else should just pick one and use it, since you cannot mix
the two in a single process anyway.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6156>
2024-02-21 09:27:59 +05:30
Jordan Petridis
dc5b866d87 ci: Run the commit lint job as a user
Part of #2433

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5938>
2024-02-20 18:28:52 +02:00
Jordan Petridis
ed02a3991e ci: Avoid g-ir-scanner spurious issue
Recently something has caused it to error out, but only sometimes.

Ignore the cache so the CI will be reliable again.

Close #3197

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5902>
2024-01-10 20:38:38 +00:00
Jordan Petridis
4e9baf7ba5 ci: Allow any path within gdb safe-load
In certain cases, the validate runner will try to get a stacktrace
from gdb, which will currently complain about loading the .gdbinit
file.

warning: File "/builds/gstreamer/gstreamer/.gdbinit" auto-loading
has been declined by your `auto-load safe-path' set to
"$debugdir:$datadir/auto-load".

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5769>
2023-12-28 00:20:07 +02:00
Jordan Petridis
98ff88bda6 ci: Pass FDO_CI_CONCURRENT to meson compile
Limit the compile jobs to what the runners expect.

Related to gstreamer/gstreamer#2434

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5763>
2023-12-11 06:39:29 +00:00
Stéphane Cerveau
b9dda9732c ci: add build vs2022 amd64 full-static
Add a job to test full static build on windows builder

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5098>
2023-11-27 18:12:18 +00:00
Jordan Petridis
c1c6d017c1 ci: Fix unbound variables for the check video formats job
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5699>
2023-11-21 15:16:09 +00:00
Jordan Petridis
6c7956ab93 ci: Autodetect if cacche is available to print the stats
Always print the stats if ccache executable exists, this way
we can get rid of one extra env var.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5543>
2023-11-18 16:37:08 +00:00
Jordan Petridis
5685db7358 ci: Move the build cflags to a meson native file
Similar to what we use for the werror

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5543>
2023-11-18 16:37:08 +00:00
Jordan Petridis
9483061e31 ci: Move a couple of scripts from yaml to dedicated files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5543>
2023-11-18 16:37:07 +00:00
Jordan Petridis
7a9a8d421f ci: Remove clang workaround from the prallel matrix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5543>
2023-11-18 16:37:07 +00:00
Jordan Petridis
d52cdbc65b ci: Build with -ggdb and -fasynchronous-unwind-tables
This will produce better dwarf information in the binaries so we
can get better stacktraces in the test reports

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5543>
2023-11-18 16:37:07 +00:00