Dagger
Search

ghrelease

Upload takes a directory of build artifacts to a release.
Artifacts can optionally be flattened from an
// layout into a flat directory with files renamed
to -- (with .sha256 checksum extensions preserved).
For example "darwin/arm64/tapes" and "darwin/arm64/tapes.sha256" can be flattened
to "tapes-darwin-arm64" and "tapes-darwin-arm64.sha256".

Installation

dagger install github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2

Entrypoint

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
tokenSecret !-GitHub token with permissions to upload release assets
repoString !-GitHub repository in owner/repo format (e.g., "papercomputeco/myproject")
assetsDirectory !-Directory of assets to upload
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2 call \
 --token env:MYSECRET --repo string --assets DIR_PATH
func (m *MyModule) Example(token *dagger.Secret, repo string, assets *dagger.Directory) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token, repo, assets)
}
@function
def example(token: dagger.Secret, repo: str, assets: dagger.Directory) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token, repo, assets)
	)
@func()
example(token: Secret, repo: string, assets: Directory): Ghrelease {
	return dag
		.ghrelease(token, repo, assets)
}

Types

Ghrelease 🔗

Ghrelease manages github releases.

withFlatten() 🔗

WithFlatten enables flattening of the assets directory before upload. When chained, the // directory structure is collapsed into a flat directory with files renamed to -- (or --.sha256 for checksum files).

Return Type
Ghrelease !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2 call \
 --token env:MYSECRET --repo string --assets DIR_PATH with-flatten
func (m *MyModule) Example(token *dagger.Secret, repo string, assets *dagger.Directory) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token, repo, assets).
			WithFlatten()
}
@function
def example(token: dagger.Secret, repo: str, assets: dagger.Directory) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token, repo, assets)
		.with_flatten()
	)
@func()
example(token: Secret, repo: string, assets: Directory): Ghrelease {
	return dag
		.ghrelease(token, repo, assets)
		.withFlatten()
}

withTag() 🔗

WithTag stores the release tag for upload.

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
tagString !-Release tag to upload assets to (e.g., "nightly", "v1.0.0")
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2 call \
 --token env:MYSECRET --repo string --assets DIR_PATH with-tag --tag string
func (m *MyModule) Example(token *dagger.Secret, repo string, assets *dagger.Directory, tag string) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token, repo, assets).
			WithTag(tag)
}
@function
def example(token: dagger.Secret, repo: str, assets: dagger.Directory, tag: str) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token, repo, assets)
		.with_tag(tag)
	)
@func()
example(token: Secret, repo: string, assets: Directory, tag: string): Ghrelease {
	return dag
		.ghrelease(token, repo, assets)
		.withTag(tag)
}

upload() 🔗

Upload uploads all assets to a GitHub release. If WithFlatten was chained, the assets are flattened first. The tag must have been set via WithTag before calling Upload.

Return Type
Void !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2 call \
 --token env:MYSECRET --repo string --assets DIR_PATH upload
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, repo string, assets *dagger.Directory)   {
	return dag.
			Ghrelease(token, repo, assets).
			Upload(ctx)
}
@function
async def example(token: dagger.Secret, repo: str, assets: dagger.Directory) -> None:
	return await (
		dag.ghrelease(token, repo, assets)
		.upload()
	)
@func()
async example(token: Secret, repo: string, assets: Directory): Promise<void> {
	return dag
		.ghrelease(token, repo, assets)
		.upload()
}