Eliminate Duplicate CI Runs & Add Post-Merge Validation#2643
Draft
TackAdam wants to merge 3 commits intoopensearch-project:mainfrom
Draft
Eliminate Duplicate CI Runs & Add Post-Merge Validation#2643TackAdam wants to merge 3 commits intoopensearch-project:mainfrom
TackAdam wants to merge 3 commits intoopensearch-project:mainfrom
Conversation
Signed-off-by: Adam Tackett <tackadam@amazon.com>
Signed-off-by: Adam Tackett <tackadam@amazon.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
pushtrigger from 4 PR-facing workflows to stop every PR from running the full CI suite twicepost_merge_test.ymlworkflow for post-merge validation onmainand release branchesProblem
All CI workflows except
lint.ymltrigger on bothpushandpull_request:When a commit is pushed to a branch with an open PR, GitHub fires both events, causing every workflow to run twice with the same commit SHA. This means:
build-linux+build-windows-macos)Every PR push consumes ~2x the necessary CI compute.
Changes
Workflows modified (trigger only)
dashboards-observability-test-and-build-workflow.ymlon: [pull_request, push]on: [pull_request]integration-tests-workflow.ymlon: [pull_request, push]on: [pull_request]ftr-e2e-dashboards-observability-test.ymlon: [pull_request, push]on: [pull_request]verify-binary-install.ymlon: [push, pull_request]on: [pull_request]No other changes to these files — all job definitions, steps, and matrix configurations remain identical.
New workflow:
post_merge_test.ymlRuns on push to
mainand release branches ([0-9]+.[0-9]+,[0-9]+.x). Contains three jobs:build-and-test-linux— Unit tests, coverage upload, and artifact build (mirrors existingbuild-linuxjob from the test-and-build workflow)integration-tests— 7 Cypress test groups withfail-fast: falseso one flaky group doesn't cancel the restAdditional improvements applied to the new workflow (not backported to existing workflows in this PR):
fetch-depth: 1on all checkout steps (shallow clones)timeout-minuteson all jobs (60 min build, 90 min integration, 5 min issue creation)>> $GITHUB_OUTPUTinstead of deprecated::set-outputactions/setup-node@v4instead of@v1opensearch_dashboards.jsonat runtime instead of hardcodedfailure()instead ofalways()What is NOT in this PR
apm_testgroup is excluded from post-merge integration tests (it requires Prometheus setup and is better suited for the dedicated PR workflow)CI Cost Impact
Risk Assessment
Low risk. The only change to existing workflows is removing the
pushtrigger — no job logic is modified. The newpost_merge_test.ymlis additive and only runs post-merge, so it cannot affect PR checks.If a regression is introduced and merged, the post-merge workflow catches it and auto-creates an issue. Previously, the duplicate
push-triggered run would also catch it, but with no notification mechanism — failures onmaincould go unnoticed.References
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.