-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Merge localBuild support into firebase deploy
#9193
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
base: master
Are you sure you want to change the base?
Conversation
…aces. (#9115) * Add new zip deploy and local build fields to configs and Build interfaces.
…9141) * Add new EnvironmentVariable for Builds.
* handle error * m
- Improving instructions and return values in crashlytics tools - Making interval handling more robust - Adding return messages to avoid undefined tool responses
…ager to do more than check your login status (#9133) * Tweak the connect prompt to look at gitignored files and to be less eager to do more than check your login status * Loosen prescriptiveness, ease testing proactivity, come up with multiple root causes * Respond to prompt review comments.
… in Firebase ToS (#9143) * update_environment can be used to accept Gemini ToS * changelog * Update src/mcp/tools/core/update_environment.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * m * m * m * m * m --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…#9163) Fix never-ending rollout.spect.ts test
Add a localbuild.ts to run apphosting local builds.
Add a subdirectory input to createArchive to allow for zipping just the subdirectory while still keeping its location relative to the rootDir
Sets the deploy context config for localBuild backends In prepare, call the local build and set the build outputs in the config In deploy, zip and upload the build directory
- Adds `/firebase:init` prompt with placeholder guidance. - Resources are defined in `src/mcp/resources`. - Prompts and other output can "link" to resources by saying to use the `read_resources` tool with a particular URI. - Consolidates context into a single McpContext type. - Some additional refactoring and cleanup.
* Update GEMINI_TOS_ERROR * merge * m
* Expose init prompt without mcpalpha experiment * Remove import
* feat(mcp): Combine auth_get_user and auth_list_users tools Combines the `auth_get_user` and `auth_list_users` MCP tools into a single `auth_get_users` tool. This new tool has two optional arguments, `uids` and `emails`. - When no arguments are provided, it behaves like `auth_list_users`. - When either `emails` or `uids` is provided, it looks up users by the provided identifiers. Removes unused variables and ensures that `passwordHash` and `salt` fields are consistently removed from all user objects returned by the tool. * Formats * Parallelize calls * Small fixes * npm format --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Joe Hanley <[email protected]> Co-authored-by: Alexander Nohe <[email protected]>
…9166) * Deleted `src/mcp/tools/auth/disable_user.ts`, `src/mcp/tools/auth/disable_user.spec.ts`, `src/mcp/tools/auth/set_claims.ts`, and `src/mcp/tools/auth/set_claims.spec.ts`. This indicates that my refactoring did not break any existing functionality. I have created the new spec file at `src/mcp/tools/auth/update_user.spec.ts` with a basic test structure. I have added a comprehensive suite of tests to `src/mcp/tools/auth/update_user.spec.ts` to cover all the functionality of the new tool. * Cleaning up unit tests * Fixing tests * PR suggestions * PR fixes * Few changes * Name update * Name update --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Joe Hanley <[email protected]> Co-authored-by: Alexander Nohe <[email protected]>
* feat: support preview releases in publish script The publish script has been updated to support a new 'preview' version. When releasing a preview version, the following changes occur: - A branch name must be provided, and the release will be built from that branch. - The npm package is published with a '--tag=preview' flag. - The following steps are skipped: - Pushing changes to the master branch. - Creating a GitHub release. - Generating firepit artifacts. - Generating a Docker image. * feat: include branch name in preview release version and tag Updates the preview release functionality to include the sanitized branch name in the npm prerelease version string and the npm distribution tag. This allows for multiple preview versions from different branches to coexist without conflicting. --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit renames the `experimental:mcp` command to `mcp` and adds an alias for the old name to maintain backward compatibility. All references to the old command name in the codebase have been updated. Additionally, the `isEnabled('mcp')` check has been removed, as the command is now stable. A changelog entry has been added for this change. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Joe Hanley <[email protected]>
* Prevent the init prompt from building a mobile app backend Co-authored-by: Konstantin Mandrika <[email protected]> * Update src/mcp/prompts/core/init.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: Konstantin Mandrika <[email protected]> Co-authored-by: Joe Hanley <[email protected]> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* feat: Add GA4 tracking for Gemini CLI extension This change adds a new parameter `gemini_cli_extension` to the MCP GA4 tracking when the `experimental:mcp` command is run. This parameter is set to "true" when the `IS_GEMINI_CLI_EXTENSION` environment variable is set, and "false" otherwise. This will allow us to track the usage of the Gemini CLI extension. * feat: Add GA4 tracking for Gemini CLI extension This change adds a new parameter `gemini_cli_extension` to the MCP GA4 tracking when the `experimental:mcp` command is run. This parameter is set to "true" when the `IS_GEMINI_CLI_EXTENSION` environment variable is set, and "false" otherwise. This will allow us to track the usage of the Gemini CLI extension. (tests for private method removed per PR feedback) --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Joe Hanley <[email protected]>
* BYO bucket for v2 functions uploads with runfunctions enabled * update comments * Reconcile FAH & CF3 upsert bucket. Fix Map usage in FAH * PR feedback * PR feedback * PR feedback I failed to push earlier * Fix problematic merge
* Fix merge conflict issues from merging in master. * fix tests
(All changes aside from some linting and tests have been code-reviewed in the jojwang-localbuild branch) |
try { | ||
const { outputFiles, annotations, buildConfig } = await localBuild( | ||
options.projectRoot || "./", | ||
"nextjs", |
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.
Is it noted anywhere to the user that only nextjs is supported? What happens if they try to deploy an Angular app
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.
No, that's also why this feature is not exposed to the users anywhere yet. The original intention was to have this used exclusively by Studio first, so the nextjs hardcode is fine.
The underlaying local build CAN actually support angular, but the parsing of the build output to zip and upload to GCS needs tweaking to support angular.
We will also need the micro-discovery feature to tell the under-lying local build which adapter to run. This is very far from being done.
So the general steps of this work is:
- get an MVP working that support nextjs for team testing
- expand support beyond nextjs and MVP
- document things when it's ready for users to use directly via the CLI
Description
Process localBuild source deploys configs in
firebase deploy
for apphosting.localBuild
is indicated in firebase.json, the deploy process will run a local apphosting build and upload the built app into a GCS bucket (instead of the entire source code).localBuild
in the user's firebase.json is not included here.Scenarios Tested
firebase deploy --only apphosting
with
apphosting { localBuild:true }
in firebase.json.The rollout is not expected to work on the backend yet, but a local build should be kicked off and the output should be successfully uploaded into buckets.
firebase deploy --only apphosting
without localBuild continue to work.