Skip to content

[ci] dont run array-test in postmerge#462

Open
andrew-anyscale wants to merge 2 commits intomainfrom
fix-array-test
Open

[ci] dont run array-test in postmerge#462
andrew-anyscale wants to merge 2 commits intomainfrom
fix-array-test

Conversation

@andrew-anyscale
Copy link
Contributor

@andrew-anyscale andrew-anyscale commented Mar 17, 2026

Postmerge runs all tests, regardless of filters. We want to skip these, since they will purposefully fail when triggered to validate the array feature.

Postmerge runs all tests, regardless of filters. We want to skip these, since they will always trigger when run.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue where the array-test in the Buildkite pipeline was incorrectly executing filter assertions during the postmerge stage, leading to unintended test failures. By introducing a conditional skip for these assertions, the test now behaves as expected in postmerge without causing false positives.

Highlights

  • Buildkite Configuration Update: Modified the .buildkite/array-test.rayci.yaml file to adjust test behavior in the postmerge stage.
  • Postmerge Test Skipping: Implemented a conditional check to skip filter assertions for the array-test specifically when running in the postmerge Buildkite stage.
  • Preventing Unnecessary Failures: This change prevents the array-test from always triggering and potentially failing in postmerge environments where filters are not applied.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .buildkite/array-test.rayci.yaml
    • Added a conditional if statement to check for the RAYCI_STAGE environment variable.
    • Included logic to exit 0 and skip filter assertions if the stage is postmerge.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request prevents the array-test from running its assertions during postmerge builds by adding a conditional exit to the script. The change is effective in solving the issue where postmerge runs would cause this test to fail. I've provided one suggestion to consider a more declarative approach using Buildkite's if conditions, which could make the configuration cleaner and slightly more efficient.

Comment on lines +11 to +14
if [ "${RAYCI_STAGE:-}" = "postmerge" ]; then
echo "Postmerge: skipping filter assertions"
exit 0
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

A more declarative and efficient way to achieve this would be to use a Buildkite if condition on the step definition, for example: if: build.env("RAYCI_STAGE") != "postmerge". This would prevent the job from being scheduled at all during postmerge runs, which is more efficient than starting a job just to have it exit immediately. If you apply this to the step definition, this block of code can be removed.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Collaborator

@aslonnie aslonnie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why will they fail?

Comment on lines +11 to +14
if [ "${RAYCI_STAGE:-}" = "postmerge" ]; then
echo "Postmerge: skipping filter assertions"
exit 0
fi
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@andrew-anyscale
Copy link
Contributor Author

why will they fail?

The structure of this test is array-step has an array

 array:
      os: ["linux", "windows", "macos"]
      variant: ["1", "2"]

But the only job that should trigger it is:

  # Depends on only the linux-1 and macos-1 variants
  - label: "Depends check only"
    key: depends-on-variants
    command: echo "This step depends on only the variants we want."
    depends_on:
      - array-step:
          os: ["linux", "macos"]
          variant: "1"
      - forge

Notably, these only actually require [linux, macos] X [1]

So, if any jobs spawn that aren't exactly these parameters, that means the array feature is failing

Removed postmerge stage check from array step command.

Signed-off-by: Andrew Pollack-Gray <andrew@anyscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants