Skip to content

resolve race conditions in CI ontology-processing jobs. #277

Open
@ejmolinelli

Description

@ejmolinelli

Motivation

We have two jobs to build and push ontology assets: generate_all_ontology and generate_diff_ontology. Both run in parallel and push changes to the same PR incoming branch, guaranteeing that one will fail due to its history not having the changes pushed by the other. This race condition invariably leads to a failed workflow.

We want to be able to rely on the integrity of our CI tests.

The generate_diff_ontology is an attempt to only rebuild assets for updated ontologies, and can save lots of time when PRs only introduce code changes, and not changes to the underlying ontologies.

Definition of Done

  • workflow should always succeed.
  • fast build when ontology versions are not modified
  • slower build when one or more ontology versions are modified
  • full (i..e slowest) build when the ontology asset definition is modified.

Tasks

  • consolidate into a single workflow, which conditionally adds the --diff tag to the all_ontology_generator.py invocation.

Detail the specific tasks that can be used to accomplish the desired changes.
If detailed steps cannot be provided at this time, please file a Tech Proposal instead.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions