Dagger
Search

ghrelease

This module takes a directory of build artifacts organized by OS and architecture
(e.g., //) and uploads them to a GitHub release.
Files are renamed to include the OS and architecture in their name
(e.g., --), and .sha256 checksum files are handled
so the extension stays at the end (e.g., --.sha256).

Installation

dagger install github.com/papercomputeco/daggerverse/ghrelease@5b6d08d8437722295b6cff1f51853297bf04a737

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")
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@5b6d08d8437722295b6cff1f51853297bf04a737 call \
 --token env:MYSECRET --repo string
func (m *MyModule) Example(token *dagger.Secret, repo string) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token, repo)
}
@function
def example(token: dagger.Secret, repo: str) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token, repo)
	)
@func()
example(token: Secret, repo: string): Ghrelease {
	return dag
		.ghrelease(token, repo)
}

Types

Ghrelease 🔗

Ghrelease uploads build artifacts to GitHub releases.

flatten() 🔗

Flatten takes a build artifact directory organized as // and returns a flat directory with files renamed to -- (or --.sha256 for checksum files).

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
buildDirectory !-Directory containing build artifacts organized as <os>/<arch>/<filename>
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@5b6d08d8437722295b6cff1f51853297bf04a737 call \
 --token env:MYSECRET --repo string flatten --build DIR_PATH
func (m *MyModule) Example(token *dagger.Secret, repo string, build *dagger.Directory) *dagger.Directory  {
	return dag.
			Ghrelease(token, repo).
			Flatten(build)
}
@function
def example(token: dagger.Secret, repo: str, build: dagger.Directory) -> dagger.Directory:
	return (
		dag.ghrelease(token, repo)
		.flatten(build)
	)
@func()
example(token: Secret, repo: string, build: Directory): Directory {
	return dag
		.ghrelease(token, repo)
		.flatten(build)
}

upload() 🔗

Upload uploads all files in the given directory to a GitHub release. The directory should be flat (no subdirectories) — use Flatten first if you need to rename build artifacts from an // layout.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
distDirectory !-Directory containing files to upload as release assets
tagString !-Release tag to upload assets to (e.g., "nightly", "v1.0.0")
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@5b6d08d8437722295b6cff1f51853297bf04a737 call \
 --token env:MYSECRET --repo string upload --dist DIR_PATH --tag string
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, repo string, dist *dagger.Directory, tag string)   {
	return dag.
			Ghrelease(token, repo).
			Upload(ctx, dist, tag)
}
@function
async def example(token: dagger.Secret, repo: str, dist: dagger.Directory, tag: str) -> None:
	return await (
		dag.ghrelease(token, repo)
		.upload(dist, tag)
	)
@func()
async example(token: Secret, repo: string, dist: Directory, tag: string): Promise<void> {
	return dag
		.ghrelease(token, repo)
		.upload(dist, tag)
}