aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
AgeCommit message (Collapse)AuthorFilesLines
2024-09-23.github/workflows/os_comp.yml: set HOME to /root on OpenSUSEAndrei Horodniceanu1-1/+8
The D compiler and associated tools are installed under /root and the setup script run during the actual testing expects that `~` will expand to the same path. Because github overrides HOME the dmd environment setup script will not be run which leads to all D related tests being skipped, even though the whole test suite reports as having finished successfully. Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2024-09-20CI: run lint workflows on changes to the lint config filesDylan Baker1-0/+6
2024-08-04CI: Install make on CygwinJon Turney1-0/+1
Test '230 external project' uses make, but is too dumb to use the platform conventions for shared library names in installed files expected by shared_lib, so special case that.
2024-08-03CI: Adjust path filters to run tests on Cygwin when unittests changeJon Turney1-0/+2
2024-07-30ci: Update actions/upload-artifact to v4 to fix deprecationsNirbheek Chauhan3-4/+4
2024-07-30ci: Update actions/setup-python to v5 to fix deprecationsNirbheek Chauhan4-8/+8
2024-07-30ci: update actions/cache to v4 to fix deprecationsNirbheek Chauhan2-4/+4
2024-07-30ci: Update codeql-analysis action to fix deprecationsNirbheek Chauhan1-4/+3
2024-07-30ci: Update to checkout@v4 to squelch node warningsNirbheek Chauhan12-17/+19
Keep using v3 for Bionic because of https://github.com/mesonbuild/meson/pull/13424
2024-07-15tests: try to fix ubuntu bionic testsChristoph Reiter1-0/+6
by forcing an older nodejs
2024-06-26CI/MacOS: Add libompDylan Baker1-1/+1
2024-04-28Install ObjFW on macOS, Fedora and MSYS2 CIJonathan Schleifer2-1/+2
2024-04-25CI/MacOS: move some things out of the run script into the env keyDylan Baker1-1/+1
2024-04-25CI/MacOS: add missing packagesDylan Baker1-2/+2
There are some additional packages that seem to be needed on Apple based Silicon.
2024-04-25CI/MacOS: Fix paths that have changed from /usr/local to /opt/homebrewDylan Baker1-10/+10
homebrew installs to /usr/local on Intel based macs, but has moved to /opt/homebrew for those using Apple Silicon.
2024-04-25CI/MacOS: switch the Qt4 job to run on an Intel MacDylan Baker1-1/+3
Qt4 doesn't seem to work on Apple Silicon because OpenSSL 1.0 (a requirement for Qt4) doesn't build on it correctly, trying to use X86 assembly.
2024-03-11CI: pin mypy to version 1.8Dylan Baker1-1/+2
Version 1.9 removes support for python 3.7, so we either need to pin the version to 1.8 as long as we're support Python 3.7, or we need to drop linting for 3.7
2024-02-21ciimage: fix pathological brokenness in homebrew packaging of pythonEli Schwartz1-0/+4
Followup to commit 5c479d7a13a518c18ccb4dc3b6bdd7bfc2a9bdb5. 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, so instead of failing to run because of theoretical conflicts with the base system (we specifically need base system integration...) we fail to run because 5 minutes into pulling homebrew 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 designing system integration containers who cannot "break" the system python anyway as it is thrown away after every use. Fix this by doing what homebrew should have done from the beginning, and opting containers out of this questionable feature entirely.
2024-02-14workflows: Trigger on all test harness changesAndrew McNulty3-6/+6
The following workflows have been updated so that they are triggered when the any of the test harnesses are updated: macos, os-comp, msys2 Previously only changes to `run_unittests.py` caused these workflows to be executed.
2024-02-09CI image builder: fix profile loading for gentooEli Schwartz1-1/+0
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: add GentooSam James2-0/+2
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>
2024-01-02CI: fix even more brokenness in the macos CIEli Schwartz1-3/+2
Commit 191449f60879a622661b96600babaec67477d5bb has numerous issues, and being completely invalid yml syntax was just the tip of the iceberg. In this case, it fails the github schema, which requires that env be adjunct to a job or step definition, rather than its own thing. It did not even make sense in context, since the purpose of the variable is to modify brew. Fixes: #12644 Fixes: #12681
2024-01-01CI: Fix macos.yml error "Invalid workflow file"Chris Mayo1-1/+1
2023-12-20ci: Don't auto-update brew when installingNirbheek Chauhan1-0/+5
We're getting errors that we don't care about on the CI like: ``` ==> Pouring node@18--18.19.0.monterey.bottle.tar.gz The formula built, but is not symlinked into /usr/local Error: The `brew link` step did not complete successfully Could not symlink lib/node_modules/npm/docs/content/commands/npm-sbom.md Target /usr/local/lib/node_modules/npm/docs/content/commands/npm-sbom.md already exists. You may want to remove it: rm '/usr/local/lib/node_modules/npm/docs/content/commands/npm-sbom.md' ``` We don't care about node, the only reason it's getting updated is because it's already installed on the image and brew is auto-updating it. So let's disable auto-update.
2023-12-13do not trigger workflows on dev branchesCharles Brunet5-2/+14
2023-12-10unittests: migrate from jsonschema to fastjsonschemaEli Schwartz3-5/+4
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-26NOMERGE: do we need strictyaml too?Eli Schwartz1-1/+1
2023-11-26fix broken type annotation imports being ignoredEli Schwartz1-1/+1
If an annotation could not be resolved, it's classified as a "missing import" and our configuration ignored it: ``` Skipping analyzing "mesonbuild.backends": module is installed, but missing library stubs or py.typed marker ``` As far as mypy is concerned, this library may or may not exist, but it doesn't have any typing information at all (may need to be installed first). We ignored this because of our docs/ and tools/ thirdparty dependencies, but we really should not. It is trivial to install them, and then enforce that this "just works". By enforcing it, we also make sure typos get caught.
2023-08-18CI: make linters emit colored outputEli Schwartz1-2/+4
Github Actions supports this fine, but is misdetected by flake8/mypy. Even though pylint defaults to text instead of colorized, we might as well do the right thing here though.
2023-08-18run_mypy: add option to run once for each supported version of pythonEli Schwartz1-1/+3
This allows verifying that meson is type-safe under older versions of Python, which it currently is. Different versions of Python sometimes have different supported types for an API. Verify this in CI. (We flush output to ensure CI prints lines in the right order.)
2023-08-18CI: trigger website job when testing modifications to the website jobEli Schwartz1-0/+2
2023-08-18CI: add pip caching to website jobEli Schwartz1-0/+16
On average, saves 20 seconds for a job that may take 1.5 or 2 minutes. Mostly due to recompiling the same 3 wheels again and again, so that avoids pointless CPU waste.
2023-07-30Revert "CI: add potential workaround for python crashes in MSYS2"Christoph Reiter1-3/+0
This reverts commit e945f35cd72402d0d204ff10870e2a95c59b6192. With MSYS2 udpating to Python 3.11, this should no longer be needed. See https://github.com/msys2/MINGW-packages/issues/17415#issuecomment-1606085553
2023-07-06CI: gracefully handle jsonschema update requiring rust to buildEli Schwartz2-2/+4
This has issues on Windows with msys2/cygwin, where we need to build it ourselves since binary wheels aren't supported on PyPI. And we don't have a rust compiler available for either one -- we may not be *able* to do so for cygwin? For msys2, the solution is pretty easy, just rely on the official msys2 packages for jsonschema, which handle both it and its dependencies for us and don't require us to compile anything. Currently they still have an older jsonschema that doesn't use rust deps at all, but that's because the new jsonschema was released today. We'll automatically catch up at some point. For cygwin, there is no rust compiler in the cygwin repository, and jsonschema there is old as the hills. I do not know if there's a good answer here, but an adequate answer is to cap jsonschema at the version we were testing with yesterday.
2023-05-01avoid re-uploading the docs when a PR is based on the upstream repoEli Schwartz1-3/+2
In this case, we have the secret available, and the workflow ran even though it wasn't on branch "master" because of the pull request trigger. Since the change hasn't landed on master, though, we do not want to update the website. So check for pushes to master, specifically.
2023-04-24ci: Don't error out CI if codecov upload failsNirbheek Chauhan6-9/+9
2023-04-21ci: Move to the codecov github actionNirbheek Chauhan6-17/+95
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-19Revert "cygwin CI: work around gcovr bug"Eli Schwartz1-6/+0
This reverts commit 0022e1863d8d9769378ebfb56695bdbf55f118b9. The bug is long since both fixed and *released*.
2023-04-19CI: update cygwin cache actions to new version supporting granular saveEli Schwartz1-3/+8
cache/restore and cache/save now exist, and close the issue linked in the workflow comment. The new save action runs when invoked, rather than as a post action.
2023-04-17CI: cygwin coverage uploader needs to run in bash tooEli Schwartz1-1/+4
Like every single other command in the entire workflow, and for the same reasons. ;)
2023-04-11ci: properly check `test cases/windows` filesJosh Soref1-2/+2
Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11ci: rename workflowJosh Soref1-3/+3
Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-02-13add a CI runner testing that Meson runs correctly under PyPy3Eli Schwartz1-0/+15
Silence a couple of framework tests that need to be skipped since we don't install their dependencies for pypy3.
2023-01-01CI: bypass the cache and install codeql latestEli Schwartz1-0/+2
fixes instability in precise version of tools resulting in some runners getting a downgraded version and producing spuriously fixed/reintroduced codeql alerts.
2022-11-30build: harden workflow permissionsAlex3-0/+9
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-11-28github workflows: upgrade actions/upload-artifact to version 3Eli Schwartz3-4/+4
This is a no-op change from v2 to v3, but github complains that nodejs is outdated if you don't. It's not obvious why this required a major version bump... However, half of our uses are on v1, which has a decent fix: failure to upload artifacts constitutes a step failure.
2022-11-28github workflows: upgrade actions/checkout to version 3Eli Schwartz10-16/+16
This is a no-op change, but github complains that nodejs is outdated if you don't. It's not obvious why this required a major version bump...
2022-11-28github workflows: upgrade setup-python to version 4Eli Schwartz4-8/+8
Not much changes, really, other than it now sets PKG_CONFIG_PATH to point to the python it just installed. This should generally not be a problem (Meson's python module sets that anyway based on the executable's introspection data).
2022-11-28Add github's CodeQL scanner to CI.Eli Schwartz1-0/+31
lgtm.com was acquired by github. It is deprecated and on its way out, because they've integrated the functionality itself into github. Take a look at what its official replacement can do. This does run as yet another Actions slot, which is already fairly excessive, but the average runtime seems about 5 minutes so that's not too bad...
2022-11-14CI: force macOS to use brew's python at all costsEli Schwartz1-1/+7
The default actions one is broken in two ways, and additionally overwrote homebrew's symlinks to begin with.