Dagger
Search

rush-delivery

workflows. It owns the release path from source acquisition through detect,
validate, build, package, package release, and deploy while keeping
project-specific behavior in metadata.

Installation

dagger install github.com/BootstrapLaboratory/rush-delivery@v0.7.0

Entrypoint

Return Type
RushDelivery
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
func (m *MyModule) Example() *dagger.RushDelivery  {
	return dag.
			RushDelivery()
}
@function
def example() -> dagger.RushDelivery:
	return (
		dag.rush_delivery()
	)
@func()
example(): RushDelivery {
	return dag
		.rushDelivery()
}

Types

RushDelivery 🔗

Repeatable release workflows for Rush monorepos.

ping() 🔗

Returns a simple marker proving the Dagger module is callable.

Return Type
String !
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 ping
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			RushDelivery().
			Ping(ctx)
}
@function
async def example() -> str:
	return await (
		dag.rush_delivery()
		.ping()
	)
@func()
async example(): Promise<string> {
	return dag
		.rushDelivery()
		.ping()
}

selfCheck() 🔗

Runs the framework’s local typecheck and unit tests.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
moduleSourceDirectory -No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 self-check
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			RushDelivery().
			SelfCheck(ctx)
}
@function
async def example() -> str:
	return await (
		dag.rush_delivery()
		.self_check()
	)
@func()
async example(): Promise<string> {
	return dag
		.rushDelivery()
		.selfCheck()
}

detect() 🔗

Computes the canonical CI plan JSON for detect/package/deploy handoff.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
eventNameString !"push"No description provided
forceTargetsJsonString !"[]"No description provided
prBaseShaString !""No description provided
deployTagPrefixString !"deploy/prod"No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 detect --repo DIR_PATH --event-name string --force-targets-json string --pr-base-sha string --deploy-tag-prefix string
func (m *MyModule) Example(ctx context.Context, repo *dagger.Directory, eventName string, forceTargetsJson string, prBaseSha string, deployTagPrefix string) string  {
	return dag.
			RushDelivery().
			Detect(ctx, repo, eventName, forceTargetsJson, prBaseSha, deployTagPrefix)
}
@function
async def example(repo: dagger.Directory, event_name: str, force_targets_json: str, pr_base_sha: str, deploy_tag_prefix: str) -> str:
	return await (
		dag.rush_delivery()
		.detect(repo, event_name, force_targets_json, pr_base_sha, deploy_tag_prefix)
	)
@func()
async example(repo: Directory, eventName: string, forceTargetsJson: string, prBaseSha: string, deployTagPrefix: string): Promise<string> {
	return dag
		.rushDelivery()
		.detect(repo, eventName, forceTargetsJson, prBaseSha, deployTagPrefix)
}

describeReleaseTargets() 🔗

Validates and normalizes a release target selection for future planning work.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
releaseTargetsJsonString !"[]"No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 describe-release-targets --release-targets-json string
func (m *MyModule) Example(ctx context.Context, releaseTargetsJson string) string  {
	return dag.
			RushDelivery().
			DescribeReleaseTargets(ctx, releaseTargetsJson)
}
@function
async def example(release_targets_json: str) -> str:
	return await (
		dag.rush_delivery()
		.describe_release_targets(release_targets_json)
	)
@func()
async example(releaseTargetsJson: string): Promise<string> {
	return dag
		.rushDelivery()
		.describeReleaseTargets(releaseTargetsJson)
}

buildDeployTargets() 🔗

Runs the generic Rush build stage for deploy targets selected by ci-plan.json.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
ciPlanFileFile !-No description provided
deployEnvFileFile -No description provided
dryRunBoolean !falseNo description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 build-deploy-targets --repo DIR_PATH --ci-plan-file file:path --dry-run boolean
func (m *MyModule) Example(repo *dagger.Directory, ciPlanFile *dagger.File, dryRun bool) *dagger.Directory  {
	return dag.
			RushDelivery().
			BuildDeployTargets(repo, ciPlanFile, dryRun)
}
@function
def example(repo: dagger.Directory, ci_plan_file: dagger.File, dry_run: bool) -> dagger.Directory:
	return (
		dag.rush_delivery()
		.build_deploy_targets(repo, ci_plan_file, dry_run)
	)
@func()
example(repo: Directory, ciPlanFile: File, dryRun: boolean): Directory {
	return dag
		.rushDelivery()
		.buildDeployTargets(repo, ciPlanFile, dryRun)
}

packageDeployTargets() 🔗

