Dagger
Search

dagger-pipelines

Provides composable pipeline steps for .NET projects: restore, build, test,
pack, and NuGet publish. Each function can be called individually or chained
together via the `ci` function for a complete pipeline run.

Installation

dagger install github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158

Entrypoint

Return Type
DaggerPipelines
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
func (m *MyModule) Example() *dagger.DaggerPipelines  {
	return dag.
			DaggerPipelines()
}
@function
def example() -> dagger.DaggerPipelines:
	return (
		dag.dagger_pipelines()
	)
@func()
example(): DaggerPipelines {
	return dag
		.daggerPipelines()
}

Types

DaggerPipelines 🔗

restore() 🔗

Base .NET SDK container with source mounted and restored

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
dotnetVersionString !"8.0"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 restore --source DIR_PATH --solution string --dotnet-version string
func (m *MyModule) Example(source *dagger.Directory, solution string, dotnetVersion string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Restore(source, solution, dotnetVersion)
}
@function
def example(source: dagger.Directory, solution: str, dotnet_version: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.restore(source, solution, dotnet_version)
	)
@func()
example(source: Directory, solution: string, dotnetVersion: string): Container {
	return dag
		.daggerPipelines()
		.restore(source, solution, dotnetVersion)
}

build() 🔗

Build in Release configuration

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
dotnetVersionString !"8.0"No description provided
configurationString !"Release"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 build --source DIR_PATH --solution string --dotnet-version string --configuration string
func (m *MyModule) Example(source *dagger.Directory, solution string, dotnetVersion string, configuration string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Build(source, solution, dotnetVersion, configuration)
}
@function
def example(source: dagger.Directory, solution: str, dotnet_version: str, configuration: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.build(source, solution, dotnet_version, configuration)
	)
@func()
example(source: Directory, solution: string, dotnetVersion: string, configuration: string): Container {
	return dag
		.daggerPipelines()
		.build(source, solution, dotnetVersion, configuration)
}

test() 🔗

Run tests for a specific test project or the full solution

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
dotnetVersionString !"8.0"No description provided
configurationString !"Release"No description provided
testProjectString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 test --source DIR_PATH --solution string --dotnet-version string --configuration string --test-project string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, solution string, dotnetVersion string, configuration string, testProject string) string  {
	return dag.
			DaggerPipelines().
			Test(ctx, source, solution, dotnetVersion, configuration, testProject)
}
@function
async def example(source: dagger.Directory, solution: str, dotnet_version: str, configuration: str, test_project: str) -> str:
	return await (
		dag.dagger_pipelines()
		.test(source, solution, dotnet_version, configuration, test_project)
	)
@func()
async example(source: Directory, solution: string, dotnetVersion: string, configuration: string, testProject: string): Promise<string> {
	return dag
		.daggerPipelines()
		.test(source, solution, dotnetVersion, configuration, testProject)
}

pack() 🔗

Pack one or more projects into NuGet packages

Pass a single .csproj path or comma-separated list for multi-package solutions. Example: “src/Lib/Lib.csproj” or “src/A/A.csproj,src/B/B.csproj”

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
projectsString !-No description provided
versionString !"1.0.0"No description provided
dotnetVersionString !"8.0"No description provided
configurationString !"Release"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 pack --source DIR_PATH --solution string --projects string --version string --dotnet-version string --configuration string
func (m *MyModule) Example(source *dagger.Directory, solution string, projects string, version string, dotnetVersion string, configuration string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Pack(source, solution, projects, version, dotnetVersion, configuration)
}
@function
def example(source: dagger.Directory, solution: str, projects: str, version: str, dotnet_version: str, configuration: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.pack(source, solution, projects, version, dotnet_version, configuration)
	)
@func()
example(source: Directory, solution: string, projects: string, version: string, dotnetVersion: string, configuration: string): Container {
	return dag
		.daggerPipelines()
		.pack(source, solution, projects, version, dotnetVersion, configuration)
}

publish() 🔗

Push all .nupkg files from /packages to NuGet.org

Return Type
String !
Arguments
NameTypeDefault ValueDescription
containerContainer !-No description provided
nugetApiKeySecret !-No description provided
nugetSourceString !"https://api.nuget.org/v3/index.json"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 publish --container IMAGE:TAG --nuget-api-key env:MYSECRET --nuget-source string
func (m *MyModule) Example(ctx context.Context, container *dagger.Container, nugetApiKey *dagger.Secret, nugetSource string) string  {
	return dag.
			DaggerPipelines().
			Publish(ctx, container, nugetApiKey, nugetSource)
}
@function
async def example(container: dagger.Container, nuget_api_key: dagger.Secret, nuget_source: str) -> str:
	return await (
		dag.dagger_pipelines()
		.publish(container, nuget_api_key, nuget_source)
	)
@func()
async example(container: Container, nugetApiKey: Secret, nugetSource: string): Promise<string> {
	return dag
		.daggerPipelines()
		.publish(container, nugetApiKey, nugetSource)
}

ci() 🔗

Full CI pipeline: restore → build → test → pack

Returns the container with .nupkg files in /packages ready for publish.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
projectsString !-No description provided
versionString !"1.0.0"No description provided
dotnetVersionString !"8.0"No description provided
configurationString !"Release"No description provided
testProjectString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@a6845acf43678b1d7509301e26669deb6f1db158 call \
 ci --source DIR_PATH --solution string --projects string --version string --dotnet-version string --configuration string --test-project string
func (m *MyModule) Example(source *dagger.Directory, solution string, projects string, version string, dotnetVersion string, configuration string, testProject string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Ci(source, solution, projects, version, dotnetVersion, configuration, testProject)
}
@function
def example(source: dagger.Directory, solution: str, projects: str, version: str, dotnet_version: str, configuration: str, test_project: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.ci(source, solution, projects, version, dotnet_version, configuration, test_project)
	)
@func()
example(source: Directory, solution: string, projects: string, version: string, dotnetVersion: string, configuration: string, testProject: string): Container {
	return dag
		.daggerPipelines()
		.ci(source, solution, projects, version, dotnetVersion, configuration, testProject)
}