Skip to content

CI: fixes, reorganisation

Karl Wette requested to merge ANU-CGA/lalsuite:CI-fixes-reorg into master

Description

Fixes

  • platform:conda:macos-* (#754 (closed)):
    • Jobs were compiling with CFLAGS="-O3" which is known to be buggy with Clang (!2121 (merged)).
      • Now all macOS jobs (i.e. anything which extends .macos-job) are compiled with CFLAGS="-O2"
    • lalsimulation/test/python/test_IMRPhenom{XAS|XP}_NRTidalv3.py test was failing with too-stringent tolerance on numerical comparison
      • Use NumPy's assert_allclose() with a relative tolerance of 0.002
  • gcc:12, gcc:13, gcc:14:
    • GCC now warns on functions mixing ints and enums between their prototypes and definitions (e.g. using enum for an argument in the prototype, but then using an int for the same argument in the definition; or vice versa)
      • Fixed
    • igwn/lalsuite-dev-gcc:12 and igwn/lalsuite-dev-gcc:13 images are missing Python h5py package
      • Images need updating
    • igwn/lalsuite-dev-gcc:14 image is missing Python glue.pipeline package
      • Image needs updating
  • Drop support for GCC 7
  • Drop support for ICC
    • Been broken since !2074 (merged)
    • No Debian bookworm image
    • Was only ever best effort
    • Unlikely to ever be fixed without a maintainer

Reorganisation

Per #529 (closed), move almost everything from .gitlab-ci.yml into sub-files within .gitlab/ci/:

$ wc -l .gitlab-ci.yml .gitlab/ci/*.yml
  249 .gitlab-ci.yml
  126 .gitlab/ci/compilers.yml
  285 .gitlab/ci/conda.yml
  135 .gitlab/ci/containers.yml
   94 .gitlab/ci/coverage.yml
  184 .gitlab/ci/deb.yml
   57 .gitlab/ci/docs.yml
  130 .gitlab/ci/integration.yml
  338 .gitlab/ci/lint.yml
  164 .gitlab/ci/pkg.yml
   75 .gitlab/ci/platform.yml
  202 .gitlab/ci/rpm.yml
  140 .gitlab/ci/rules.yml
  106 .gitlab/ci/tarballs.yml
  122 .gitlab/ci/upgrade.yml
  263 .gitlab/ci/wheels.yml
 2670 total

Now .gitlab-ci.yml just contains setup/settings and basic/common template/fragments:

# -- setup --------------------------------------
stages: ...
include: ...
# -- global settings ----------------------------
cache: ...
variables: ...
default: ...
# -- helper fragments ----------------------------------
.retry: ...
.build-init: ...
# -- base templates ----------------------------------
.build-job: ...
.macos-job: ...
.macos-x86_64: ...
.macos-arm64: ...
.deploy: ...
# -- CI job templates ----------------------------------
.make-distcheck: ...

API Changes and Justification

Backwards Compatible Changes

  • This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions
  • This change adds new classes/functions/structs/types to a public C header file or Python module

While fixing the GCC int/enum warnings involves modifying functions definitions, a change of type int <--> enum should be backward-compatible, since C will usually convert one from another, and at the ABI level an enum should usually be an int.

Backwards Incompatible Changes

  • This change modifies an existing class/function/struct/type definition in a public C header file or Python module
  • This change removes an existing class/function/struct/type from a public C header file or Python module

Review Status

n/a

Merge request reports

Loading