Skip to content
This repository was archived by the owner on Sep 7, 2020. It is now read-only.

Conversation

@rmelotte
Copy link
Collaborator

Essentially 2 things:

  • Make the CI jobs interruptible.
    This should hopefully make it overall faster, because redundant pipelines will get cancelled (a pipeline is redundant when there is a more recent one for the same branch).
    Only the latest pipeline for each branch will get completed.
  • Cleanup the certification tests manually, this should hopefully improving the situation when a job is cancelled (the next ones should no longer fail).

Redundant pipelines are only canceled if no uninterruptible job has
started.

Let's mark all the jobs as interruptible hoping the redundant
pipelines will get canceled, to try to reduce the load on the build
server.

There is one exception: the certification cannot currently be
interrupted, because the UCC wouldn't stop properly.

Signed-off-by: Raphaël Mélotte <[email protected]>
@rmelotte rmelotte added this to the M3 - Workable product milestone Aug 14, 2020
@rmelotte rmelotte self-assigned this Aug 14, 2020
The certification tests generate files owned by root, since the
different sigma agents need to run as root.

To prevent the next job from failing to remove files owned by root,
the files have their ownership reset at the end of every job (by the
run_test_file.py script).

When a job is canceled however, there is no way to change the
ownership of those files, neither is there a way to remove them at the
next run (because the very first thing the gitlab-runner does is to
try to remove them).

One way to solve this would be to use 'none' as the git clean flags,
and do the cleanup ourselves. A downside of this approach is that we
risk either not removing some parts (example, files under .tmp added
by Gitlab CI) or to removing too much (for example if we run git
clean, it would delete the downloaded artifacts...).

Another way is to use the 'clone' strategy to always remove the
repository entirely and start with an empty folder every time.  This
approach has been chosen because as the certification tests already
take a lot of time to run, it shouldn't have a significant impact on
the total time.

While we're at it, also remove the 'echo $CI_COMMIT_DESCRIPTION'
leftover.

Note that this commit still won't allow us to mark the certification
tests as interruptible, because the UCC does not terminate properly
when canceling a job anyway.

Signed-off-by: Raphaël Mélotte <[email protected]>
@rmelotte rmelotte force-pushed the hotfix/ci-make-jobs-interruptible branch from 41f86c7 to 6fdbad4 Compare August 14, 2020 16:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants