Dagger
Search

masterblaster

No long description provided.

Installation

dagger install github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa

Entrypoint

Return Type
Masterblaster !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -Project source directory.
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
func (m *MyModule) Example() *dagger.Masterblaster  {
	return dag.
			Masterblaster()
}
@function
def example() -> dagger.Masterblaster:
	return (
		dag.masterblaster()
	)
@func()
example(): Masterblaster {
	return dag
		.masterblaster()
}

Types

Masterblaster 🔗

test() 🔗

Test runs the tapes unit tests via “go test”

Return Type
String !
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 test
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Masterblaster().
			Test(ctx)
}
@function
async def example() -> str:
	return await (
		dag.masterblaster()
		.test()
	)
@func()
async example(): Promise<string> {
	return dag
		.masterblaster()
		.test()
}

build() 🔗

Build cross-compiles the mb binary for all supported Linux platforms and returns a directory containing the output binaries organized as {os}/{arch}/mb.

Darwin builds are excluded because the vz (Apple Virtualization.framework) dependency requires cgo with Objective-C and cannot be cross-compiled from Linux. Darwin artifacts are built on native Apple hardware via GitHub Actions.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
ldflagsString "-s -w"Linker flags for go build
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 build
func (m *MyModule) Example() *dagger.Directory  {
	return dag.
			Masterblaster().
			Build()
}
@function
def example() -> dagger.Directory:
	return (
		dag.masterblaster()
		.build()
	)
@func()
example(): Directory {
	return dag
		.masterblaster()
		.build()
}

buildRelease() 🔗

BuildRelease compiles versioned release binaries with embedded version info and generates SHA256 checksums for each artifact.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
versionString !-Version string of build
commitString !-Git commit SHA of build
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 build-release --version string --commit string
func (m *MyModule) Example(version string, commit string) *dagger.Directory  {
	return dag.
			Masterblaster().
			BuildRelease(version, commit)
}
@function
def example(version: str, commit: str) -> dagger.Directory:
	return (
		dag.masterblaster()
		.build_release(version, commit)
	)
@func()
example(version: string, commit: string): Directory {
	return dag
		.masterblaster()
		.buildRelease(version, commit)
}

releaseLatest() 🔗

ReleaseLatest builds versioned release binaries and uploads them to the bucket under both the version prefix and a “latest” prefix.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
versionString !-Version string (e.g., "v1.0.0")
commitString !-Git commit SHA
endpointSecret !-Bucket endpoint URL
bucketSecret !-Bucket name
accessKeyIdSecret !-Bucket access key ID
secretAccessKeySecret !-Bucket secret access key
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 release-latest --version string --commit string --endpoint env:MYSECRET --bucket env:MYSECRET --access-key-id env:MYSECRET --secret-access-key env:MYSECRET
func (m *MyModule) Example(version string, commit string, endpoint *dagger.Secret, bucket *dagger.Secret, accessKeyId *dagger.Secret, secretAccessKey *dagger.Secret) *dagger.Directory  {
	return dag.
			Masterblaster().
			ReleaseLatest(version, commit, endpoint, bucket, accessKeyId, secretAccessKey)
}
@function
def example(version: str, commit: str, endpoint: dagger.Secret, bucket: dagger.Secret, access_key_id: dagger.Secret, secret_access_key: dagger.Secret) -> dagger.Directory:
	return (
		dag.masterblaster()
		.release_latest(version, commit, endpoint, bucket, access_key_id, secret_access_key)
	)
@func()
example(version: string, commit: string, endpoint: Secret, bucket: Secret, accessKeyId: Secret, secretAccessKey: Secret): Directory {
	return dag
		.masterblaster()
		.releaseLatest(version, commit, endpoint, bucket, accessKeyId, secretAccessKey)
}

releaseNightly() 🔗

ReleaseNightly builds nightly release binaries and uploads them to the bucket under the “nightly” prefix.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
commitString !-Git commit SHA
endpointSecret !-Bucket endpoint URL
bucketSecret !-Bucket name
accessKeyIdSecret !-Bucket access key ID
secretAccessKeySecret !-Bucket secret access key
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 release-nightly --commit string --endpoint env:MYSECRET --bucket env:MYSECRET --access-key-id env:MYSECRET --secret-access-key env:MYSECRET
func (m *MyModule) Example(commit string, endpoint *dagger.Secret, bucket *dagger.Secret, accessKeyId *dagger.Secret, secretAccessKey *dagger.Secret) *dagger.Directory  {
	return dag.
			Masterblaster().
			ReleaseNightly(commit, endpoint, bucket, accessKeyId, secretAccessKey)
}
@function
def example(commit: str, endpoint: dagger.Secret, bucket: dagger.Secret, access_key_id: dagger.Secret, secret_access_key: dagger.Secret) -> dagger.Directory:
	return (
		dag.masterblaster()
		.release_nightly(commit, endpoint, bucket, access_key_id, secret_access_key)
	)
