go
Copyright © 2024 Patrick Hermann patrick.hermann@sva.de
Installation
dagger install github.com/stuttgart-things/dagger/go@v0.10.2Entrypoint
Return Type
Go !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| goLangContainer | Container | - | golang container It need contain golang |
| koContainer | Container | - | No description provided |
| goLangVersion | String | "1.23.6" | No description provided |
| src | Directory | - | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
func (m *MyModule) Example() *dagger.Go {
return dag.
Go()
}@function
def example() -> dagger.Go:
return (
dag.go()
)@func()
example(): Go {
return dag
.go()
}Types
Go 🔗
src() 🔗
Return Type
Directory ! Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
srcfunc (m *MyModule) Example() *dagger.Directory {
return dag.
Go().
Src()
}@function
def example() -> dagger.Directory:
return (
dag.go()
.src()
)@func()
example(): Directory {
return dag
.go()
.src()
}goLangContainer() 🔗
Return Type
Container ! Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
go-lang-containerfunc (m *MyModule) Example() *dagger.Container {
return dag.
Go().
GoLangContainer()
}@function
def example() -> dagger.Container:
return (
dag.go()
.go_lang_container()
)@func()
example(): Container {
return dag
.go()
.goLangContainer()
}koContainer() 🔗
Return Type
Container ! Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
ko-containerfunc (m *MyModule) Example() *dagger.Container {
return dag.
Go().
KoContainer()
}@function
def example() -> dagger.Container:
return (
dag.go()
.ko_container()
)@func()
example(): Container {
return dag
.go()
.koContainer()
}test() 🔗
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| goVersion | String ! | - | Go version to use for testing |
| testArg | String | "./..." | Arguments for `go test` |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
test --src DIR_PATH --go-version stringfunc (m *MyModule) Example(ctx context.Context, src *dagger.Directory, goVersion string) string {
return dag.
Go().
Test(ctx, src, goVersion)
}@function
async def example(src: dagger.Directory, go_version: str) -> str:
return await (
dag.go()
.test(src, go_version)
)@func()
async example(src: Directory, goVersion: string): Promise<string> {
return dag
.go()
.test(src, goVersion)
}lint() 🔗
Lint runs the linter on the provided source code
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| timeout | String | "500s" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
lint --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.Container {
return dag.
Go().
Lint(src)
}@function
def example(src: dagger.Directory) -> dagger.Container:
return (
dag.go()
.lint(src)
)@func()
example(src: Directory): Container {
return dag
.go()
.lint(src)
}getGoLangContainer() 🔗
GetGoLangContainer returns the default image for golang
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| goVersion | String ! | - | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
get-go-lang-container --go-version stringfunc (m *MyModule) Example(goVersion string) *dagger.Container {
return dag.
Go().
GetGoLangContainer(goVersion)
}@function
def example(go_version: str) -> dagger.Container:
return (
dag.go()
.get_go_lang_container(go_version)
)@func()
example(goVersion: string): Container {
return dag
.go()
.getGoLangContainer(goVersion)
}getKoContainer() 🔗
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| koVersion | String | "v0.17.1" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
get-ko-containerfunc (m *MyModule) Example() *dagger.Container {
return dag.
Go().
GetKoContainer()
}@function
def example() -> dagger.Container:
return (
dag.go()
.get_ko_container()
)@func()
example(): Container {
return dag
.go()
.getKoContainer()
}runWorkflowEntryStage() 🔗
Return Type
File !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| lintTimeout | String | "500s" | No description provided |
| goVersion | String | "1.23.6" | No description provided |
| os | String | "linux" | No description provided |
| arch | String | "amd64" | No description provided |
| goMainFile | String | "main.go" | No description provided |
| binName | String | "main" | No description provided |
| ldflags | String | - | No description provided |
| secureGoVersion | String | "2.22.1" | No description provided |
| lintCanFail | Boolean | "false" | If true, linting can fail without stopping the workflow |
| testArg | String | "./..." | Arguments for `go test` |
| securityScanCanFail | Boolean | "false" | If true, security scan can fail without stopping the workflow |
| trivyScanCanFail | Boolean | "false" | If true, Trivy scan can fail without stopping the workflow |
| trivySeverity | String | "HIGH,CRITICAL" | Severity levels to include (e.g., "HIGH,CRITICAL") |
| trivyVersion | String | "0.59.1" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
run-workflow-entry-stage --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.File {
return dag.
Go().
RunWorkflowEntryStage(src)
}@function
def example(src: dagger.Directory) -> dagger.File:
return (
dag.go()
.run_workflow_entry_stage(src)
)@func()
example(src: Directory): File {
return dag
.go()
.runWorkflowEntryStage(src)
}koBuild() 🔗
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| tokenName | String | "GITHUB_TOKEN" | No description provided |
| token | Secret ! | - | No description provided |
| repo | String | "ko.local" | No description provided |
| buildArg | String | "." | No description provided |
| koVersion | String | "v0.17.1" | No description provided |
| push | String | "true" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
ko-build --src DIR_PATH --token env:MYSECRETfunc (m *MyModule) Example(ctx context.Context, src *dagger.Directory, token *dagger.Secret) string {
return dag.
Go().
KoBuild(ctx, src, token)
}@function
async def example(src: dagger.Directory, token: dagger.Secret) -> str:
return await (
dag.go()
.ko_build(src, token)
)@func()
async example(src: Directory, token: Secret): Promise<string> {
return dag
.go()
.koBuild(src, token)
}runWorkflowContainerStage() 🔗
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| tokenName | String | "GITHUB_TOKEN" | No description provided |
| token | Secret ! | - | No description provided |
| repo | String | "ko.local" | No description provided |
| buildArg | String | "." | No description provided |
| koVersion | String | "v0.17.1" | No description provided |
| push | String | "true" | No description provided |
| severityFilter | String | "HIGH,CRITICAL" | Comma-separated list of severities to filter (e.g., "HIGH,CRITICAL") |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
run-workflow-container-stage --src DIR_PATH --token env:MYSECRETfunc (m *MyModule) Example(ctx context.Context, src *dagger.Directory, token *dagger.Secret) string {
return dag.
Go().
RunWorkflowContainerStage(ctx, src, token)
}@function
async def example(src: dagger.Directory, token: dagger.Secret) -> str:
return await (
dag.go()
.run_workflow_container_stage(src, token)
)@func()
async example(src: Directory, token: Secret): Promise<string> {
return dag
.go()
.runWorkflowContainerStage(src, token)
}koBuildAndScan() 🔗
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| tokenName | String | "GITHUB_TOKEN" | No description provided |
| token | Secret ! | - | No description provided |
| repo | String | "ko.local" | No description provided |
| buildArg | String | "." | No description provided |
| koVersion | String | "v0.17.1" | No description provided |
| push | String | "true" | No description provided |
| severityFilter | String | "HIGH,CRITICAL" | Comma-separated list of severities to filter (e.g., "HIGH,CRITICAL") |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
ko-build-and-scan --src DIR_PATH --token env:MYSECRETfunc (m *MyModule) Example(ctx context.Context, src *dagger.Directory, token *dagger.Secret) string {
return dag.
Go().
KoBuildAndScan(ctx, src, token)
}@function
async def example(src: dagger.Directory, token: dagger.Secret) -> str:
return await (
dag.go()
.ko_build_and_scan(src, token)
)@func()
async example(src: Directory, token: Secret): Promise<string> {
return dag
.go()
.koBuildAndScan(src, token)
}securityScan() 🔗
Return Type
File !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| secureGoVersion | String | "2.22.1" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
security-scan --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.File {
return dag.
Go().
SecurityScan(src)
}@function
def example(src: dagger.Directory) -> dagger.File:
return (
dag.go()
.security_scan(src)
)@func()
example(src: Directory): File {
return dag
.go()
.securityScan(src)
}searchVulnerabilities() 🔗
SearchVulnerabilities parses the Trivy scan report and filters vulnerabilities by severity
Return Type
[String ! ] !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| scanOutput | String ! | - | The scan output as a string |
| severityFilter | String ! | - | Comma-separated list of severities to filter (e.g., "HIGH,CRITICAL") |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
search-vulnerabilities --scan-output string --severity-filter stringfunc (m *MyModule) Example(ctx context.Context, scanOutput string, severityFilter string) []string {
return dag.
Go().
SearchVulnerabilities(ctx, scanOutput, severityFilter)
}@function
async def example(scan_output: str, severity_filter: str) -> List[str]:
return await (
dag.go()
.search_vulnerabilities(scan_output, severity_filter)
)@func()
async example(scanOutput: string, severityFilter: string): Promise<string[]> {
return dag
.go()
.searchVulnerabilities(scanOutput, severityFilter)
}trivyScan() 🔗
Return Type
File !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| severity | String | "HIGH,CRITICAL" | Severity levels to include (e.g., "HIGH,CRITICAL") |
| trivyVersion | String | "0.59.1" | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
trivy-scan --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.File {
return dag.
Go().
TrivyScan(src)
}@function
def example(src: dagger.Directory) -> dagger.File:
return (
dag.go()
.trivy_scan(src)
)@func()
example(src: Directory): File {
return dag
.go()
.trivyScan(src)
}scanRemoteImage() 🔗
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| imageAddress | String ! | - | Remote image address (e.g., "ko.local/my-image:latest") |
| severityFilter | String ! | - | Comma-separated list of severities to filter (e.g., "HIGH,CRITICAL") |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
scan-remote-image --image-address string --severity-filter stringfunc (m *MyModule) Example(ctx context.Context, imageAddress string, severityFilter string) string {
return dag.
Go().
ScanRemoteImage(ctx, imageAddress, severityFilter)
}@function
async def example(image_address: str, severity_filter: str) -> str:
return await (
dag.go()
.scan_remote_image(image_address, severity_filter)
)@func()
async example(imageAddress: string, severityFilter: string): Promise<string> {
return dag
.go()
.scanRemoteImage(imageAddress, severityFilter)
}scanTarBallImage() 🔗
Lint runs the linter on the provided source code
Return Type
File !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
scan-tar-ball-image --file file:pathfunc (m *MyModule) Example(file *dagger.File) *dagger.File {
return dag.
Go().
ScanTarBallImage(file)
}@function
def example(file: dagger.File) -> dagger.File:
return (
dag.go()
.scan_tar_ball_image(file)
)@func()
example(file: File): File {
return dag
.go()
.scanTarBallImage(file)
}binary() 🔗
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| goVersion | String | "1.23.6" | No description provided |
| os | String | "linux" | No description provided |
| arch | String | "amd64" | No description provided |
| goMainFile | String | "main.go" | No description provided |
| binName | String | "main" | No description provided |
| ldflags | String | - | Add ldflags as an optional parameter |
Example
dagger -m github.com/stuttgart-things/dagger/go@53e74f1cb44910a37663784012ddd95a6c43f856 call \
binary --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.Directory {
return dag.
Go().
Binary(src)
}@function
def example(src: dagger.Directory) -> dagger.Directory:
return (
dag.go()
.binary(src)
)@func()
example(src: Directory): Directory {
return dag
.go()
.binary(src)
}build() 🔗
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| opts | BuildOpts ! | - | Use the struct for parameters |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(src *dagger.Directory, opts *dagger.GoBuildOpts) *dagger.Directory {
return dag.
Go().
Build(src, opts)
}@function
def example(src: dagger.Directory, opts: dagger.GoBuildOpts) -> dagger.Directory:
return (
dag.go()
.build(src, opts)
)@func()
example(src: Directory, opts: GoBuildOpts): Directory {
return dag
.go()
.build(src, opts)
}BuildOpts 🔗
goVersion() 🔗
Return Type
String ! Example
Function GoBuildOpts.goVersion is not accessible from the go moduleFunction GoBuildOpts.goVersion is not accessible from the go moduleFunction GoBuildOpts.goVersion is not accessible from the go moduleFunction GoBuildOpts.goVersion is not accessible from the go moduleos() 🔗
Return Type
String ! Example
Function GoBuildOpts.os is not accessible from the go moduleFunction GoBuildOpts.os is not accessible from the go moduleFunction GoBuildOpts.os is not accessible from the go moduleFunction GoBuildOpts.os is not accessible from the go modulearch() 🔗
Return Type
String ! Example
Function GoBuildOpts.arch is not accessible from the go moduleFunction GoBuildOpts.arch is not accessible from the go moduleFunction GoBuildOpts.arch is not accessible from the go moduleFunction GoBuildOpts.arch is not accessible from the go modulegoMainFile() 🔗
Return Type
String ! Example
Function GoBuildOpts.goMainFile is not accessible from the go moduleFunction GoBuildOpts.goMainFile is not accessible from the go moduleFunction GoBuildOpts.goMainFile is not accessible from the go moduleFunction GoBuildOpts.goMainFile is not accessible from the go modulebinName() 🔗
Return Type
String ! Example
Function GoBuildOpts.binName is not accessible from the go moduleFunction GoBuildOpts.binName is not accessible from the go moduleFunction GoBuildOpts.binName is not accessible from the go moduleFunction GoBuildOpts.binName is not accessible from the go moduleldflags() 🔗
Add this field for linker flags
Return Type
String ! Example
Function GoBuildOpts.ldflags is not accessible from the go moduleFunction GoBuildOpts.ldflags is not accessible from the go moduleFunction GoBuildOpts.ldflags is not accessible from the go moduleFunction GoBuildOpts.ldflags is not accessible from the go module