golang
Provides build, lint (golangci-lint), and vulnerability scanning (govulncheck)functions with integrated caching for fast, repeatable CI workflows.
Installation
dagger install github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cacEntrypoint
Return Type
Golang !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | Source directory of the Go project |
| container | Container | - | Go toolchain container image |
| golangciLint | String ! | "2.10.1" | golangci-lint version to use |
| govulncheck | String ! | "1.1.4" | govulncheck version to use |
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck stringfunc (m *MyModule) Example(golangciLint string, govulncheck string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck)
}@function
def example(golangci_lint: str, govulncheck: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
)@func()
example(golangciLint: string, govulncheck: string): Golang {
return dag
.golang(golangciLint, govulncheck)
}Types
Golang 🔗
container() 🔗
Return Type
Container ! Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string containerfunc (m *MyModule) Example(golangciLint string, govulncheck string) *dagger.Container {
return dag.
Golang(golangciLint, govulncheck).
Container()
}@function
def example(golangci_lint: str, govulncheck: str) -> dagger.Container:
return (
dag.golang(golangci_lint, govulncheck)
.container()
)@func()
example(golangciLint: string, govulncheck: string): Container {
return dag
.golang(golangciLint, govulncheck)
.container()
}build() 🔗
Build compiles the Go project and places the output binary in /out/.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| args | [String ! ] | - | Additional arguments passed to `go build` (e.g. `-tags netgo ./cmd/myapp`) |
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string buildfunc (m *MyModule) Example(golangciLint string, govulncheck string) *dagger.Directory {
return dag.
Golang(golangciLint, govulncheck).
Build()
}@function
def example(golangci_lint: str, govulncheck: str) -> dagger.Directory:
return (
dag.golang(golangci_lint, govulncheck)
.build()
)@func()
example(golangciLint: string, govulncheck: string): Directory {
return dag
.golang(golangciLint, govulncheck)
.build()
}lint() 🔗
Lint runs golangci-Lint on the source code
Return Type
Void ! Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string lintfunc (m *MyModule) Example(ctx context.Context, golangciLint string, govulncheck string) {
return dag.
Golang(golangciLint, govulncheck).
Lint(ctx)
}@function
async def example(golangci_lint: str, govulncheck: str) -> None:
return await (
dag.golang(golangci_lint, govulncheck)
.lint()
)@func()
async example(golangciLint: string, govulncheck: string): Promise<void> {
return dag
.golang(golangciLint, govulncheck)
.lint()
}vulnCheck() 🔗
VulnCheck runs govulncheck on the source code
Return Type
Void ! Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string vuln-checkfunc (m *MyModule) Example(ctx context.Context, golangciLint string, govulncheck string) {
return dag.
Golang(golangciLint, govulncheck).
VulnCheck(ctx)
}@function
async def example(golangci_lint: str, govulncheck: str) -> None:
return await (
dag.golang(golangci_lint, govulncheck)
.vuln_check()
)@func()
async example(golangciLint: string, govulncheck: string): Promise<void> {
return dag
.golang(golangciLint, govulncheck)
.vulnCheck()
}withCgoDisabled() 🔗
WithCGODisabled disables CGO in the container.
Return Type
Golang ! Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string with-cgo-disabledfunc (m *MyModule) Example(golangciLint string, govulncheck string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck).
WithCgoDisabled()
}@function
def example(golangci_lint: str, govulncheck: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
.with_cgo_disabled()
)@func()
example(golangciLint: string, govulncheck: string): Golang {
return dag
.golang(golangciLint, govulncheck)
.withCgoDisabled()
}withCgoEnabled() 🔗
WithCGOEnabled enables CGO in the container.
Return Type
Golang ! Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string with-cgo-enabledfunc (m *MyModule) Example(golangciLint string, govulncheck string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck).
WithCgoEnabled()
}@function
def example(golangci_lint: str, govulncheck: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
.with_cgo_enabled()
)@func()
example(golangciLint: string, govulncheck: string): Golang {
return dag
.golang(golangciLint, govulncheck)
.withCgoEnabled()
}withEnv() 🔗
WithEnv sets an environment variable in the container.
Return Type
Golang !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| value | String ! | - | No description provided |
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string with-env --name string --value stringfunc (m *MyModule) Example(golangciLint string, govulncheck string, name string, value string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck).
WithEnv(name, value)
}@function
def example(golangci_lint: str, govulncheck: str, name: str, value: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
.with_env(name, value)
)@func()
example(golangciLint: string, govulncheck: string, name: string, value: string): Golang {
return dag
.golang(golangciLint, govulncheck)
.withEnv(name, value)
}withGolangciLint() 🔗
WithGolangciLint installs the specified version of golangci-lint in the container.
Return Type
Golang !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| version | String ! | - | No description provided |
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string with-golangci-lint --version stringfunc (m *MyModule) Example(golangciLint string, govulncheck string, version string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck).
WithGolangciLint(version)
}@function
def example(golangci_lint: str, govulncheck: str, version: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
.with_golangci_lint(version)
)@func()
example(golangciLint: string, govulncheck: string, version: string): Golang {
return dag
.golang(golangciLint, govulncheck)
.withGolangciLint(version)
}withGovulncheck() 🔗
WithGovulncheck installs the specified version of govulncheck in the container.
Return Type
Golang !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| version | String ! | - | No description provided |
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
--golangci-lint string --govulncheck string with-govulncheck --version stringfunc (m *MyModule) Example(golangciLint string, govulncheck string, version string) *dagger.Golang {
return dag.
Golang(golangciLint, govulncheck).
WithGovulncheck(version)
}@function
def example(golangci_lint: str, govulncheck: str, version: str) -> dagger.Golang:
return (
dag.golang(golangci_lint, govulncheck)
.with_govulncheck(version)
)@func()
example(golangciLint: string, govulncheck: string, version: string): Golang {
return dag
.golang(golangciLint, govulncheck)
.withGovulncheck(version)
}