Commit graph

371 commits

Author SHA1 Message Date
Nirbheek Chauhan
6208a61946 cerbero ci: Add hacks for build tools
Instead of putting a hammer-like symlink to ../../gstreamer/cerbero,
do recipe-specific relocation hacks. Fixes random errors like:

```
++ ln -sf /builds/nirbheek/cerbero ../../gstreamer/cerbero
ln: ../../gstreamer/cerbero/cerbero: cannot overwrite directory
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/350>
2020-09-23 12:50:16 +05:30
Nirbheek Chauhan
98e3c7d8b8 cerbero ci: Refactor cerbero_before_script
We were doing a few things suboptimally:

1. Making a symlink from the current directory to
   ../../gstreamer/cerbero so that build-tools kept working, which
   should not be necessary since cerbero relocates all binaries inside
   the cerbero homedir after extracting the cache.

2. Hard-coding the cerbero builddir when building on Windows because
   `pwd` was outputting an MSYS-style path which Python can't read

3. rsync-ing all the contents of $CERBERO_HOST_DIR, which is
   bad because we should be building on top of the artifact cache.
   The only thing we want from $CERBERO_HOST_DIR is cerbero-sources
   (the network cache), and we can setup the toolchain during
   bootstrap with the new --system and --toolchains arguments which
   were split out of --system-only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/350>
2020-09-22 21:58:59 +05:30
Nirbheek Chauhan
ef981bafc9 cerbero ci: Actually use the new cerbero_setup.sh script
Revert after merging.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/350>
2020-09-22 18:41:39 +05:30
Nirbheek Chauhan
0c7275212a manifest: Check all deps logs when picking cerbero commit
Instead of picking the 'slowest build', look at all the deps logs and
pick the commit that is mentioned in the maximum number of deps logs.

In practice, this will either be the newest commit or the previous
commit. If it's not the newest commit, we will warn and use an older
one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/349>
2020-09-22 16:59:48 +05:30
Jordan Petridis
386e40c22e citemplate: set PYTHONFAULTHANDLER for tests
In case python segfaults, which might happen for things with
a C-FFI like pygobject, make it so we get a proper backtrace.

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONFAULTHANDLER

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/341>
2020-09-22 08:15:19 +00:00
Nicolas Dufresne
dec76861ea manifest: Fix URL for cerbero deps log
There was a missing 'f' prefix, so the {branch} was not expanded.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/348>
2020-09-21 11:57:59 -04:00
Nicolas Dufresne
808fc283f3 manifest: Build useful error message
This helps detecting issue with optional steps like cerbero deps
lookup.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/348>
2020-09-21 11:57:26 -04:00
Nirbheek Chauhan
705e375893 Revert "cerbero ci: Also disable the deps build"
This reverts commit 555c49f9d1.

The job is working fine now and takes slightly more time than the iOS
build, so it can be re-enabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/347>
2020-09-21 19:33:17 +05:30
Nirbheek Chauhan
eed018920c cerbero ci: Sprinkle some 'time' commands in the script
Sprinkle some 'time' commands so we can measure how long things take
and we can know where to spend time optimizing first.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/346>
2020-09-19 12:00:15 +05:30
Nirbheek Chauhan
01c53ebf02 ci: Switch cerbero script URL back to gst-ci master
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/345>
2020-09-18 01:44:26 +05:30
Nirbheek Chauhan
555c49f9d1 cerbero ci: Also disable the deps build
There seems to be some issues uploading the cache from the Windows
runner.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/344>
2020-09-18 00:02:27 +05:30
Nirbheek Chauhan
dab27ee564 cerbero ci: Try to fix deps build on the gstreamer namespace
Can't ln twice: it does a cp on MSYS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/344>
2020-09-17 23:23:02 +05:30
Nirbheek Chauhan
f24e7b721a cerbero ci: Don't expand the ssh private key
Because of set -x we were printing the key into the CI logs:
https://gitlab.freedesktop.org/gstreamer/cerbero/-/jobs/4572836#L797

Don't ever expand the variable in shell.
2020-09-17 23:18:30 +05:30
Nirbheek Chauhan
bdbec90a49 Switch MSVC job to manual till we can upload deps cache
The deps cache job is failing:

https://gitlab.freedesktop.org/gstreamer/cerbero/-/jobs/4568410

Because of which MRs in other repos are unable to download the cache
and are building everything from scratch, which is inflating CI times
to 2 hours:

https://gitlab.freedesktop.org/marian/gst-plugins-bad/-/jobs/4567025

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/343>
2020-09-17 16:58:07 +05:30
Jordan Petridis
260935e39e citemplate: post-merge fix for url path
switch it so it looks at the stable branch for the cerbero_setup
script.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/342>
2020-09-17 02:14:55 +03:00
Jordan Petridis
b857a5ada1 citemplate: add initial cerbero msvc builds
This commit adds the last bits needed to have a working
CI job of cerbero using mingw and msvc17 toolchain.

It adds a new stage to the docker image that mirrors
the setup of the cerbero fedora docker build, and
tweaks the cerbero_setup script run by jobs with
a couple windows specific fixes.

Close #39

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/334>
2020-09-16 20:56:14 +03:00
Jordan Petridis
6ffc323ff5 gitlab/cerbero_setup.sh: refactor some tests to if/else statments
and replace the ccache check

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/329>
2020-09-15 16:42:58 +00:00
Jordan Petridis
7d46f1ac5e ci_template: move the cerbero scripts from yaml to a new file
Its hard to manage ever growing bash scripts in yaml, and
its even harder to run them locally to reproduce the environment.

This is essentially a copy-paste of the scripts, to make review
easier. We can refactor later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/329>
2020-09-15 16:42:58 +00:00
Jordan Petridis
050aec524b citemplate: workaround stale subproject cache
The revision of the wrap for pygobject was switched recently [1]

[1]: https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/189

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/339>
2020-09-15 17:24:32 +03:00
Jordan Petridis
fd7b78a918 docker/fedora: install more debug symbols
These are needed for the webrtcbin tests

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/339>
2020-09-15 16:24:51 +03:00
Jordan Petridis
0f50f3901e cerbero/fedora: install which into the image
We used to get this as transient dependency it seems,
which broke rebuilds of the img once w/e pkg was
depending on it, stopped.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/338>
2020-09-10 01:01:30 +03:00
Jordan Petridis
58df3e6f58 citemplate: update the buildah bootstrap image
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/338>
2020-09-09 17:35:25 +03:00
Jordan Petridis
dd43637fce ci_template: correctly spell the global var
Close #83

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/337>
2020-09-09 16:05:00 +03:00
Jordan Petridis
2a3589dc2d citemplate: rework gitlab rules
Rework rules of jobs to prever duplicate pipelines.

https://docs.gitlab.com/ce/ci/yaml/README.html#prevent-duplicate-pipelines

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/331>
2020-08-27 15:39:35 +03:00
Jordan Petridis
524a75e6ff ci_template: remove rules from the docker build
We can run the jobs always automatically since, most of the
time they will be copying/reffing the existance image in the
registry.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/331>
2020-08-27 15:35:12 +03:00
Nirbheek Chauhan
159e0e8134 citemplate: Allow spaces in filenames when indenting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/328>
2020-08-06 01:34:18 +05:30
Tim-Philipp Müller
1ab716b71d citemplate: add support for .indentignore file to indent job
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1465

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/328>
2020-08-05 00:32:17 +01:00
Jordan Petridis
91c85b7ca9 citemplate: skip integration testsuites for gstreamer-sharp
Close #80

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/326>
2020-07-26 12:25:55 +00:00
Jordan Petridis
c44f415a4b citemplate: make it so docker builds only run for detached pipelines
Currently, if you have a MR open, there 2 pipelines being
triggered. One normal, and one detached.

Previously, if you were to rebuild an image, the jobs of the
docker build stage would be executed concurrently, race
and end up both rebuilding the image.

Make them manual for normal pipelines to avoid such occurrence
and waste of resources.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/320>
2020-07-26 09:57:43 +00:00
Jordan Petridis
fe54d6d8cd citemplate: properly pin the image of the docs job
we don't need the image to be copied or rebuilt, as
its currently pinned shortly and won't change anytime soon.

ammends dc48666742 !324

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/325>
2020-07-24 18:54:50 +03:00
Jordan Petridis
dc48666742 citemplate: revert the docs job to the previous image build
The update to f31 from !271 triggered an error in hotdoc it seems,
so rollback for now till we figure it out.

https://gitlab.freedesktop.org/gdesmott/gst-plugins-base/-/jobs/3764215

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/324>
2020-07-23 15:19:46 +03:00
Jordan Petridis
a892850eb2 docker/fedora: update base to fedora 31
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/271>
2020-07-23 06:58:10 +00:00
Nirbheek Chauhan
af11a2cd52 gitlab: Support android tarballs compressed with xz
Needed for
https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/540.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/322>
2020-07-11 01:28:37 +05:30
Mathieu Duponchelle
13c2d964da gitlab: update hotdoc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/321>
2020-07-10 01:09:26 +02:00
Jordan Petridis
4fd36e5d73 docker/fedora: add gtest to get openh264 to build again
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/315>
2020-07-03 16:38:46 +03:00
Matthew Waters
3f6395c2e9 gst-build: only enable werror for gst recipes
It may throws various warning that are treated as errors for other
repositories

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/171>
2020-07-03 15:20:30 +03:00
Jordan Petridis
a5135b1596 citemplate: use the default keyword for our global policy
It was introduced in a recentish release along with pipelines
for merge requests, but it required the use of rules.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Jordan Petridis
d57693328b citemplate: avoid the need to upgrade buildah in docker build
We only need the newer version from the image, to support
the --arch arg, but we don't really use it yet so we
could live without it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Jordan Petridis
f5569ad5dc citemplate: run check in gst-examples but not integration tests
gst-example contains tests for check but not integrations suite

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Jordan Petridis
e18eb064c1 citemplate: run the docs job in more modules
Needed to catch regressions in the docs cache files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Jordan Petridis
efdb7c545c citemplate: slightly improve logging of docker build jobs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Guillaume Desmottes
dbc4ca1b2f ci: use gst-indent from docker image
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/318>
2020-07-03 09:47:27 +00:00
Thibault Saunier
b6ccc2169f gitlab: Update hotdoc 2020-07-02 18:09:32 +02:00
Mathieu Duponchelle
51d0c73074 ci_template: update hotdoc 2020-07-01 19:02:38 +02:00
Nirbheek Chauhan
70f6af0e81 msys2: Fix pacman update
Match the official steps by MSYS2 upstream for updating on CI:

https://github.com/msys2/setup-msys2/blob/master/main.js#L98

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/317>
2020-06-30 18:17:07 +05:30
Jordan Petridis
e94919137c citemplate: check if the gitlab registry is enabled on the fork
If its not CI_REGISTRY_IMAGE will be null and break the job.
Instead paste a helpful message with the documentation on how
to enable the registry.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/316>
2020-06-30 00:12:45 +03:00
Jordan Petridis
41e979e1e4 citemplate: remove tag restriction for docker builds jobs
There isn't anything particular that needs to be on the gstreamer
runners, and the other shared runners should be able to handle
them fine.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/314>
2020-06-29 15:43:31 +00:00
Guillaume Desmottes
0a085866ae docker: move gst-indent script into docker image
This script is now very stable, so downloading it everytime is no longer useful.
It can also helps avoid network errors when running ci jobs.

Fix #70

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/306>
2020-06-29 17:12:00 +03:00
Jordan Petridis
5c490de1bd citemplate: also check the forked registry for image builds
In case you are developing a set of changes in a module, in
conjunction with a branch in gst-ci, you will end up with
a template with a different tag than the upstream repo, which
will be refferencing your gst-ci forked registry.

But that image won't existin in the namespace the
module would be running at, so we need to copy it from there.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/308>
2020-06-26 12:14:28 +00:00
Jordan Petridis
3a004f7ca4 citemplate: use the fd.o pre existing buildah image to build containers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/308>
2020-06-26 12:14:28 +00:00