Dagger
Search

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@fd3662f8169fc78d2ef5851acd055259cceb4cac

Entrypoint

Return Type
Golang !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -Source directory of the Go project
containerContainer -Go toolchain container image
golangciLintString !"2.10.1"golangci-lint version to use
govulncheckString !"1.1.4"govulncheck version to use
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
 --golangci-lint string --govulncheck string
func (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 container
func (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
NameTypeDefault ValueDescription
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 build
func (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 lint
func (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-check
func (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-disabled
func (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-enabled
func (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
NameTypeDefault ValueDescription
nameString !-No description provided
valueString !-No description provided
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
 --golangci-lint string --govulncheck string with-env --name string --value string
func (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
NameTypeDefault ValueDescription
versionString !-No description provided
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
 --golangci-lint string --govulncheck string with-golangci-lint --version string
func (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
NameTypeDefault ValueDescription
versionString !-No description provided
Example
dagger -m github.com/bcachet/dagger/golang@fd3662f8169fc78d2ef5851acd055259cceb4cac call \
 --golangci-lint string --govulncheck string with-govulncheck --version string
func (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)
}