Commit graph

178 commits

Author SHA1 Message Date
Jordan Petridis
d53dfcf94e ci: use a custom powershell script to run windows tests
There are a couple things going on here.

First, we need to avoid building egl/wayalnd/x11 crates on windows
as they can't be built.

Then we need to avoid running -sys tests as they don't succeed
currently. See [1]

Finally use a matrix:parallel job to tests multiple build
configurations.

[1] https://github.com/gtk-rs/gtk3-rs/issues/54

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 19:51:49 +03:00
Jordan Petridis
5e27da5a1c ci: add an msvc 2017 test
Tests disabled for now, till some quirks are worked out.
Thi should be good enough to at least not break the build though.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 19:51:49 +03:00
Thibault Saunier
56a46fc6fd ci: Re-implement the gi-checker in python
To cleanup and ignore the gstreamer-utils crate
2022-05-11 10:14:54 -04:00
Jordan Petridis
b62d22852e ci: cleanup the checkouts in the docker image after install 2022-05-10 10:11:47 +03:00
Sebastian Dröge
ba955a22bd ci: Update image version for including a newer GStreamer build 2022-05-03 15:42:18 +03:00
Sebastian Dröge
c82aefd2a4 ci: Run coverage job on the stable image 2022-04-07 18:51:20 +03:00
Sebastian Dröge
680d4af732 ci: Update to Rust 1.60 2022-04-07 18:48:59 +03:00
Sebastian Dröge
d92e49a797 ci: Update image version 2022-04-06 09:39:25 +03:00
Vivienne Watermeier
1274a59472 video: update navigation API for recent changes
Add support for the new send_event_simple and event_get/set_coordinates
functions, as well as touchscreen events and modifier state. See:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010
2022-04-05 19:49:05 +00:00
Sebastian Dröge
72027a6d60 ci: Update image version 2022-04-05 19:49:05 +00:00
Jordan Petridis
e6dc3f5b3e ci: Patch the gtk4 build in the CI image so it builds
wayland-protocols 1.25 subproject fails to build on
debian 11, but in general switch subprojects to stable
branches.

Upstream MR:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4580
2022-03-17 18:05:13 +02:00
Sebastian Dröge
a3b95d60ae ci: Update to meson 0.61.3, GTK 4.6 branch and rebuild GStreamer 2022-03-15 15:46:11 +02:00
Sebastian Dröge
ab04715dc7 ci: Update to Rust 1.59 2022-02-24 19:41:19 +02:00
Sebastian Dröge
bf660cf22a Update minimum supported Rust version to 1.57 2022-02-22 00:00:39 +02:00
Sebastian Dröge
70e95d4576 ci: Update to get GStreamer 1.20.0 release 2022-02-04 12:24:09 +02:00
Sebastian Dröge
23565c8723 ci: Update GStreamer version 2022-01-29 18:18:13 +02:00
Sebastian Dröge
a734f38ee6 ci: Update image to get newer GStreamer build 2022-01-25 13:20:58 +02:00
Sebastian Dröge
847e800269 ci: Update to meson 0.60.3 2022-01-13 23:13:32 +02:00
Sebastian Dröge
cf50295b73 ci: Update to Rust 1.58 2022-01-13 23:13:32 +02:00
Jordan Petridis
d245056e7b ci: add gtk4 to the image
This is a prerequisite to porting the examples to gtk4
2022-01-11 18:26:34 +02:00
Sebastian Dröge
badec2252c ci: Update to Rust 1.57 2021-12-02 17:51:19 +02:00
Sebastian Dröge
04a87085f6 ci: Update image to get new and fixed cargo-outdated 0.10.1 version
The previous version had some problems with acquiring the package cache.
2021-11-17 09:56:20 +02:00
Sebastian Dröge
41b1263061 ci: Update image to get newer GStreamer 2021-11-16 20:18:31 +02:00
Guillaume Desmottes
3cf2104726 switch back to official cargo-outdated
Latest release supports Rust 2021.
2021-11-10 07:42:48 +01:00
Sebastian Dröge
b4282c9444 ci: Update cargo-outdated to a branch with Rust edition 2021 support 2021-11-04 13:40:16 +02:00
Sebastian Dröge
c00a97f5ec Update to Rust edition 2021 and minimum supported Rust version 1.56
Also update CI image to use meson 0.60.
2021-10-31 11:47:34 +02:00
Sebastian Dröge
4579fb006b ci: Update to Rust 1.56 and meson 0.59.2 2021-10-22 22:04:45 +03:00
Guillaume Desmottes
fc49a0cfd8 ci: build some plugins
I'll need those for the tests of a new element I'm writting for
gst-plugins-rs.
2021-10-22 09:38:44 +02:00
Guillaume Desmottes
da61c19b69 ci: install gst from mono repo 2021-10-07 15:33:19 +02:00
Sebastian Dröge
514c18ad5a ci: Update image with a newer GStreamer version
As preparation for updating the bindings to the latest 1.19 APIs.
2021-09-19 10:08:37 +03:00
Sebastian Dröge
4951fb8630 ci: Update stable image to Rust 1.55 and update to meson 0.59.1 2021-09-09 22:20:06 +03:00
Jordan Petridis
abfa75b334 ci: update base image to debian 11
also update the ci-template sha

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/836>
2021-08-16 15:25:08 +00:00
Guillaume Gomez
38dfeb9b00 Update minimum supported rust version to 1.54 2021-07-30 20:26:11 +02:00
Sebastian Dröge
6ad0e9e0a0 ci: Update minimum supported Rust version to 1.53
One of our dependencies needs 1.53 now and we can't realistically
support older versions like this.
2021-07-26 10:29:06 +03:00
Sebastian Dröge
156dffd00e ci: Update images to Rust 1.53, rustup 1.24.3, meson 0.58.1 2021-06-18 16:30:55 +03:00
Marijn Suijten
6e2cba928a ci: Bump image version to rebuild images with master GStreamer 2021-06-03 20:35:28 +02:00
Marijn Suijten
fc1716cd8a ci/install-gst: Clone gst-build master branch 2021-06-03 20:35:28 +02:00
Guillaume Desmottes
1fa5028b90 ci: update Rust stable to 1.52
Looks like it's needed for the plugins:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/512
2021-05-17 09:41:55 +02:00
Marijn Suijten
d203745cfc ci: Install rustdoc-stripper in Nightly Rust image
This saves two build-jobs from performing the same (expensive!)
compilation+installation over and over again, when it is much cheaper to
cache it in the image instead.
2021-05-05 12:23:40 +02:00
Guillaume Desmottes
c3946eef7c ci: generate cobertura report directly
grcov 0.8.0 now has cobertura support so we no longer need to to export
to lcov format and then convert.

