Commit graph

144 commits

Author SHA1 Message Date
Íñigo Huguet
3d1b55047b ci: update supported distros 2025-05-13 11:39:05 +02:00
Lubomir Rintel
837cf2e6e4 gitlab/fedora-install: use yum install --allowerasing
This allows us to drag in packages that replace something in the base
image. Notably, this fixes installing pppd on Fedora 42 that requires
systemd (whereas the image has conflicting systemd-standalone-sysusers).

(cherry picked from commit 979717df4e)
2025-02-28 14:21:19 +01:00
Lubomir Rintel
57f9d99b8a contrib: drop old gtkdoc patch
This has been integrated 6 years ago.

(cherry picked from commit 054962aeea)
2025-02-28 14:21:19 +01:00
Íñigo Huguet
9e47c9bc6a ci: make check-tree optional for branches other than main
Old branches tend to be formatted with a different versions of
clang-format, so when patches are backported, they introduce some
differences in formatting, making the check-tree job to fail.

These changes in formatting are normally small, and we don't pay much
attention to them, causing that the pipelines are always red, increasing
the work required to check if there are important failures or not.

Make check-tree optional for branches other than main. This way,
failures will be shown as a "warning", and if a pipeline only shows a
warning we don't need to inspect it.
2025-01-17 12:16:43 +01:00
Jan Vaclav
9ed9037465 ci: use default_distro for coverity job
Previously, the coverity scheduled job seemed to fail
randomly because the image that it expected to use was
not available, due to not depending on the "prep" job.

This commit resolves the problem by making sure
the image is always built when coverity runs.
2025-01-16 11:21:39 +01:00
Íñigo Huguet
83d99669f5 distros_support.py: always put CentOS Stream at least as Tier 3
We only add to Tier 3 distro versions that ship a version of NM equal or
older to the one that we are testing. As CentOS Stream uses "main", no
stable version will be tested on it.

Force to test CentOS Stream as Tier 3.
2024-12-24 14:42:45 +01:00
Íñigo Huguet
74dba128e9 distros_support.py: fix printing "fedora" entry without "versions" 2024-12-24 14:42:09 +01:00
Íñigo Huguet
af623592f8 ci: update distros
Remove EOL'd, add new versions recently released.
2024-12-24 14:04:54 +01:00
Íñigo Huguet
03ff197b96 ci: fix test failures on non Fedora distros 2024-11-12 15:38:17 +01:00
Íñigo Huguet
9a35007bac ci: allow to manually select the Fedora version for Tier 1
Versions that has branched out from Rawhide but are still not released
still have many changes that breaks the CI.

As we want the CI to be more stable for Tier 1, which runs for every MR,
do not make the switch as soon as Rawhide has branched, but when we choose so.
2024-11-11 13:55:23 +01:00
Íñigo Huguet
9354fabaa8 ci: Update ci-templates to a version that support Alpine versions
ci-templates only supported alpine:latest, but support for any other
version has been introduced. Use it so our Alpine pipelines stop
failing.
2024-11-11 13:55:23 +01:00
Íñigo Huguet
7cef59c503 ci: rename function in run-test.sh for clarity
I always struggle to understand what 'check_run' means, as it suggests
that the run is executed and the results checked. What it acutally does
is to check if the run passed as argument is selected. Rename to
is_run_selected.

Also, remove check_run_clean which was only a check_run + do_clean. Just
call directly to do_clean.
2024-11-11 13:55:23 +01:00
Íñigo Huguet
0d4c8a235a CI: add testlog.txt as build artifacts
That way we will be able to check the logs in the case of failure.
2024-11-11 13:55:23 +01:00
Jan Vaclav
4db1829bc7 all: remove misc mentions of autotools in docs 2024-09-11 12:18:15 +00:00
Jan Vaclav
12b5b8317b build: remove autotools configuration from scripts 2024-09-11 12:18:15 +00:00
Jan Vaclav
82a6a82031 gitlab-ci: use meson for check-tree 2024-09-11 12:18:15 +00:00
Íñigo Huguet
1b614540b8 distros-info: add option to print all active NM branches
Add option --all to distros_support.py to show all the NM versions that
are being actively used by any active distro. This will be useful to
decide what stable branches are we interested into actively backporting
fixes and which ones we're not.
2024-09-10 11:32:32 +00:00
Íñigo Huguet
8be5aae5b9 ci: update config.yml with the latest info about distros
Content autogenerated by .gitlab-ci/distros_support.py from the content
of .gitlab-ci/distros-info.yml.
2024-09-10 11:32:32 +00:00
Íñigo Huguet
6f34b404e8 distros-info: add script to extract useful info from distros-info.yml
Passing a version number of NetworkManager to this new script, it prints
what distros are using that NM version and generates a new content for
.gitlab-ci/config.yml.

