summaryrefslogtreecommitdiff
path: root/ci
AgeCommit message (Collapse)Author
2024-10-02ci/ciimage: Lower nofile ulimit on containers that test DAndrei Horodniceanu
The D stdlib function std.process.spawnProcessPosix suffers from a bug that causes any program that calls it to OOM if the nofile ulimit is large. This doesn't affect CI currently but trying to run or build the containers locally will most likely crash when calling dub as docker defaults to something like 1073741816 for both the hard limit and soft limit. Lowering the soft limit is enough to make dub behave. Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2024-09-12ci/run.ps1: Clean up D related codeAndrei Horodniceanu
Bump the version of the cidata archive and remove the code that tries to setup dmd and the dub packages from run.ps1 as it doesn't work as expected (builds for x86 instead of x86_64) and cidata should already take care of them. Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2024-09-12ci: gentoo: install dev-qt/qttoolsSam James
Qt 6 now has stable keywords (and has for a while). Recent stabilisation of Plasma 6 now pulls in Qt 6 in the image builder so frameworks: 4 qt fails as qttools is missing. Signed-off-by: Sam James <sam@gentoo.org>
2024-08-19ci: ubuntu: fix coverage unittests by patching/updating lcovSam James
Hack for https://github.com/linux-test-project/lcov/issues/245. I tried to backport https://github.com/linux-test-project/lcov/commit/bf135caf5f626e02191c42bd2773e08a0bb9b7e5 but had no luck (worked in one container but didn'y apply in another, whatever). This fixes the coverage unittests. >=lcov-2.1-beta works fine. The beta has landed in a beta version of Ubuntu too. Bug: https://github.com/linux-test-project/lcov/issues/245
2024-08-19ci: opensuse: add setuptoolsSam James
`test_meson_installed` fails without setuptools: ``` $ /usr/bin/python3 run_meson_command_tests.py -v Meson build system 1.5.99 Command Tests test_meson_exe_windows (__main__.CommandTests.test_meson_exe_windows) ... skipped 'NOT IMPLEMENTED' test_meson_installed (__main__.CommandTests.test_meson_installed) ... Traceback (most recent call last): File "/meson/setup.py", line 12, in <module> from setuptools import setup ModuleNotFoundError: No module named 'setuptools' ERROR ```
2024-08-19ci: try to install urld harder for opensuse, ubuntuSam James
Like in a5211a15207a2e6e30e213c5530a5d1bf5c2531c.
2024-08-06ci: fix dub tests on WindowsSam James
This fixes a pesky failure in vs2019 vc2019x64ninja for d/11 dub: ``` Searching in DUB cache for compatible urld.lib WARNING: No such cache folder: C:\Users\VssAdministrator\AppData\Local\dub\packages\urld-2.1.1\urld\.dub\build ERROR: urld@2.1.1 not found You may try the following command to install the necessary DUB libraries: dub run --yes dub-build-deep -- urld --arch=x86_64 --compiler=dmd --build=debug Run-time dependency urld found: NO test cases\d\11 dub\meson.build:13:11: ERROR: Dependency "urld" not found ``` Follow dub's advice by installing urld in ci/run.ps1 before the testsuite; we were already doing this for ubuntu, opensuse, and even recommending it in our docs before now: * ci/ciimage/ubuntu-rolling/install.sh * ci/ciimage/opensuse/install.sh * docs/markdown/Dependencies.md We also bump to 'ci4' which has newer D added (from the cidata repo).
2024-08-06Add Zig to ubuntu-rolling imageandy5995
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> [Eli: do not add to CI tests as this is only a preparatory PR]
2024-07-24CI: arch: do not package up source files for stepping through code with gdbEli Schwartz
makepkg can do this, if when building packages from source you enable debug. This is apparently being shipped in the /etc/makepkg.conf in docker containers, which means building AUR packages now requires installing debugedit, and then bloating your container with /usr/src/debug. We really do not want that. Reconfigure so that we do not, in fact, need that.
2024-07-24CI: gentoo: avoid bloating up the image with cache dataEli Schwartz
2024-07-24CI: arch: fix failing to detect any glib ecosystem toolsEli Schwartz
Due to reasons, Arch has chosen to split out the glib2 package into a glib2-devel package containing a small handful of python programs. The references to these programs are contained in the main glib2 package, so meson fails a lot in CI with e.g. ``` test cases/frameworks/7 gnome/gdbus/meson.build:1:18: ERROR: Dependency 'gio-2.0' tool variable 'gdbus_codegen' contains erroneous value: '/usr/bin/gdbus-codegen' This is a distributor issue -- please report it to your gio-2.0 provider. ```
2024-06-03CI: Windows: downgrade rust to 1.77Eli Schwartz
It started failing CI as soon as the default shifted to 1.78. Something is broken and it prevents running stable CI. Tracking issue opened. We pin the version because that is the same way we handle CI for linux -- with the exception that Linux CI can upgrade itself as soon as we fix issues causing the CI Image Builder to jam itself, whereas unfortunately Windows will need to be manually unpinned, but such is life as a Windows supporter. Bug: #13236
2024-05-30CI: make cuda tests even run to begin withEli Schwartz
Arch profile.d scripts were converted to use an appending function that disappears when /etc/profile exits, and overall are simply not suitable -- any more -- for sourcing individually. (I will freely admit I'm not really sure what the overall goal of refraining from sourcing /etc/profile itself is. Arguably it's kind of misuse of the profile...) This silently broke the cuda tests, which never ran because the cuda compiler was not detected as available. While we are at it, I guess we can convert gentoo to use the same trick of appending it in install.sh
2024-05-14CI: gentoo: make logs shorter by reducing progressbarEli Schwartz
2024-05-14CI: gentoo: explicitly install gdbus-codegenEli Schwartz
It is now getting uninstalled instead of updated, due to blockers on old glib. In fact, we explicitly need it...
2024-04-28Install ObjFW on macOS, Fedora and MSYS2 CIJonathan Schleifer
2024-04-25CI: ubuntu-rolling: fix configuration for sources after format changeEli Schwartz
``` # Ubuntu sources have moved to the /etc/apt/sources.list.d/ubuntu.sources # file, which uses the deb822 format. Use deb822-formatted .sources files # to manage package sources in the /etc/apt/sources.list.d/ directory. # See the sources.list(5) manual page for details. ``` Adapt to the new format.
2024-04-25CI: gentoo: fix profile 23.0 migration dropping default fortranEli Schwartz
We need this for scalapack -> virtual/mpi -> openmpi See https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1b86025be85171281811eaced7b342fbdfdb591 We now get an immediate, very nicely readable error that the USE flag is necessary. For our use cases, there's no reason not to globally enable it.
2024-02-09CI image builder: fix profile loading for gentooEli Schwartz
We need to load various environment variables from /etc/profile. We cannot unconditionally load it, because opensuse sources env_vars and their /etc/profile has a fatal bug in it that causes it to return nonzero and abort under `set -e` (which is *amazing* as a thing to have in /etc/profile specifically -- just saying). Alas, even /etc/profile.env is not enough since Java support depends on profile.d logic. Re-conditionalize this check to only be added to env_vars.sh for the image named "gentoo".
2024-02-09ci: fedora; add file packageSam James
FAILED unittests/linuxliketests.py::LinuxlikeTests::test_install_strip - FileNotFoundError: [Errno 2] No such file or directory: 'file' Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2024-02-09ci: add GentooSam James
We may want to consider our own binpkg cache for future to speed things up, in addition to the ones provided by Gentoo's own binhost. Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2023-12-13Use SPDX-License-Identifier consistentlyDylan Baker
This replaces all of the Apache blurbs at the start of each file with an `# SPDX-License-Identifier: Apache-2.0` string. It also fixes existing uses to be consistent in capitalization, and to be placed above any copyright notices. This removes nearly 3000 lines of boilerplate from the project (only python files), which no developer cares to look at. SPDX is in common use, particularly in the Linux kernel, and is the recommended format for Meson's own `project(license: )` field
2023-12-10unittests: migrate from jsonschema to fastjsonschemaEli Schwartz
The former has rust dependencies, which lead to max capping on Cygwin since there is no rust compiler there. But it turns out there are other disadvantages of jsonschema: - it involves installing 5 wheels, instead of just 1 - it is much slower To give some perspective to the latter issue, this is what it looks like when I test with jsonschema: ``` ===== 1 passed, 509 deselected in 3.07s ===== Total time: 3.341 seconds ``` And here's what it looks like when I test with fastjsonschema: ``` ===== 1 passed, 509 deselected, 1 warning in 0.28s ===== Total time: 0.550 seconds ``` I cannot think of a good reason to use the former. Although in order to work on old CI images, we'll support it as a fallback mechanism
2023-11-12CI: adapt to renamed fedora package when building updated imagesEli Schwartz
2023-11-06ci: Add arm rust toolchain in ubuntu-rolling imageXavier Claessens
2023-10-04CI: fix the fix for python actually being mildly usefulEli Schwartz
In commit 5c479d7a13a518c18ccb4dc3b6bdd7bfc2a9bdb5, we deleted bad stuff that makes python not work. But we missed the case where it is installed to lib64.
2023-10-04CI: fix broken ciimage builder script failing to correctly copy mesonEli Schwartz
Regression in commit 0af126fec798d6dbb0d1ad52168cc1f3f1758acd. We added support for some "test cases/" stuff that actually relies on test files being a symlink, but when testing the image builder, we copied the meson repository contents into the docker container without telling python that it is in fact super important to copy symlinks as symlinks. As a result, the tests themselves ran fine when merging, but caused the image builder to thereafter fail.
2023-10-04CI: install an older java on opensuseEli Schwartz
They do not appear to have 20 in their repos anymore, and no traces can be found of it in the history, as usual. They do have 11, 17, and 21. Last time we chose one randomly and hoped it doesn't keep changing value. This dismally failed: 20 was upgraded to 21. It looks like 17 may have some staying power.
2023-07-20ci: Add Rust Windows cross toolchain on ubuntu-rolling imageXavier Claessens
2023-07-18CI image builder: log commands a bitEli Schwartz
2023-07-18CI: install a newer java on opensuseEli Schwartz
They do not appear to have 15 in their repos anymore, and no traces can be found of it in the history, as usual. They do have 11, 17, and 20, so choose one randomly and hope it doesn't keep changing value.
2023-06-07azure pipelines: force python2 to be installedEli Schwartz
Azure pipelines is removing python2 from the hostedtoolcache, see https://github.com/actions/runner-images/issues/7401 We want to test that meson can still build modules for it, anyway.
2023-05-28ciimage: fix pathological brokenness in Debian packaging of pythonEli Schwartz
In this case, PEP 668 was created to allow a thing that Debian wanted, which is for `pip install foobar` to not break the system python. This despite the fact that the system python is fine, unless you use sudo pip which is discouraged for separate reasons, and it is in fact quite natural to install additional packages to the user site-packages. It isn't even the job of the operating system to decide whether the user site-packages is broken, whether the operating system gets the answer correct or not -- it is the job of the operating system to decide whether the operating system is broken, and that can be solved by e.g. enforcing a shebang policy for distribution-packaged software, which distros like Fedora do, and mandating not only that python shebangs do not contain `/usr/bin/env`, but that they *do* contain -s. Anyway, this entire kerfuffle is mostly just a bit of pointless interactive churn, but it bites pretty hard for our use case, which is a container image which is fortunately tested before deployment, so instead of failing to deploy because of theoretical conflicts with the base system (we specifically need base system integration...) we fail to deploy because 5 minutes into pulling apt updates at the very beginning, pip refuses point-blank to work. I especially do not know why it is the job of the operating system to throw errors intended for interactive users at people baking "appliance" containers who cannot "break" the system python anyway. Fix this by doing what Debian and Ubuntu should both have done from the beginning, and opting containers out of this questionable feature entirely. Note that CI images may still not actually complete their build/test cycle and be updated, because e.g. LLVM 16 issues tracked by #11642 or glib ASAN issues tracked by #11754.
2023-05-05Add Cython to Windows CI jobs on AzureRalf Gommers
[skip actions]
2023-04-21ci: Move to the codecov github actionNirbheek Chauhan
The pypi package was suddenly removed. Not the most confidence-inspiring deprecation/migration: https://about.codecov.io/blog/message-regarding-the-pypi-package/
2023-04-11fix various spelling issuesJosh Soref
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-02-12CI: ensure pypy3 has the basic packagesEli Schwartz
2023-02-08CI: migrate pypy3 tests from bionic to ArchEli Schwartz
The bionic image is really old and mainly exists to test that Meson itself still works on really old distros (and really old python). Ideally we'd avoid depending too much on it. We can get a very modern pypy3 automatically this way, and potentially use it for more stuff too.
2023-02-08CI: skip valgrind test on ArchEli Schwartz
It's already run on other distros. This one fails though, due to missing debug info. ``` valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) ``` It doesn't seem possible to have this work out of the box. The debuginfo packages aren't reliably available, and debuginfod servers -- even if they worked, which they apparently don't -- would not help anyway since old version pruning can result in symbols disappearing before the image is rebuilt, and thereby causing failure. It's not really critical to test this, since as mentioned we already have coverage of Meson's side in other distro ciimages.
2023-01-08CI: fix cuda image breakageEli Schwartz
From the Zen of Python: "Explicit is better than implicit." As it turns out, it's no longer a safe assumption that pip uses setuptools??? Well, anyway, install it properly regardless.
2023-01-08CI: get wxgtk2 via aur_pkgs as it was dropped from the official reposEli Schwartz
Note: this does not actually fix the image builder. It just lets us get far enough to see the testsuite error (the same docker bug that opensuse has).
2022-11-16fix confusing azure pipelines status for coverageEli Schwartz
The coverage report was always the final section of the main test run. This made it hard to scroll around and find exactly what went wrong -- particularly as not everyone realizes that coverage isn't part of the test run, but also because the output from coverage is... excessively long. This mirrors what we do in our other workflows.
2022-08-09CI: include zlib devel package for the mingw cross testsEli Schwartz
After a recent CI image builder update successfully ran the tests, but didn't run the cross tests, it updated the image that then got used by the regular CI cross tests. Somehow this resulted in a bunch of tests now failing because zlib could not be picked up. We probably dropped a transitive dependency somewhere. Anyway, it's correct to explicitly specify it if we need it.
2022-08-05CI: remove nim from the ubuntu rolling install listEli Schwartz
We've never used it for anything, it was originally added for #3776 but that never got finished so it's just a waste. This also prevents successful regeneration of the build image, because nim is not available for Ubuntu rolling. It's available in 20.04 and 22.10, but vanished in between for reasons best known to Ubuntu.
2022-07-11CI: install ifort on WindowsEli Schwartz
This enables the fortran tests for Azure. We only test on x64, because: - ifort isn't arm64 compatible - x86 may in theory exist, but Meson reports it cannot compile executables
2022-04-12add a pypy3 for windows toomattip
2022-04-11add pypy3 to the bionic imagemattip
2022-03-03CI images: add the JRE to UbuntuEli Schwartz
This is needed in order to test a pending improvement to the jni dependency in #10048.
2022-02-27modules/wayland: Add unstable_wayland moduleMark Bolhuis
2022-01-22Merge pull request #9742 from ximion/wip/itstoolJussi Pakkanen
i18n: Add support for joining XML localization via itstool