Dagger
Search

firebase

This module provides a reusable pipeline to automate the deployment process of Firebase applications.
It handles dependency installation, building (with VITE environment injection), and deployment
using Google Cloud Workload Identity Federation for secure authentication.

Installation

dagger install github.com/StaytunedLLP/daggerverse/firebase@v0.0.2

Entrypoint

Return Type
Firebase
Example
dagger -m github.com/StaytunedLLP/daggerverse/firebase@92c3c7f83cf9ea03b6c4de28a32adf7c601b2839 call \
func (m *MyModule) Example() *dagger.Firebase  {
	return dag.
			Firebase()
}
@function
def example() -> dagger.Firebase:
	return (
		dag.firebase()
	)
@func()
example(): Firebase {
	return dag
		.firebase()
}

Types

Firebase 🔗

firebaseDeploy() 🔗

Main reusable pipeline to build and deploy Firebase applications.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-- The source directory containing the project files.
projectIdString !-- The Google Cloud Project ID for Firebase deployment.
gcpCredentialsSecret !-- The JSON credentials secret or direct access token.
appIdString -- The Firebase App ID (optional, used for VITE environment injection).
onlyString -- Firebase deploy filter (e.g., 'hosting', 'functions').
frontendDirString -- Path to the frontend directory relative to the source.
backendDirString -- Path to the backend directory relative to the source.
firebaseDirString -- Directory containing firebase.json relative to the source.
webappConfigSecret -- Optional Firebase Web App config JSON secret for granular env injection.
extraEnvSecret -- Optional secret containing additional environment variables to append to .env.
Example
dagger -m github.com/StaytunedLLP/daggerverse/firebase@92c3c7f83cf9ea03b6c4de28a32adf7c601b2839 call \
 firebase-deploy --source DIR_PATH --project-id string --gcp-credentials env:MYSECRET
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, projectId string, gcpCredentials *dagger.Secret) string  {
	return dag.
			Firebase().
			FirebaseDeploy(ctx, source, projectId, gcpCredentials)
}
@function
async def example(source: dagger.Directory, project_id: str, gcp_credentials: dagger.Secret) -> str:
	return await (
		dag.firebase()
		.firebase_deploy(source, project_id, gcp_credentials)
	)
@func()
async example(source: Directory, projectId: string, gcpCredentials: Secret): Promise<string> {
	return dag
		.firebase()
		.firebaseDeploy(source, projectId, gcpCredentials)
}

lint() 🔗

Validates code quality using npm run lint.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-- The source directory containing the project files.
frontendDirString -- Path to the frontend directory relative to the source.
backendDirString -- Path to the backend directory relative to the source.
Example
dagger -m github.com/StaytunedLLP/daggerverse/firebase@92c3c7f83cf9ea03b6c4de28a32adf7c601b2839 call \
 lint --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory)   {
	return dag.
			Firebase().
			Lint(ctx, source)
}
@function
async def example(source: dagger.Directory) -> None:
	return await (
		dag.firebase()
		.lint(source)
	)
@func()
async example(source: Directory): Promise<void> {
	return dag
		.firebase()
		.lint(source)
}