Automatically generating the config.yml content is useful because we can
easily update what distros we test in the CI and the Tier that they
belong, depending on what version of NM do they ship and whether they
have reached EOL or not.

Important: when generating a config.yml for an stable branch, not for
main, it must be generated from main. This is because we are not going
to keep distros-info.yml up to date in all branches, only in main.
2024-09-10 11:32:32 +00:00
Íñigo Huguet
79272e5379 distros-info: update some distros and add useful links
Update the info of some distros.

Add links to facilitate consulting the information in the future when we
want to update it again.
2024-09-10 11:32:32 +00:00
Íñigo Huguet
afefa1acde ci: remove CentOS Stream 8 (EOLd)
It even fails to download the image.
2024-08-21 09:00:05 +02:00
Íñigo Huguet
e15a9aa1a5 ci: add file with info about distros that we test
Useful to have easily accessible the info of all the distros that we
test, including the version of NM that they ship and their EOL dates so
we can know when to stop testing them.

For now this is only informative, but we can use this info, for example,
to generate the `.gitlab-ci/config.yml` file automatically for each
stable branch.
2024-06-28 10:56:28 +00:00
Jan Vaclav
593b4e01a4 gitlab-ci: ensure coverity job runs weekly
Currently, the condition is not strict enough, and so the job runs every time a scheduled task is triggered - which is currently daily.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1979
2024-06-28 07:35:32 +00:00
Jan Vaclav
508d43efc9 gitlab-ci: add coverity submissions to weekly scheduled CI
We currently submit builds to Coverity manually every now and then,
but it would make sense to submit them more frequently and periodically,
so that it can detect defects sooner.

Add a "coverity" stage to the pipeline, which submits a build to Coverit
(the scheduls currently set to run every week).

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1973
2024-06-26 12:58:03 +02:00
Íñigo Huguet
cf86af6cbd Explain new issues workflow and add triage automation
Add explanation of how to indicate the new issues workflow to
MAINTAINERS.md: triage -> investigation -> devel. The different
stages are indicated using Gitlab's scoped labels (mutually exclusive).

These stages try to hightlight that the issue cannot be fixed and it's
not moving forward because more info is needed, already.  Also, add a
section to CONTRIBUTING.md highlighting the importance of helping in
the triage and investigation stages: developers often cannot fix bugs
because lack of time to investigate, but even users that doesn't know
how to fix it due to lack of knowledge of the code base can help thanks
to their knowledge on networking.

Finally, make the 'triage:issues' CI job to work again, adding some
new policies with new automations. The automation will add or remove the
labels: stale, help-needed::{triage, investigation, devel} and
unassigned.

The labels help-needed::* and unassigned will be automatically added to
all issues without an assignee. This reflects better the reality of not
having enough time to work on most of the issues unless there is some
external help.
2024-06-18 13:11:58 +02:00
Fernando Fernandez Mancera
f6be3c0cb1 gitlab: move Fedora rawhide and C9S to tier 2
As discussed [1], we are using a lot of resources from freedesktop org.
Let's reduce the number of distributions tested in tier1 to just one.