Materializes deploy package artifacts for deploy targets selected by ci-plan.json.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
ciPlanFileFile !-No description provided
artifactPrefixString !"deploy-target"No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 package-deploy-targets --repo DIR_PATH --ci-plan-file file:path --artifact-prefix string
func (m *MyModule) Example(repo *dagger.Directory, ciPlanFile *dagger.File, artifactPrefix string) *dagger.Directory  {
	return dag.
			RushDelivery().
			PackageDeployTargets(repo, ciPlanFile, artifactPrefix)
}
@function
def example(repo: dagger.Directory, ci_plan_file: dagger.File, artifact_prefix: str) -> dagger.Directory:
	return (
		dag.rush_delivery()
		.package_deploy_targets(repo, ci_plan_file, artifact_prefix)
	)
@func()
example(repo: Directory, ciPlanFile: File, artifactPrefix: string): Directory {
	return dag
		.rushDelivery()
		.packageDeployTargets(repo, ciPlanFile, artifactPrefix)
}

buildAndPackageDeployTargets() 🔗

Runs build and package as separate stages while exporting the final packaged workspace once.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
ciPlanFileFile !-No description provided
artifactPrefixString !"deploy-target"No description provided
deployEnvFileFile -No description provided
dryRunBoolean !falseNo description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 build-and-package-deploy-targets --repo DIR_PATH --ci-plan-file file:path --artifact-prefix string --dry-run boolean
func (m *MyModule) Example(repo *dagger.Directory, ciPlanFile *dagger.File, artifactPrefix string, dryRun bool) *dagger.Directory  {
	return dag.
			RushDelivery().
			BuildAndPackageDeployTargets(repo, ciPlanFile, artifactPrefix, dryRun)
}
@function
def example(repo: dagger.Directory, ci_plan_file: dagger.File, artifact_prefix: str, dry_run: bool) -> dagger.Directory:
	return (
		dag.rush_delivery()
		.build_and_package_deploy_targets(repo, ci_plan_file, artifact_prefix, dry_run)
	)
@func()
example(repo: Directory, ciPlanFile: File, artifactPrefix: string, dryRun: boolean): Directory {
	return dag
		.rushDelivery()
		.buildAndPackageDeployTargets(repo, ciPlanFile, artifactPrefix, dryRun)
}

deployRelease() 🔗

Executes the release plan in wave order, applying generic target runtime handling in parallel within each wave.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
gitShaString !-No description provided
releaseTargetsJsonString !"[]"No description provided
environmentString !"prod"No description provided
dryRunBoolean !trueNo description provided
deployEnvFileFile -No description provided
packageManifestFileFile -No description provided
hostWorkspaceDirString !""No description provided
toolchainImageProviderString !"off"No description provided
toolchainImagePolicyString !"lazy"No description provided
dockerSocketSocket -No description provided
runtimeFilesDirectory -No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, repo *dagger.Directory, gitSha string, releaseTargetsJson string, environment string, dryRun bool, hostWorkspaceDir string, toolchainImageProvider string, toolchainImagePolicy string) string  {
	return dag.
			RushDelivery().
			DeployRelease(ctx, repo, gitSha, releaseTargetsJson, environment, dryRun, hostWorkspaceDir, toolchainImageProvider, toolchainImagePolicy)
}
@function
async def example(repo: dagger.Directory, git_sha: str, release_targets_json: str, environment: str, dry_run: bool, host_workspace_dir: str, toolchain_image_provider: str, toolchain_image_policy: str) -> str:
	return await (
		dag.rush_delivery()
		.deploy_release(repo, git_sha, release_targets_json, environment, dry_run, host_workspace_dir, toolchain_image_provider, toolchain_image_policy)
	)
@func()
async example(repo: Directory, gitSha: string, releaseTargetsJson: string, environment: string, dryRun: boolean, hostWorkspaceDir: string, toolchainImageProvider: string, toolchainImagePolicy: string): Promise<string> {
	return dag
		.rushDelivery()
		.deployRelease(repo, gitSha, releaseTargetsJson, environment, dryRun, hostWorkspaceDir, toolchainImageProvider, toolchainImagePolicy)
}

validateMetadataContract() 🔗

Validates cross-file Dagger metadata contracts before running release stages.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
repoDirectory !-No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 validate-metadata-contract --repo DIR_PATH
func (m *MyModule) Example(ctx context.Context, repo *dagger.Directory) string  {
	return dag.
			RushDelivery().
			ValidateMetadataContract(ctx, repo)
}
@function
async def example(repo: dagger.Directory) -> str:
	return await (
		dag.rush_delivery()
		.validate_metadata_contract(repo)
	)
