Skip to content

More Aggressively Skip Duplicate Workflows & Cancel Workflow Runs if One Test in The Group Fails To Speed Up CI #5553

@kbendick

Description

@kbendick

Feature Request / Improvement

Right now, we depend on the workflow itself to cancel duplicates, using the built-in features of the github actions via the concurrency_group.

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

While this is good enough, it requires each individual run to start and then notice that it is cancelled. As the number of actions has increased, we are spending more time waiting on CI.

One case where we can get time back is cancelling duplicates in bulk. For example, it's not uncommon for somebody to open a PR, then push to it, and then push to it again not too long after (if they notice a small issue etc).

In the case above, we'd have to wait for each action run to be matched to a runner, start, then notice that it's a duplicate and get cancelled.

If we use something like https://github.com/marketplace/actions/skip-duplicate-actions, we can have it so that when a duplicate workflow is picked up, it will cancel all but the latest workflow runs. Thus saving a lot of time in churning workflows that would be cancelled.

This is not a high priority, but something to consider.

I'd also still like to get it so that we have one starting point and then all of that spreads out via github's workflow_dispatch, so that if one test fails, all test groups fail simultaneously. This way, if the Java CI fails, we won't have 7 or 9 concurrent Spark test workloads that still run for that patch (as that patch isn't going to be mergeable in that state anyway).

Query engine

No response

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