Skip to content

Changes detected from queued pipelines resulting in longer builds #50

@SA-Egress

Description

@SA-Egress

Hi,

A pipeline is designed to check for changes in your codebase and then build those changes. For various reasons, only one pipeline can run at any given time.

  1. Pipeline A is triggered because it detected changes in your codebase.
  2. While Pipeline A is running, more changes are made to the codebase. Because Pipeline A is still running, these changes trigger another pipeline, Pipeline B, which is then queued to run after Pipeline A.
  3. More changes are made to the codebase while Pipeline A is still running. These changes trigger Pipeline C, which is queued to run after Pipeline B.
  4. Pipeline A finishes running and successfully builds the changes it detected.
  5. Now, Pipeline B starts running. However, the changes that Pipeline B detected include the changes that Pipeline A already built. This is because when Pipeline B was triggered and queued, it included the changes that were present at that time, which includes the changes that Pipeline A was running for.
  6. Pipeline B finishes running and successfully builds the changes it detected, including the changes that were already built by Pipeline A.
  7. Finally, Pipeline C starts running. But the changes that Pipeline C detected include the changes that both Pipeline A and Pipeline B already built. This is because when Pipeline C was triggered and queued, it included all the changes that were present at that time, which includes the changes that Pipelines A and B were running for.

Is there a way to work around this without having to split the pipeline?

Second question - if the pipeline partially succeeds or is cancelled. The changes are still not considered 'built' so will be included in the next run. Is that correct?

Kind Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions