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@5b6d08d8437722295b6cff1f51853297bf04a737Entrypoint
Return Type
Ghrelease !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| token | Secret ! | - | GitHub token with permissions to upload release assets |
| repo | String ! | - | GitHub repository in owner/repo format (e.g., "papercomputeco/myproject") |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@5b6d08d8437722295b6cff1f51853297bf04a737 call \
--token env:MYSECRET --repo stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| build | Directory ! | - | 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_PATHfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| dist | Directory ! | - | Directory containing files to upload as release assets |
| tag | String ! | - | 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 stringfunc (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)
}