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@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2Entrypoint
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") |
| assets | Directory ! | - | Directory of assets to upload |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@b3469bf3e3d2ec5584b4ec62b33b0dc6243ae5c2 call \
--token env:MYSECRET --repo string --assets DIR_PATHfunc (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-flattenfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| tag | String ! | - | 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 stringfunc (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 uploadfunc (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()
}