[1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1549
2024-05-31 16:53:02 +02:00
Fernando Fernandez Mancera
dda6e9515f gitlab: drop the autotools jobs
As we are dropping autotools in 1.50, we can drop the autotools jobs. It
would also help to lower the load on freedesktop pipeline.
2024-05-31 16:53:02 +02:00
Fernando Fernandez Mancera
4e50d7d53f gitlab: fix helper scripts to support DNF5
As Fedora 41 (currently Rawhide) is migrating to DNF5 [1], the
debuginfo-install command is not available anymore according to the
documentation. Instead, the user need to add the package suffix
"-debuginfo" when using the install command.

The implementation of the debuginfo-install plugin is under development
and tracked upstream. [2]

[1] https://fedoraproject.org/wiki/Changes/SwitchToDnf5
[2] https://github.com/rpm-software-management/dnf5/issues/389
2024-05-30 15:23:32 +02:00
Fernando Fernandez Mancera
dfff21f559 gitlab: adjust ci.template
The recommendations from freedesktop [1] about how to maintain a Gitlab
project changed therefore we must adapt the rules.

Solves: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1549

[1] https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/540#what-it-means-for-me-a-maintainer-of-a-project-part-of-gitlabfreedesktoporg
2024-05-29 15:11:02 +02:00
Jan Vaclav
5f72b251b1 gitlab-ci: ignore autotools deprecation
We still need the tests to run on autotools builds too, so we must pass the argument.
2024-05-06 17:22:20 +02:00
Íñigo Huguet
7a48290dca ci: disable the "triage issues" job
This job was supposed to run periodically. However, it stopped working
when a "workflow" section was added to .gitlab-ci.yml because it
prevented pipelines of the type "scheduled" to be created.
7fa72645e5 ('gitlab-ci: make detached MR pipeline for external contributor's pipelines to run')

Now, if it's run, it fails with error:
multi_xml requires Ruby version >= 3.1.4. The current ruby version is 2.7.8.225.

Let's disable the job until we fix it and we decide what triage we want
to do. When we do it, we will need to adapt the jobs to be run with the
right periodicity, maybe using custom pipeline variables.
2024-05-06 09:02:36 +00:00
Íñigo Huguet
69efb4660c CI: periodically clean image's registry
This will force to regenerate the various images of the distributions
that we want to test so we get an updated snapshot on them. Otherwise we
might be testing a months old version of them.

A bug in ci-fairy was making the deletion of the images to partially
fail. It is fixed in the latest version of ci-fairy, so we need to
update the value of templates_sha to pick it.

The task will run only on pipelines of type "scheduled". Then we can
create a weekly scheduled pipeline in Gitlab.
2024-05-06 09:02:36 +00:00
Jan Vaclav
069d854f8c merge: branch 'jv/meson-build-default'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1912
2024-04-24 15:12:44 +02:00
Íñigo Huguet
ff101ada3a ci: update distributions that we test in the CI
We had an agreement on what distributions should we test and when. We'll
test in Tier 2 those distros that can potentially use the current
version of NM and in Tier 3 those distros that are still maintained (not
EOL'd).

So, Tier 2 is to catch errors that might be severe because might be
blocking for the distributions planning to use the current NM version,
they must be fixed ASAP, before doing the release if possible. These
"distribution versions" will be different for main branch than for
stable branches:
 - Debian 12 uses NM-1.42, so Debian 12 should be Tier 2 in the branch
   nm-1-42.
 - However, Debian 12 will never use newer stable versions, so it should
   be Tier 3 in main branch.

We want to run the Tier 3 tests even if those distros won't use newer
vesions of NM because they are useful to test NM compilation with older
compilers and tools. Fixing failures here might not be considered
urgent, though.

To save resources from Freedesktop we'll run Tier 1 on every MR and
Tiers 2 and 3 before doing a release, or on demand if we need.
2024-04-08 06:35:20 +00:00
Jan Vaclav
e90e8208ec gitlab-ci: update dist tarball path to expect meson output 2024-04-04 11:30:14 +02:00
Íñigo Huguet
67eb8c5c2b CI: fix meson tarball testing with old meson version
The test "tarball+meson" fails on systems with old meson version with
the message "ERROR: Neither directory contains a build file
meson.build". This message is raised when calling `meson dist` from the
build directory.

According to meson documentation, `meson dist` is supported since 0.52,
and older vesions need to execute `ninja dist`.
https://mesonbuild.com/Creating-releases.html

Also, when using meson.add_dist_script, the env variable MESON_SOURCE_ROOT
is not passed in versions < 0.54. As we don't use it in the script,
don't assert for it.

We claim to support down to meson 0.47.3 (we need to raise it because we
are actually using a bit newer features, but that's another topic). Use
`ninja dist` that will work fine on old and new meson.

Fixes: 61f0531509 ('gitlab-ci: test re-buildability of distribution tarballs')
2024-04-04 08:17:26 +02:00
Fernando Fernandez Mancera
b40e2eb721 gitlab-ci: drop unsupported systems from the pipeline
Drop Fedora 30-37, Ubuntu 18.04 LTS and Debian 9 from the pipeline.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1892
2024-03-14 14:50:04 +01:00
Jan Vaclav
61f0531509 gitlab-ci: test re-buildability of distribution tarballs
Adds tests for making a distribution tarball, and then attempting to build NM from its contents.
Files have been left out from the distribution in the past by accident (e.g. 75027879, b2931c96)
and hopefully this test will catch this type of errors.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1862
2024-03-01 07:51:21 +00:00
Íñigo Huguet
6a1d81abf7 CI: check for potential translation errors
Some warnings in the generation of the translation files indicate real
errors, like strings that cannot be extracted for translations. Check
that no warnings are emitted.
2023-12-18 15:53:16 +01:00
Thomas Haller
5a6c8c9ba4
gitlab-ci: regenerated gitlab-ci template and fix versions
- after modifying .gitlab-ci, the template must be regenerated by
  running `ci-fairy generate-template`

- when swapping tier1 from f38 to f39, the list in tier2 must be updated
  too.

Fixes: e2f04f0d2cc3 ('device: fix generated 'wifi.cloned-mac-address="stable-ssid"' for stable-id')
2023-12-06 11:33:11 +01:00
Fernando Fernandez Mancera
ee551595b4 gitlab-ci: upgrade tier1 to run Fedora 39
As Fedora 39 is officially out, we should use it in our gitlab-ci.
Please notice that this change will also update the
nm-code-format-container.sh to use Fedora 39 aswell.
2023-12-06 10:37:38 +01:00
Thomas Haller
339f99c08e
gitlab-ci: drop builds for CentOS 8 (8.1.1911, 8.2.2004, 8.3.2011)
CentOS Linux 8 is long gone. We were only running tests on this old
build environment, to see how we fare in such environment.

The test was broken for 4+ months. Instead of fixing it, disable it.

It's partly caused by RHEL8, as it is somewhat cumbersome to even build
on CentOS 8. That's because some devel packages (like libteam-devel) are
not installable. As workaround for that, we re-build such packages in a
copr ([1]). The problem is, that we only have one copr build for e.g.
CentOS 8. If we rebuild against latest CentOS 8 Stream, then libteam is
build against newer dependencies, which are not installable on CentOS
Linux 8.1.1911 (etc). We would have to build libteam in a way, that
does not drag newer dependencies that are missing on CentOS Linux 8.

For example, trying to use copr [1] on CentOS Linux 8 and installing
"teamd" gives:

  Error:
   Problem: package teamd-devel-1.31-4.el8.x86_64 requires teamd = 1.31-4.el8, but none of the providers can be installed
    - conflicting requests
    - nothing provides libjansson.so.4(libjansson.so.4)(64bit) needed by teamd-1.31-4.el8.x86_64

This could be hacked around, for example by having libteamd-devel not
depend on any teamd package. Instead, just drop it. It's gone.

Arguable, CentOS 8 Stream should be reasonably close (in terms of
versions of gcc, glibc, glib) so we don't miss too much.

[1] https://copr.fedorainfracloud.org/coprs/nmstate/nm-build-deps/

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1793
2023-11-15 10:52:53 +01:00
Thomas Haller
eb5b78c4bf
all: drop support for building with Python2
Now that we no longer test on CentOS7, we also have no more tests that
build using Python2.

Note that build with Python2 is currently broken already (which would be
fixable).

Drop Python2 too.

Existing Python scripts still use a common subset of Python2 and
Python3. They can be improved to use Python3 features in the future.
2023-11-14 10:29:48 +01:00
Thomas Haller
c5fd65aba4
gitlab-ci: drop centos:7 tests
CentOS7 uses gcc-4.8, which have various problems and working around
them is getting more cumbersome.

Also, CentOS7 is ancient by now. It's time. Drop it.
2023-11-14 10:29:48 +01:00
Thomas Haller
7871e160ed
gitlab-ci: enable tests on Fedora 40
We don't use "rawhide", because we explicitly enable Fedora versions by
their release number (and "rawhide" is just an alias).

However, by now "rawhide" is Fedora 40. Enable it.
2023-11-14 10:29:48 +01:00
Thomas Haller
ccb16013e0
gitlab-ci: fix detection and handling of Ubuntu 18.04
Fixes: d563b4e009 ('gitlab-ci: fix setup of debian:9 container')
2023-06-30 18:51:13 +02:00
Thomas Haller
d563b4e009
gitlab-ci: fix setup of debian:9 container
Debian:9 (stretch) is archived. We need to patch the sources.list
for it to be usable.

Although it's end of life, we are still interested, whether we
are able to build with such old compiler. Fix the test.
2023-06-28 12:14:21 +02:00
Thomas Haller
fbbe81634f
gitlab-ci: add .gitlab-ci/README.md 2023-06-06 12:35:09 +02:00
Thomas Haller
3707a3df80
gitlab-ci: print the used clang-format version in "check-tree" test
This is the authorative version that we shall use for formatting our code.
Print the version in the test.
2023-06-01 09:24:21 +02:00
Thomas Haller
70084f2485
gitlab-ci: update ci-templates to fix installation of debian:9 containers
Debian 9 (stretch) is end of life, and the repositories are archived. We
need to patch the containers so that `apt-get update` continues to work.
A new ci-templates version brings that.

Note that at the moment, there is still another issue for debian:9
containers. Unclear whether that can be fixed. In any case, bumping to
latest ci-templates is not wrong, and works around the first issue on
debian:9, making it possible to at least look at the second issue.

https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/175
2023-05-31 22:14:23 +02:00