Skip to content

Comments

feat: add new reusable workflow, _build.yml#15762

Merged
ncooke3 merged 22 commits intomainfrom
nc/reusable-build
Jan 30, 2026
Merged

feat: add new reusable workflow, _build.yml#15762
ncooke3 merged 22 commits intomainfrom
nc/reusable-build

Conversation

@ncooke3
Copy link
Member

@ncooke3 ncooke3 commented Jan 25, 2026

Add new reusable workflow that wraps the scripts/build.sh script and provides consolidated Xcode selection, simulator installation and log uploading.

  • Reduce # of places that we handle Xcode versioning (down to 38 times in .github/ from 56 with this PR)
  • Consolidate de-flaking logic for gem bundle installation, sim installation, build retries, and logs uploading (should reduce nightly flakes).
  • Experimenting with fixing CI management for forks.

Fix #15770

#no-changelog

@gemini-code-assist
Copy link
Contributor

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

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.

@ncooke3 ncooke3 closed this Jan 25, 2026
@ncooke3 ncooke3 reopened this Jan 25, 2026
@ncooke3
Copy link
Member Author

ncooke3 commented Jan 26, 2026

45e7793 was green.

@ncooke3
Copy link
Member Author

ncooke3 commented Jan 26, 2026

global tap had two unrelated flakes a6ab2b7

@ncooke3 ncooke3 closed this Jan 26, 2026
@ncooke3 ncooke3 reopened this Jan 26, 2026
@ncooke3 ncooke3 marked this pull request as ready for review January 26, 2026 17:19
@ncooke3 ncooke3 requested a review from a team as a code owner January 26, 2026 17:20
@paulb777
Copy link
Member

Looks like the Storage integration tests are NOT running https://github.com/firebase/firebase-ios-sdk/actions/runs/21367091022/job/61501729416

@ncooke3 ncooke3 marked this pull request as draft January 26, 2026 23:33
@ncooke3
Copy link
Member Author

ncooke3 commented Jan 26, 2026

Looks like the Storage integration tests are NOT running https://github.com/firebase/firebase-ios-sdk/actions/runs/21367091022/job/61501729416

@paulb777, great catch! That's not good. I think it's related to my check_secrets.sh changes. Converting to draft.

@ncooke3 ncooke3 added the needs-jules-review Label for manually marking PRs as ready for a review from Jules. label Jan 28, 2026
@ncooke3
Copy link
Member Author

ncooke3 commented Jan 29, 2026

/gemini review

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 introduces a new reusable workflow _build.yml and refactors the logic for checking secrets availability in CI environments. The new logic in check_secrets.sh is a significant improvement, making the process more explicit and robust, especially for handling builds from forks. I've added one minor suggestion to simplify the conditional logic for improved readability.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ncooke3
Copy link
Member Author

ncooke3 commented Jan 29, 2026

/gemini review

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 introduces a more robust mechanism for checking secret availability in CI within scripts/check_secrets.sh. The changes prioritize new, explicit environment variables while retaining backward compatibility for older workflows, which is a solid approach for managing CI configurations, especially with forks. The code is well-commented and the logic is sound. I have a couple of minor suggestions to make the shell script syntax slightly more concise.

ncooke3 and others added 3 commits January 29, 2026 10:35
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ncooke3
Copy link
Member Author

ncooke3 commented Jan 29, 2026

/gemini review

@ncooke3
Copy link
Member Author

ncooke3 commented Jan 29, 2026

  • Check actions tab for branch

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 introduces a more robust mechanism for checking the availability of secrets in the CI environment, which is particularly useful for handling builds from forked repositories. The changes in scripts/check_secrets.sh prioritize new, explicit environment variables for this check, while maintaining backward compatibility for older workflows. This is a solid improvement for CI reliability. I have one minor suggestion to enhance the readability of the new logic.

ncooke3 and others added 2 commits January 29, 2026 11:34
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ncooke3 ncooke3 marked this pull request as ready for review January 29, 2026 20:21
Copy link

@laike9m laike9m left a comment

Choose a reason for hiding this comment

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

This is a great initiative to consolidate the build logic into a reusable workflow. It significantly reduces duplication and improves maintainability.

I've identified a few issues, most notably a potential bug in the repository name comparison due to case sensitivity in bash, and some opportunities for optimization regarding simulator downloads and build retries.

@ncooke3 ncooke3 requested review from andrewheard and removed request for andrewheard January 30, 2026 17:50
- Make repository check case-insensitive in _build.yml
- Add max_attempts input to _build.yml
- Remove redundant if conditions in sdk.database.yml and sdk.mlmodeldownloader.yml
@ncooke3 ncooke3 requested a review from andrewheard January 30, 2026 19:56
@ncooke3 ncooke3 enabled auto-merge (squash) January 30, 2026 21:02
@ncooke3 ncooke3 merged commit a8fbda0 into main Jan 30, 2026
474 of 475 checks passed
@ncooke3 ncooke3 deleted the nc/reusable-build branch January 30, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-jules-review Label for manually marking PRs as ready for a review from Jules.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nightly Testing Report

4 participants