Repository navigation
fix(ci): skip dynamic workflows in nightly report generation - #16912
Conversation
The nightly testing report has failed every night since Oct 10, when GitHub registered the GitHub-managed "Dependency Graph" workflow (dynamic/dependabot/update-graph) on the repo. The report looked up the scheduled runs of each workflow by file name, which 404s for dynamic workflows, and the uncaught Octokit::NotFound aborted the script before it posted the report. Skip all dynamic/ workflows, which only run on dynamic events and never on schedule, instead of excluding them one at a time. Also record a failed lookup of workflow runs (e.g. a transient 5xx or a timeout) as a row in the report instead of aborting, so one bad request cannot block the whole report. Exclude sdk.performance.integration.yml and sdk.sessions.integration.yml, replacing the stale pre-rename names that no longer matched anything, and drop the now-redundant codeql and dependabot-updates entries.
Using Gemini Code AssistThe 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
Customization To customize the 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 Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. 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. |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request updates the testing report generation script to skip GitHub-managed dynamic workflows (starting with 'dynamic/') and wraps the workflow runs fetch operation in a rescue block to handle Octokit and Faraday errors gracefully. Feedback suggests using idiomatic Ruby string interpolation instead of string concatenation and logging the full workflow path for better context.
Print the full workflow path (e.g. dynamic/dependabot/update-graph) instead of the basename, since the dynamic/ prefix is why the workflow is skipped, and use string interpolation instead of concatenation.
Summary
infra.generate_issueshas failed every night since Oct 10 (first failure), so no nightly testing report has been posted. On Oct 9, GitHub registered a GitHub-managed "Dependency Graph" workflow (dynamic/dependabot/update-graph) on the repo. The report looks up the scheduled runs of each workflow by file name, which 404s for dynamic workflows, and the uncaughtOctokit::NotFoundaborted the script before it posted the report. This is the same failure that earlier led to excludingcodeqlanddependabot-updates.Changes
app.rbnow skips every workflow whose path starts withdynamic/, instead of excluding them one at a time. These only run ondynamicevents: all 156 recent runs of the three current ones (CodeQL, Dependabot Updates, Dependency Graph) aredynamic, neverschedule, so they couldn't appear in the report anyway.Octokit::ErrororFaraday::Error) is now a row in the report, e.g.error fetching runs (Octokit::BadGateway), instead of aborting the script. The Oct 12 run failed this way, on a transient 502 forsdk.core.extension.yml. The row shows only the error class; the full message goes to the job log.sdk.performance.integration.ymlandsdk.sessions.integration.yml. The oldperformance-integration-tests.ymlandsessions-integration-tests.ymlentries no longer matched anything, so both workflows were showing up in the report. Dropcodeqlanddependabot-updates, which are now skipped as dynamic workflows.Testing
Ran
app.rblocally against the live API with the scheduled job's inputs, using Ruby 3.4.1 and the locked gems as in the action's Dockerfile. Issue creation, comments, and closing were stubbed out, and all other writes were blocked.mainfails with the sameupdate-graph404 as CI.prerelease.yml, which became a row in the report instead of aborting.Octokit::BadGatewayandFaraday::TimeoutErrorfor two workflows adds two error rows, and the report is still posted.The
test_generate_an_issuejob on this PR runs the action end to end.After this lands, the next nightly run will open a new
nightly-testingissue, since the last one is closed.#no-changelog