Extract the summary from the generated html so the metric matches the
one from the html report (for some reason the cobertura ones are
differents).

The new gitlab summary parsing regexp is now:
  <abbr .*>(\d+.\d+) %<\/abbr>
2021-04-23 12:28:54 +00:00
Guillaume Desmottes
ba0b9801e3 ci: use latest grcov release
0.8.0 now display a warning but no longer panic on the overflow issue.
2021-04-23 12:28:54 +00:00
Guillaume Desmottes
1b9c0482d1 ci: uses grcov 0.6.1
Newer versions suffer a regression breaking the job.
2021-04-16 09:02:36 +02:00
Sebastian Dröge
d69f8793d5 ci: Update minimum supported Rust version to 1.51
Various dependencies require that now for const generics.
2021-03-27 14:23:25 +02:00
Sebastian Dröge
c51a645ee2 ci: Update to Rust 1.51 2021-03-25 17:43:10 +02:00
Sebastian Dröge
e7e629e6e6 ci: Update to meson 0.57.1 2021-03-25 17:43:04 +02:00
Sebastian Dröge
e20ab8d80c ci: Update to Rust 1.50 and meson 0.56.2 2021-02-11 17:36:40 +02:00
Guillaume Desmottes
01e1cfce54 ci: add coverage job
Uses the new llvm source-base coverage from nightly to generate coverage
reports:
- full html report as artifact
- cobertura report for gitlab MR integration
- output coverage summary for gitlab parsing

Here is the regexp to set in gitlab as "Test coverage parsing":
\s*lines\.*:\s*([\d\.]+%)

Ignore sys crates when calculating coverage are those are fully
generated anyway.

Resources:
- https://github.com/marco-c/rust-code-coverage-sample
- https://github.com/mozilla/grcov/issues/468#issuecomment-691615245
- https://www.greycastle.se/how-to-show-flutter-test-coverage-in-gitlab-ci/
2021-01-11 15:41:21 +01:00
Sebastian Dröge
2376f53fd4 ci: Update to Rust 1.49
Minimum supported version is still 1.48
2020-12-31 16:54:16 +02:00
Sebastian Dröge
94b5184c99 ci: Update to rustup 1.23 2020-11-27 17:33:10 +02:00
Sebastian Dröge
7db21a3375 ci: Update stable/minimum support Rust version to 1.48 2020-11-19 16:43:02 +02:00
Sebastian Dröge
773d92f9f5 ci: Store stable and minimum supported Rust version (MSRV) in template variables
And don't make the actual version numbers part of the jobs.
2020-11-05 16:55:29 +00:00
Sebastian Dröge
a3395062f1 ci: Build gstreamer from the 1.18 branch for now
git master has ABI changes in gst-plugins-bad.
2020-11-01 09:58:52 +02:00
Sebastian Dröge
b23fcd3904 ci: Update to meson 0.56.0 2020-11-01 09:58:52 +02:00
Sebastian Dröge
9c141a2fbf ci: Explicitly select stable Rust version
And for now we stay at 1.46.0 because 1.47.0 has a bug that prevents
clippy from succeeding.
2020-11-01 09:58:52 +02:00
Sebastian Dröge
a540274c72 ci: Update minimum supported version to 1.41
Needed for gst-plugins-rs now because one dependency requires a newer
version now.
2020-09-09 09:25:15 +03:00
Sebastian Dröge
f1b4592d17 ci: Rebuild GStreamer to update to 1.18.0 2020-09-08 15:37:48 +03:00
Sebastian Dröge
82b469bc59 Update CI images for Rust 1.46 and GStreamer 1.17.90
And also update to meson 0.55.1 while we're at it.
2020-08-27 19:42:02 +03:00
Sebastian Dröge
6abad01d88 ci: Update GStreamer version 2020-08-11 09:07:30 +03:00
Sebastian Dröge
01397b213d ci: set -e in all shell scripts
Otherwise errors are silently ignored.
2020-07-28 09:46:21 +03:00
Sebastian Dröge
1d3df7eaa5 ci: Update CI image for Rust 1.25, rustup 1.22.1, meson 0.55 and switch to cargo-outdated release 2020-07-28 09:44:37 +03:00
Sebastian Dröge
052c056dd1 Update CI image to latest GStreamer git
And also update meson to 0.54.3
2020-07-05 23:09:01 +03:00
Guillaume Desmottes
4b553c3ae7 ci: check commit using ci-fairy
See https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#checking-commits

