Skip to content

CI: run full CI pipeline on pushes to the main branch on lscsoft/master

Description

I've noticed a potential loophole with the new CI setup, although it should only apply to existing MRs that were opened before !2000 (merged) was merged:

  1. While GitLab will require new MRs to pass the new CI pipeline, it doesn't require that pipelines for existing MRs have to be re-run (although it does add a warning [1]). So changes that e.g. break the platform/compiler jobs won't necessarily be caught here.
  2. Once an MR is merged, the merge commit is pushed to master@lscsoft/lalsuite. This triggers a normal push build, which in the new CI setup is a minimal set of jobs. So platform/compiler/etc. breaking changes that make it through step 1 won't be caught here.
  3. Since the scheduled nightly build doesn't run the platform/compiler/etc. jobs any more, broken changes that make it through steps 1 & 2 won't be caught here either.

So potentially the first time such broken changes would be caught would be when someone opens a new MR, which would then delay that MR being accepted until the broken code is fixed.

This MR tries to mitigate this possibility by modifying step 2: any commits pushed to master@lscsoft/lalsuite will trigger the full CI pipeline that now runs for MRs. This won't prevent broken changes that may be in existing MRs from being merged, but will at least flag that the changes are broken in the MR that merged them (as opposed to some later MR).

(Again this should only be an issue for existing MRs; for any MRs opened after !2000 (merged) was merged, broken changes should be caught in step 1.)

[1] If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project, which appears in a yellow-ish box.

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

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

cc @adam-mercer

Note that I've no way of testing whether this change actually works until it's merged (and the push commit on master@lscsoft/lalsuite is triggered) but hopefully I've got the syntax right.

Merge request reports