Previously we used a complicated heuristic to decide whether or not to
run the MFC test, but it sometimes decided incorrectly to run the test.
Since that was first written, we have developed a convention for other
tests to enable them via undocumented cache entries that are added only
on machines known to meet the tests' requirements. Do that for MFC.
We should have at least one CI job in merge request pipelines that
builds CMake with assertions enabled. We avoid using the `Debug`
configuration in order to keep CI artifacts small, so instead use
the `Release` configuration without `-DNDEBUG`.
Avoid searching for a Java installation on Windows hosts.
This will allow some CI hosts to have Java for other projects.
We already do this on macOS. While at it, clarify the macOS setting.
Since commit 3b9975d9b5 (ci: Add JOM nightly CI job, 2021-11-17) the
`ExternalProject` test often fails spuriously with an internal error
message from JOM. Exclude it for now pending further investigation.
Prior to covering JOM in CI, it was covered by a standalone nightly
build that excluded the `ExternalProject` test for the same reason.
This helps to maximize the amount of information visible in the GitLab
web interface.
Also document their meaning in the developer documentation and in the CI
configuration file directly.
See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
This helps to maximize the amount of information visible in the GitLab
web interface.
Also document their meaning in the developer documentation and in the CI
configuration file directly.
See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
Previously we ran manual jobs automatically in the `cmake/cmake`
project integration branches. Change this to happen only when
the pipeline is created by a schedule.
Also, start automatic jobs in scheduled pipelines without delay.
When `wlink` needs to spill into a temporary file, code in `spillio.c`
checks environment variables `WLINKTMP`, `TMP`, and `TMPDIR` to get a
directory for temporary files. It searches for a name `WLK02112.xx*`
that doesn't exist, where `*` starts at `a` and increments. Then it
opens the file with the chosen name. This can race among concurrent
`wlink` invocations that may all chose the same name before opening,
and causes errors like:
Error! E3008: cannot open C:\...\Temp\WLK02112.xxa : Permission denied
Since `wmake` does not run parallel jobs, this normally isn't a problem.
However, our test suite runs multiple tests in parallel. Each test has
its own `wmake` invocation, and therefore can run `wlink` concurrently.
Set `WLINKTMP=.` in the environment to tell each `wlink` to place
temporary files in its own working directory, which will be different
for each separate `wmake` invocation in our test suite.