In this setup it will check for any leftover fixup!/squash! commits and
that messages don't have the 'Signed-off-by:' tag.
2020-06-11 13:57:23 +00:00
Guillaume Desmottes
59cfdc5e1a ci: rebuild to update GStreamer
Need the new audio and video formats APIs.
2020-06-09 09:26:31 +02:00
Guillaume Desmottes
cac9767167 ci: rebuild image to update to Rust 1.44.0 2020-06-05 10:07:01 +02:00
Guillaume Desmottes
737d998a54 ci: rebuild images to update gst
Will be needed to bind the new webrtc APIs.
2020-06-03 11:45:57 +02:00
Guillaume Desmottes
5775e531d9 ci: rebuild images to update gst
Will be needed to bind the new audio and video caps APIs.
2020-06-02 14:22:05 +02:00
Guillaume Desmottes
6cf5914e21 ci: rebuild images
This will update to latest Rust stable (1.43.1).
2020-05-08 09:14:07 +02:00
Vivia Nikolaidou
a0fa164b7b Update ci gstreamer to master 2020-04-30 18:17:21 +03:00
Guillaume Desmottes
f28a92c46c ci: update ci template
Prevent creating a second useless layer, see
https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/26

Update image tag to ensure building images is still working.
2020-04-28 16:08:56 +02:00
Guillaume Desmottes
fe30b4a388 ci: improve docker image layering
At the moment we are building 3 independent images, each one having a different
Rust version. This works perfectly fine but we can save storage space and
bandwith by making a smarter use of Docker's layering system.

Introducing a new 'base' image containing all the deps, including
GStreamer, acting as a base for the actual images.
As a result most of the actual content is now shared accross the same
Docker layer. This would save us from downloading/building all the deps
when updating images and will reduce storage and transfers for runners.
2020-04-28 15:25:48 +02:00
Guillaume Desmottes
2aa529fbdf ci: remove cargo-audit
It's been replaced by cargo-deny in all modules.

Don't regenerate images for now, it's not a problem to keep it around
until the next images update round.
2020-04-28 11:40:14 +02:00
Guillaume Desmottes
d31a9fece4 ci: install cargo-audit
Not needed for gstreamer-rs as it uses 'cargo deny' but still used by
gst-plugins-rs and gstreamer-rs-sys.
2020-04-27 14:12:26 +02:00
Guillaume Desmottes
1567513e8a ci: force images rebuild
No change, will be used to ensure that gst-plugins-rs images are
actually updated.
2020-04-27 12:41:47 +02:00
Guillaume Desmottes
e40e23b82c ci: move image tags to its own file
Will be used by gst-plugins-rs to reference gstreamer-rs images as
bases.
2020-04-24 14:00:11 +02:00
Guillaume Desmottes
932d4720c0 ci: fix CARGO_HOME caching
CARGO_HOME's semantic depends on when it's used in the pipeline:
- it's the install prefix when installing Cargo
- it's the crate cache location when building jobs

env.sh is sourced at the start of all jobs and was overidding the
CARGO_HOME path defined in the CI template for caching. Fix this by
moving the prefix install path to install-rust.sh.
2020-04-21 09:35:33 +00:00
Sebastian Dröge
47d839e58a Switch from cargo-audit to cargo-deny
This provides a superset of the features, including license checks.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/238
2020-04-16 12:12:45 +02:00
Guillaume Desmottes
99f91167af ci: build GStreamer instead of importing tarball
Makes it much easier to update to a new gst version.
2020-04-16 09:47:15 +02:00
Guillaume Desmottes
429962bdd7 ci: use fdo ci template
Build our own images instead of manually installing everything we need
for each job. This should hopefully speed up our ci and make it more
robust.
2020-04-16 09:46:57 +02:00