Repository navigation
ci: enable e2e retries on merge queue runs #41496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: RocketChat/Rocket.Chat
Length of output: 1973
🌐 Web query:
Rocket.Chat .github/workflows/ci.yml test-ui-fips merge_group contains(github.event.pull_request.labels)💡 Result:
Based on the provided search results from the Rocket.Chat repository and general GitHub Actions practices, there is no evidence of a
test-ui-fipsjob or configuration in the Rocket.Chatci.ymlfile [1][2][3][4]. The repository's CI workflow focuses on standard UI and API tests (both Community and Enterprise editions) [1][2][3][4]. Regarding the technical concern aboutmerge_groupandcontains(github.event.pull_request.labels), GitHub Actionsmerge_groupevents do not contain thepull_requestobject [5][6]. Consequently, usingcontains(github.event.pull_request.labels)within a job triggered by amerge_groupevent will fail becausegithub.event.pull_requestis undefined in that context [5][6]. To handle label-based logic in workflows that support bothpull_requestandmerge_groupevents, best practices involve checking the event name [5][6]. For example: - if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'your-label') If a job must run for a merge group, it is common to either skip the label check or assume the necessary validation was completed during the original pull request check [5][6].Citations:
🌐 Web query:
"contains(github.event.pull_request.labels.*.name, 'fips')" "Rocket.Chat" ".github/workflows/ci.yml"💡 Result:
The expression
contains(github.event.pull_request.labels.*.name, 'fips')is a GitHub Actions expression used to check if a pull request has a label named "fips" [1]. This pattern is commonly used in conditional logic within GitHub Actions workflow files to trigger specific jobs or steps [1]. While the "fips" label is used in Rocket.Chat's development context—such as in pull request#18661regarding FIPS-compliant algorithms [2] and referenced in internal Jira tasks related to FIPS compliance [3]—there is no evidence that this specificcontainsexpression is a hardcoded or standard part of the main Rocket.Chat.github/workflows/ci.ymlfile [4][5]. Rocket.Chat maintains FIPS-compliant Docker images for federal deployments [6], but the CI pipeline logic primarily relies on standard event triggers (e.g.,pull_request,push,release) and input-driven workflows rather than label-based filtering for FIPS specifically [4][5][7]. If you are implementing this in a workflow, you must ensure that your job trigger includes thelabeledorunlabeledtypes if you intend to run the workflow specifically when a label is added or removed [1]. Without these, thegithub.event.pull_requestobject may not contain the updated labels in all contexts [1].Citations:
🌐 Web query:
site:github.com/RocketChat/Rocket.Chat/blob e75965c0 .github/workflows/ci.yml "test-ui-fips" "merge_group" "github.event.pull_request.labels"💡 Result:
The query components refer to files and configuration logic within the Rocket.Chat repository (specifically at commit e75965c) [1][2][3]. 1. e75965c: This is a specific Git commit hash from the RocketChat/Rocket.Chat repository [1][2][3]. 2..github/workflows/ci.yml: This is the primary continuous integration workflow file for the project [1]. It defines the triggers for the CI pipeline, including pull_request, merge_group, and push events [1][4]. 3. test-ui-fips: This appears to be a specific CI job name or a referenced test suite configuration within the project's ecosystem, often utilized for FIPS-compliant UI testing [4][5]. 4. merge_group: This is a GitHub Actions trigger used to run workflows when a pull request is added to a merge group (part of GitHub's Merge Queue feature) [1][4]. 5. github.event.pull_request.labels: This is a GitHub Actions context expression used to access the labels associated with a pull request [4]. It is commonly used in conditional logic (if statements) within workflow steps or jobs to determine whether they should execute based on specific labels attached to a PR (e.g., triggering specialized tests only when a certain label is present) [4][5]. In the context of the Rocket.Chat repository, these elements are part of a complex CI/CD setup that utilizes reusable workflows (like ci-test-e2e.yml) [2][4] and conditional execution based on workflow events, branches, and PR metadata to manage testing, building, and deployment [1][4].
Citations:
🌐 Web query:
GitHub Actions merge_group event payload pull_request object official docs💡 Result:
The
merge_groupevent in GitHub Actions does not contain apull_requestobject [1]. This is a frequent point of confusion, as themerge_groupevent is distinct from thepull_requestevent [2][3][4]. While thepull_requestevent payload provides comprehensive details about a specific pull request, themerge_groupevent payload is focused on the temporary merge group branch created by the merge queue to validate changes [5][4][6]. Key points regarding themerge_groupevent payload: 1. Payload Structure: The top-level object for amerge_groupevent includes amerge_groupfield (an object) [6], but it does not include apull_requestfield [1]. 2. Event Purpose: Themerge_groupevent is triggered when a pull request is added to a merge queue [2][4]. It notifies workflows that they need to run status checks on the merge group branch [5][6]. 3. Data Availability: Because a single merge group can contain multiple queued pull requests [4][6], the event payload is structurally different from a standardpull_requestevent, which typically relates to a single, specific pull request [1]. 4. Accessing Information: If your workflow needs to interact with the pull request that triggered the queue, you cannot rely on the event payload to provide apull_requestobject. Developers often have to use the GitHub API to fetch details about the pull requests included in the merge group if that information is required [1]. For further details on the specific fields available in themerge_groupobject (such ashead_shaandbase_sha), refer to the official GitHub Webhook events and payloads documentation [6].Citations:
Gate
test-ui-fipsformerge_groupexplicitly.github/workflows/ci.ymlstill checkscontains(github.event.pull_request.labels.*.name, 'fips'), which won’t work onmerge_groupruns because that event has nopull_requestlabel context. If this job should run in the merge queue, split the condition by event name and skip the label lookup formerge_group.🤖 Prompt for AI Agents