]> granicus.if.org Git - graphviz/commitdiff
CI: fix missing 'OS_ID' env var in ctest jobs
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 9 Feb 2022 05:55:00 +0000 (16:55 +1100)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 14 Feb 2022 20:11:08 +0000 (07:11 +1100)
Jobs inheriting from this template were attempting to set `$OS_ID` from the file
OS_ID that did not exist before `install-package.sh` was run. The result was
output in the build log like:

  export OS_ID=$( cat OS_ID )
  cat: OS_ID: No such file or directory

Somewhat surprisingly, tests were still passing. The reason is that `$OS_ID` is
only accessed in ci/tests.py and on Ubuntu (the platform used for both ctest
jobs) the only `$OS_ID`-based skip is for `mingle`, that is also coincidentally
skipped due to these jobs using the CMake build system where `mingle` is not
build. That is, the mingle check is meant to be skipped on lines 104-108, but
actually ends up skipped on lines 116-122 due to `$OS_ID` being empty.

In future, all of this should be refactored to use a less brittle technique for
asking “what distro are we running on?” When moving to Python 3.10,
`platform.freedesktop_os_release()` would be the obvious candidate.

.gitlab-ci.yml

index 62601ceafcfc9f0868f1bd3cfeeb0b8d36701695..9d2a60a8b671da1f4a8e77799c2fd6e540c3939e 100644 (file)
@@ -235,8 +235,6 @@ portable-source:
 .test_template_including_ctest: &test_definition_including_ctest
     stage: test
     script:
-        - export GV_VERSION=$( cat GRAPHVIZ_VERSION )
-        - export OS_ID=$( cat OS_ID )
         - ci/test_coverage.py --init
         - pushd build
         # Use GVBINDIR to specify where to generate and load config6
@@ -250,6 +248,8 @@ portable-source:
         - unset GVBINDIR
         - popd
         - ci/install-packages.sh
+        - export GV_VERSION=$( cat GRAPHVIZ_VERSION )
+        - export OS_ID=$( cat OS_ID )
         # Many of the tests run by pytest currently trigger ASan
         # memory leak detections. Disable those for now.
         - export ASAN_OPTIONS=detect_leaks=0