@func()
async example(repo: Directory): Promise<string> {
	return dag
		.rushDelivery()
		.validateMetadataContract(repo)
}

workflow() 🔗

Runs the deploy-oriented workflow as one Dagger composition: detect, build, package, then deploy.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
gitShaString !-No description provided
eventNameString !"push"No description provided
forceTargetsJsonString !"[]"No description provided
prBaseShaString !""No description provided
deployTagPrefixString !"deploy/prod"No description provided
artifactPrefixString !"deploy-target"No description provided
environmentString !"prod"No description provided
dryRunBoolean !trueNo description provided
workflowEnvFileFile -No description provided
deployEnvFileFile -No description provided
releaseEnvFileFile -No description provided
releaseTargetsJsonString !"[]"No description provided
hostWorkspaceDirString !""No description provided
toolchainImageProviderString !"off"No description provided
toolchainImagePolicyString !"lazy"No description provided
rushCacheProviderString !"off"No description provided
rushCachePolicyString !"lazy"No description provided
sourceModeString !"local_copy"No description provided
sourceRepositoryUrlString !""No description provided
sourceRefString !""No description provided
sourceAuthTokenEnvString !""No description provided
sourceAuthUsernameString !""No description provided
dockerSocketSocket -No description provided
repoDirectory -No description provided
runtimeFilesDirectory -No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, gitSha string, eventName string, forceTargetsJson string, prBaseSha string, deployTagPrefix string, artifactPrefix string, environment string, dryRun bool, releaseTargetsJson string, hostWorkspaceDir string, toolchainImageProvider string, toolchainImagePolicy string, rushCacheProvider string, rushCachePolicy string, sourceMode string, sourceRepositoryUrl string, sourceRef string, sourceAuthTokenEnv string, sourceAuthUsername string) string  {
	return dag.
			RushDelivery().
			Workflow(ctx, gitSha, eventName, forceTargetsJson, prBaseSha, deployTagPrefix, artifactPrefix, environment, dryRun, releaseTargetsJson, hostWorkspaceDir, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}
@function
async def example(git_sha: str, event_name: str, force_targets_json: str, pr_base_sha: str, deploy_tag_prefix: str, artifact_prefix: str, environment: str, dry_run: bool, release_targets_json: str, host_workspace_dir: str, toolchain_image_provider: str, toolchain_image_policy: str, rush_cache_provider: str, rush_cache_policy: str, source_mode: str, source_repository_url: str, source_ref: str, source_auth_token_env: str, source_auth_username: str) -> str:
	return await (
		dag.rush_delivery()
		.workflow(git_sha, event_name, force_targets_json, pr_base_sha, deploy_tag_prefix, artifact_prefix, environment, dry_run, release_targets_json, host_workspace_dir, toolchain_image_provider, toolchain_image_policy, rush_cache_provider, rush_cache_policy, source_mode, source_repository_url, source_ref, source_auth_token_env, source_auth_username)
	)
@func()
async example(gitSha: string, eventName: string, forceTargetsJson: string, prBaseSha: string, deployTagPrefix: string, artifactPrefix: string, environment: string, dryRun: boolean, releaseTargetsJson: string, hostWorkspaceDir: string, toolchainImageProvider: string, toolchainImagePolicy: string, rushCacheProvider: string, rushCachePolicy: string, sourceMode: string, sourceRepositoryUrl: string, sourceRef: string, sourceAuthTokenEnv: string, sourceAuthUsername: string): Promise<string> {
	return dag
		.rushDelivery()
		.workflow(gitSha, eventName, forceTargetsJson, prBaseSha, deployTagPrefix, artifactPrefix, environment, dryRun, releaseTargetsJson, hostWorkspaceDir, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}

validate() 🔗

Runs Dagger-owned pull-request validation for affected Rush projects.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
eventNameString !"pull_request"No description provided
prBaseShaString !""No description provided
validateTargetsJsonString !"[]"No description provided
gitShaString !""No description provided
deployEnvFileFile -No description provided
toolchainImageProviderString !"off"No description provided
toolchainImagePolicyString !"pull-or-build"No description provided
rushCacheProviderString !"off"No description provided
rushCachePolicyString !"pull-or-build"No description provided
sourceModeString !"local_copy"No description provided
sourceRepositoryUrlString !""No description provided
sourceRefString !""No description provided
sourceAuthTokenEnvString !""No description provided
sourceAuthUsernameString !""No description provided
repoDirectory -No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 validate --event-name string --pr-base-sha string --validate-targets-json string --git-sha string --toolchain-image-provider string --toolchain-image-policy string --rush-cache-provider string --rush-cache-policy string --source-mode string --source-repository-url string --source-ref string --source-auth-token-env string --source-auth-username string
func (m *MyModule) Example(ctx context.Context, eventName string, prBaseSha string, validateTargetsJson string, gitSha string, toolchainImageProvider string, toolchainImagePolicy string, rushCacheProvider string, rushCachePolicy string, sourceMode string, sourceRepositoryUrl string, sourceRef string, sourceAuthTokenEnv string, sourceAuthUsername string) string  {
	return dag.
			RushDelivery().
			Validate(ctx, eventName, prBaseSha, validateTargetsJson, gitSha, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}
@function
async def example(event_name: str, pr_base_sha: str, validate_targets_json: str, git_sha: str, toolchain_image_provider: str, toolchain_image_policy: str, rush_cache_provider: str, rush_cache_policy: str, source_mode: str, source_repository_url: str, source_ref: str, source_auth_token_env: str, source_auth_username: str) -> str:
	return await (
		dag.rush_delivery()
		.validate(event_name, pr_base_sha, validate_targets_json, git_sha, toolchain_image_provider, toolchain_image_policy, rush_cache_provider, rush_cache_policy, source_mode, source_repository_url, source_ref, source_auth_token_env, source_auth_username)
	)
@func()
async example(eventName: string, prBaseSha: string, validateTargetsJson: string, gitSha: string, toolchainImageProvider: string, toolchainImagePolicy: string, rushCacheProvider: string, rushCachePolicy: string, sourceMode: string, sourceRepositoryUrl: string, sourceRef: string, sourceAuthTokenEnv: string, sourceAuthUsername: string): Promise<string> {
	return dag
		.rushDelivery()
		.validate(eventName, prBaseSha, validateTargetsJson, gitSha, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}

releasePackages() 🔗

Runs the package release/versioning flow from release metadata.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
gitShaString !""No description provided
dryRunBoolean !trueNo description provided
releaseEnvFileFile -No description provided
toolchainImageProviderString !"off"No description provided
toolchainImagePolicyString !"lazy"No description provided
rushCacheProviderString !"off"No description provided
rushCachePolicyString !"lazy"No description provided
sourceModeString !"local_copy"No description provided
sourceRepositoryUrlString !""No description provided
sourceRefString !""No description provided
sourceAuthTokenEnvString !""No description provided
sourceAuthUsernameString !""No description provided
repoDirectory -No description provided
Example
dagger -m github.com/BootstrapLaboratory/rush-delivery@8e48c1b30b66523c06001a9e3f2928bc0216756c call \
 release-packages --git-sha string --dry-run boolean --toolchain-image-provider string --toolchain-image-policy string --rush-cache-provider string --rush-cache-policy string --source-mode string --source-repository-url string --source-ref string --source-auth-token-env string --source-auth-username string
func (m *MyModule) Example(ctx context.Context, gitSha string, dryRun bool, toolchainImageProvider string, toolchainImagePolicy string, rushCacheProvider string, rushCachePolicy string, sourceMode string, sourceRepositoryUrl string, sourceRef string, sourceAuthTokenEnv string, sourceAuthUsername string) string  {
	return dag.
			RushDelivery().
			ReleasePackages(ctx, gitSha, dryRun, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}
@function
async def example(git_sha: str, dry_run: bool, toolchain_image_provider: str, toolchain_image_policy: str, rush_cache_provider: str, rush_cache_policy: str, source_mode: str, source_repository_url: str, source_ref: str, source_auth_token_env: str, source_auth_username: str) -> str:
	return await (
		dag.rush_delivery()
		.release_packages(git_sha, dry_run, toolchain_image_provider, toolchain_image_policy, rush_cache_provider, rush_cache_policy, source_mode, source_repository_url, source_ref, source_auth_token_env, source_auth_username)
	)
@func()
async example(gitSha: string, dryRun: boolean, toolchainImageProvider: string, toolchainImagePolicy: string, rushCacheProvider: string, rushCachePolicy: string, sourceMode: string, sourceRepositoryUrl: string, sourceRef: string, sourceAuthTokenEnv: string, sourceAuthUsername: string): Promise<string> {
	return dag
		.rushDelivery()
		.releasePackages(gitSha, dryRun, toolchainImageProvider, toolchainImagePolicy, rushCacheProvider, rushCachePolicy, sourceMode, sourceRepositoryUrl, sourceRef, sourceAuthTokenEnv, sourceAuthUsername)
}