@func()
example(commit: string, endpoint: Secret, bucket: Secret, accessKeyId: Secret, secretAccessKey: Secret): Directory {
	return dag
		.masterblaster()
		.releaseNightly(commit, endpoint, bucket, accessKeyId, secretAccessKey)
}

uploadDarwinArtifacts() 🔗

UploadDarwinArtifacts uploads the pre-built darwin/arm64 mb binary and its checksum to the S3 bucket. Each file is uploaded individually via UploadFile with the appropriate prefix (e.g., “v1.0.0/darwin/arm64”, “latest/darwin/arm64”, or “nightly/darwin/arm64”).

This is called from GitHub Actions after the native macOS build to place darwin artifacts alongside the Linux artifacts already uploaded by Dagger.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
binaryFile !-The darwin/arm64 mb binary
checksumFile !-The darwin/arm64 mb.sha256 checksum file
prefixes[String ! ] !-Bucket path prefixes to upload under (e.g., ["v1.0.0/darwin/arm64", "latest/darwin/arm64"])
endpointSecret !-Bucket endpoint URL
bucketSecret !-Bucket name
accessKeyIdSecret !-Bucket access key ID
secretAccessKeySecret !-Bucket secret access key
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 upload-darwin-artifacts --binary file:path --checksum file:path --prefixes string1 --prefixes string2 --endpoint env:MYSECRET --bucket env:MYSECRET --access-key-id env:MYSECRET --secret-access-key env:MYSECRET
func (m *MyModule) Example(ctx context.Context, binary *dagger.File, checksum *dagger.File, prefixes []string, endpoint *dagger.Secret, bucket *dagger.Secret, accessKeyId *dagger.Secret, secretAccessKey *dagger.Secret)   {
	return dag.
			Masterblaster().
			UploadDarwinArtifacts(ctx, binary, checksum, prefixes, endpoint, bucket, accessKeyId, secretAccessKey)
}
@function
async def example(binary: dagger.File, checksum: dagger.File, prefixes: List[str], endpoint: dagger.Secret, bucket: dagger.Secret, access_key_id: dagger.Secret, secret_access_key: dagger.Secret) -> None:
	return await (
		dag.masterblaster()
		.upload_darwin_artifacts(binary, checksum, prefixes, endpoint, bucket, access_key_id, secret_access_key)
	)
@func()
async example(binary: File, checksum: File, prefixes: string[], endpoint: Secret, bucket: Secret, accessKeyId: Secret, secretAccessKey: Secret): Promise<void> {
	return dag
		.masterblaster()
		.uploadDarwinArtifacts(binary, checksum, prefixes, endpoint, bucket, accessKeyId, secretAccessKey)
}

uploadInstallSh() 🔗

UploadInstallScript uploads the install.sh script to the root of the bucket.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
endpointSecret !-Bucket endpoint URL
bucketSecret !-Bucket name
accessKeyIdSecret !-Bucket access key ID
secretAccessKeySecret !-Bucket secret access key
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 upload-install-sh --endpoint env:MYSECRET --bucket env:MYSECRET --access-key-id env:MYSECRET --secret-access-key env:MYSECRET
func (m *MyModule) Example(ctx context.Context, endpoint *dagger.Secret, bucket *dagger.Secret, accessKeyId *dagger.Secret, secretAccessKey *dagger.Secret) string  {
	return dag.
			Masterblaster().
			UploadInstallSh(ctx, endpoint, bucket, accessKeyId, secretAccessKey)
}
@function
async def example(endpoint: dagger.Secret, bucket: dagger.Secret, access_key_id: dagger.Secret, secret_access_key: dagger.Secret) -> str:
	return await (
		dag.masterblaster()
		.upload_install_sh(endpoint, bucket, access_key_id, secret_access_key)
	)
@func()
async example(endpoint: Secret, bucket: Secret, accessKeyId: Secret, secretAccessKey: Secret): Promise<string> {
	return dag
		.masterblaster()
		.uploadInstallSh(endpoint, bucket, accessKeyId, secretAccessKey)
}

golangcilint() 🔗

Return Type
Golangcilint !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -The Go source directory to lint.
configFile -An optional golangci-lint configuration file (.golangci.yml) that replaces the built-in opinionated defaults.
envVars[String ! ] -Optional environment variables to set in the lint container. Each entry must be in "KEY=VALUE" format (e.g. "GOEXPERIMENT=rangefunc").
baseCtrContainer -Optional base container with golangci-lint already installed. When provided it replaces the default golangci-lint image, allowing callers to supply extra system libraries or tooling (e.g. sqlite-dev). The container must have golangci-lint on PATH.
Example
dagger -m github.com/papercomputeco/masterblaster@b8a5fc07df6ef85b8bfaf3b6aec2043d847154aa call \
 golangcilint
func (m *MyModule) Example() *dagger.Golangcilint  {
	return dag.
			Masterblaster().
			Golangcilint()
}
@function
def example() -> dagger.Golangcilint:
	return (
		dag.masterblaster()
		.golangcilint()
	)
@func()
example(): Golangcilint {
	return dag
		.masterblaster()
		.golangcilint()
}