summaryrefslogtreecommitdiff
path: root/.gitlab-ci
Commit message (Collapse)AuthorAgeFilesLines
* ci: Use Meson 1.0.0 on Windows and macOS CI buildsPhilip Withnall2023-02-162-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a departure from our policy of using the minimum required Meson version, but I think it might be worth a try to see if it fixes the persistent intermittent build failures on these platforms due to what looks like build dependency graph issues. For example: - https://gitlab.gnome.org/GNOME/glib/-/jobs/2579411 - https://gitlab.gnome.org/GNOME/glib/-/jobs/2578792 - https://gitlab.gnome.org/GNOME/glib/-/jobs/2579220 - https://gitlab.gnome.org/pwithnall/glib/-/jobs/2588507 I was looking at trying to diagnose some of these failures in order to potentially file bugs against Meson, but the first step is really to test against the latest version of Meson. So here we are. Crucially, our other CI jobs continue to use the minimum Meson version required by GLib, so we continue to test that GLib builds with its minimum dependencies. I do not plan to change that. Also crucially, this MR continues to use a specific Meson version, rather than asking `pip` to install the latest available. Doing that could lead to unexpected regressions in future, and that’s not what GLib’s CI is meant to be testing for. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Use verbose output in meson by defaultMarco Trevisan (Treviño)2023-01-203-6/+6
| | | | | | Now that we're using TAP parsing, this will show subtest failures in details but without showing any logging error, that we'd still need to parse from actual logs.
* ci: Fix podman support in run-docker.shNirbheek Chauhan2022-12-311-8/+9
| | | | | In newer Fedora versions, `docker` doesn't exist. You have to use `podman`.
* ci: Update docker image generation READMENirbheek Chauhan2022-12-311-2/+2
|
* ci: Don’t fail if testlog-unstable_tests.junit.xml doesn’t exist on MSVCPhilip Withnall2022-12-081-1/+1
| | | | | | | | | | | That file is created if running the `unstable_tests` suite succeeds. It can fail, though, leaving that log file nonexistent. There’s no point in failing the whole test run by bailing out if postprocessing the log file fails. Occasionally postprocessing can fail with a `FileNotFoundError`. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* Revert "build: Bump Meson dependency to 0.64.0"Philip Withnall2022-11-246-6/+6
| | | | | | | | | | | | | | | | | | | | | This reverts commit 91f14cd058555f16b5abef1a577332921b08497b. The freedesktop SDK, which is used by gnome-build-meta, only has Meson 0.63. Bumping GLib’s Meson dependency to 0.64 means that, at the moment, GLib is not buildable in gnome-build-meta and hence can’t be tested in nightly pipelines against other projects, etc. That’s bad for testing GLib. It’s arguably bad that we’re restricted to using an older version of Meson than shipped by Debian Testing, but that’s a separate discussion to be had. Revert the Meson 0.64 dependency until the freedesktop SDK ships Meson ≥ 0.64. This also means reverting the simplifications to use of `gnome.mkenum_simple()`. See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3077#note_1601064
* build: Bump Meson dependency to 0.64.0Philip Withnall2022-11-236-6/+6
| | | | | | | | | | | | | | | | | It will fix dependency ordering issues found in https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2917#note_1559190. As per `docs/meson-version.md`, we can depend on Meson ≤0.64.0 now as it’s in Debian Testing. The FreeBSD runners have to be changed to explicitly install the right version of Meson using `pip3`, as the system-installed version is not quite new enough. See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3077#note_1596257. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: !2917
* ci: Exclude copylibs and fuzz tests from code coveragePhilip Withnall2022-11-101-0/+6
| | | | | | | | | | | | | The fuzz tests are run on a separate CI system, and we don’t care what their code coverage is. The only reason they’re run on our CI systems at all is as a smokecheck. They are not unit tests that we want to check are running every line. Similarly, exclude copylibs/subprojects as GLib is not responsible for testing them. They have (or should have) their own unit tests and code coverage metrics in their upstreams. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Add a CI check for REUSE-compliant licensing/copyright headersPhilip Withnall2022-11-082-0/+65
| | | | | | | | | | | | | | | | | | This doesn’t enforce licensing/copyright headers to be present on all files, but does check that at least a minimum number of files are correct. This should help avoid new files being added without appropriate licensing information in future. The baseline is set at what `reuse lint` outputs for me at the moment. See https://reuse.software/tutorial/#step-2 for information about how to add REUSE-compliant licensing/copyright to files. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #1415
* Merge branch 'wip/3v1n0/support-can-fail-tests' into 'main'Philip Withnall2022-10-314-7/+22
|\ | | | | | | | | meson, ci: Support tests that can fail under certain conditions See merge request GNOME/glib!2987
| * ci: Remove not-printable chars from generated junit fileMarco Trevisan (Treviño)2022-10-311-0/+9
| | | | | | | | | | | | | | Under windows we get some invalid chars that are causing gitlab not to be able to parse the xml files See: https://github.com/mesonbuild/meson/issues/9894
| * ci: Show commands run from the test scriptsMarco Trevisan (Treviño)2022-10-313-3/+3
| | | | | | | | It allows better debugging in case of failures.
| * ci: Mark failing mingw tests as can-fail and do not ignore test failuresMarco Trevisan (Treviño)2022-10-311-2/+1
| |
| * ci: Mark failing windows tests as can-fail and do not ignore test failuresMarco Trevisan (Treviño)2022-10-311-2/+1
| |
| * meson, ci: Support tests that can fail under certain conditionsMarco Trevisan (Treviño)2022-10-313-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have tests that are failing in some environments, but it's difficult to handle them because: - for some environments we just allow all the tests to fail: DANGEROUS - when we don't allow failures we have flacky tests: A CI pain So, to avoid this and ensure that: - New failing tests are tracked in all platforms - gitlab integration on tests reports is working - coverage is reported also for failing tests Add support for `can_fail` keyword on tests that would mark the test as part of the `failing` test suite. Not adding the suite directly when defining the tests as this is definitely simpler and allows to define conditions more clearly (see next commits). Now, add a default test setup that does not run the failing and flaky tests by default (not to bother distributors with testing well-known issues) and eventually run all the tests in CI: - Non-flaky tests cannot fail in all platforms - Failing and Flaky tests can fail In both cases we save the test reports so that gitlab integration is preserved.
* | ci: Add an msys2-clang64 job to run only on schedulesMarco Trevisan (Treviño)2022-10-311-1/+9
| | | | | | | | It has enough particularities to require a job to monitor failures
* | ci/test-msys2: use $MINGW_PACKAGE_PREFIXMarco Trevisan (Treviño)2022-10-311-16/+11
| |
* | ci: Set CFLAGS on msys2-mingw32 in yaml file as it happens for other jobsMarco Trevisan (Treviño)2022-10-311-14/+17
|/ | | | Be consistent, and based on this also perform the lcov job or not
* Fix coding style issue in .gitlab-ci/check-missing-install-tag.pyEmmanuel Fleury2022-10-271-1/+1
|
* ci: Fix failing tests not failing CI jobXavier Claessens2022-10-261-0/+2
|
* ci: Fix check for missing install tagXavier Claessens2022-10-261-8/+11
| | | | Better check the installation plan json file instead of parsing logs.
* ci: Conform to Python's coding styleEmmanuele Bassi2022-09-251-5/+8
| | | | | The check-missing-install-tag.py script breaks PEP8, and the style check CI job complains about it.
* ci: Check that all installed files have a tagXavier Claessens2022-09-203-0/+28
|
* run-docker: Do not require sudo if the user is part of docker groupMarco Trevisan (Treviño)2022-09-151-0/+2
|
* ci: Generate Cobertura XML and use it to feed gitlab for MR integrationMarco Trevisan (Treviño)2022-09-151-0/+8
| | | | | | | | | | gitlab has coverage integration in MRs, but we need a cobertura formatted XML files (each must be less than 10 MB [1]) to show it, so generate it using a python script and inform gitlab about it. See https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html [1] https://gitlab.com/gitlab-org/gitlab/-/issues/328772#note_840831654
* ci: Install lcov-cobertura and cobertura-split script in coverage imagesMarco Trevisan (Treviño)2022-09-152-0/+20
| | | | These are needed to be able to get cobertura reports in gitlab.
* ci: Improve style check scriptMatthias Clasen2022-09-091-2/+8
| | | | | | | | | | | Sync with changes from GTK: - Set a git config to work around security improvements in recent git. - Only fetch the two branches we want to compare for the style check. - Use the existing git merge-base command to find their common ancestor.
* replace pcre1 with pcre2Aleksei Rybalkin2022-07-125-5/+1
|
* ci: Add libpcre2 dependencies and subprojectPhilip Withnall2022-06-275-1/+5
| | | | | | | | | | | | | This is in preparation for porting `GRegex` to libpcre2, which is happening in !2529. It’s a big port, though, and specially rebuilding the CI images to add libpcre2 for it is a pain. Add libpcre2, and then !2529 can drop the old libpcre dependencies when the port lands. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #1085
* ci: Add gdb to some CI imagesPhilip Withnall2022-06-272-0/+2
| | | | | | | | | | | | This will be useful in general, for manually debugging failures if we need (without having to rebuild the CI images to do so). It will also be useful for the `assert-msg-test` test, which is being reworked in !2767. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #1434
* build: Move gvdb to a subprojectPhilip Withnall2022-06-162-1/+2
| | | | | | | | | | | | | | | | | Rather than carrying the copylib around inside GLib, which is a pain to synchronise and affects our code coverage statistics. This requires updating the CI images to cache the new subproject, including updating the `cache-subprojects.sh` script to pull in git submodules. It also requires adding `gioenumtypes_dep` to be added to the dependencies list of `libgio`, since it needs to be build before GVDB as it’s pulled in by the GIO headers which GVDB includes. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #2603
* gitlab-ci: left-over from junit cleanupMarc-André Lureau2022-05-251-16/+0
| | | | | | This should have been part of GNOME/glib!2686 (sorry!) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
* gitlab-ci: remove meson-junit-report.py conversionMarc-André Lureau2022-05-254-142/+0
| | | | | | meson supports JUnit XML format since 0.55. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
* ci: Move clang-format-diff.py into CI directoryPhilip Withnall2022-05-112-1/+167
| | | | | | | There’s no point in having it in the root directory when it’s only really used for CI. It just clutters up the root. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Update to latest Android NDKXavier Claessens2022-05-115-181/+31
| | | | | | | Move the NDK in the common Fedora image, better have 1 bigger image that gets cached into runners. It is also less images to maintain. Fixes: #2605
* ci: Bump CI image versions for new Meson and libpcre versionsPhilip Withnall2022-05-061-1/+1
| | | | | | As per the previous few commits. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* build: Bump Meson dependency to 0.60.0Philip Withnall2022-05-066-6/+6
| | | | | | | As per the new policy in `docs/meson-version.md`, we can now bump the dependency. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* build: Move lcovrc file to root so it’s picked up by MesonPhilip Withnall2022-04-283-18/+5
| | | | | | | | | | | | Move the lcovrc file to the root of the project, so that it’s picked up by Meson when running `ninja coverage` locally. See https://github.com/mesonbuild/meson/issues/4628 This won’t affect the code coverage run on the CI, since that explicitly used the lcovrc file already. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* gio: Remove fam file monitor supportPhilip Withnall2022-03-231-1/+0
| | | | | | | | | | | | | | | | | libgamin was last released in 2007 and is dead [upstream](https://gitlab.gnome.org/Archive/gamin). Distributions may still ship it (although Fedora no longer does), but we want people to use inotify on Linux since it’s actively supported. BSDs use kqueue. Windows uses win32filemonitor. FAM might still be used on some commercial Unix distributions, but there are no contributors from those distributions, and certainly no CI for them to prevent regressions. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Fixes: #2614
* ci: Update Android NDK image to Fedora 34Philip Withnall2022-03-181-3/+12
| | | | | | | | | | | | | Don’t take the opportunity to add support for Android API 31 or update the version of the Android NDK we’re using to r23b, though, as I couldn’t quickly get that to work and ran out of time. Bumping the Fedora version will at least reduce our CI repository disk usage through sharing the base image. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #2605
* ci: Update mingw image to Fedora 34Philip Withnall2022-03-181-2/+1
| | | | Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Update Coverity image to Fedora 34 and latest Coverity Scan toolPhilip Withnall2022-03-181-1/+1
| | | | Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Update the Fedora CI image to Fedora 34Philip Withnall2022-03-081-2/+1
| | | | | | | | | | | This is the oldest still-supported version of Fedora. It no longer ships gamin. This should fix the installed-tests, which rely on version 0.19 of python-dbusmock. Fedora 33 only had 0.18. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Drop Android API 21 build jobsPhilip Withnall2022-02-202-16/+0
| | | | | | | | | API version 21 was used for Android 5.0 (https://developer.android.com/studio/releases/platforms#5.0), which is no longer supported (https://en.wikipedia.org/wiki/Android_version_history). Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Add link to Coverage output at end of coverage jobPhilip Withnall2022-02-011-0/+3
| | | | | | | This should make it a bit easier to find the coverage report, rather than digging through the job artifacts. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* Add Windows native static build using msvc to CILoïc Le Page2022-01-261-2/+9
|
* ci: Upgrade to clang-format-11 from clang-format-7Philip Withnall2021-11-231-1/+1
| | | | | | | | `clang-format-11` is now what’s available in our Debian Stable CI image. This should fix failures in the `style-check-diff` job. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Add -fstack-protector to mingw64 cross filePhilip Withnall2021-10-131-1/+4
| | | | | | | See the comment in the code. As suggested by Nirbheek: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2287#note_1285058. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* ci: Use the new CI imagesPhilip Withnall2021-10-071-1/+1
| | | | | | Built using the changes from the last few commits. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
* build: Bump Meson dependency to 0.52.0Philip Withnall2021-10-075-5/+5
| | | | | | | | | This is what’s available in the new Debian Stable, so we can expect it to be available pretty much everywhere. Subsequent commits will clean up old workarounds. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>