Dagger
Search

dagger-pipelines

Multi-language module with composable pipeline steps for:
- .NET: restore, build, test, pack, NuGet publish
- Node.js: install, typecheck, lint, test, build (npm/pnpm/bun)
- VS Code Extensions: build, package VSIX, publish to Marketplace
- Next.js: lint, typecheck, build, static export
- npm Packages: typecheck, test, pack, publish to npm
- Cloudflare Workers: typecheck, deploy via wrangler
- Node Audit: Node.js dependency vulnerability checks
- .NET Audit: .NET dependency vulnerability checks
- GitHub Release: create releases with artifact uploads
- Docker: build from Dockerfile, push to any OCI registry
- Preview Deploy: PR preview deployments to Cloudflare Pages
- DB Migrations: EF Core migration validation
- Changelog: conventional commit parsing to markdown

Each sub-module can be accessed via its factory function:
dagger call node ci --source=.
dagger call vscode-extension ci --source=.
dagger call nextjs ci --source=.
dagger call npm-package ci --source=.
dagger call cloudflare-worker ci --source=.
dagger call node-audit audit --source=.
dagger call dotnet-audit audit --source=. --solution="MyLib.sln"
dagger call github-release create --tag=v1.0.0 --repo=user/repo
dagger call docker ci --source=.
dagger call preview-deploy deploy --source=./out --project-name=my-site
dagger call dotnet-migrations validate --source=. --project=src/MyApp
dagger call changelog generate --commits="feat: ..."

.NET functions remain on the root object for backward compatibility:
dagger call build --source=. --solution="MyLib.sln"

Installation

dagger install github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20

Entrypoint

Return Type
DaggerPipelines
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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 🔗

node() 🔗

Node.js CI pipeline (install, typecheck, lint, test, build)

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

vscodeExtension() 🔗

VS Code Extension pipeline (build, package VSIX, publish)

Return Type
DaggerPipelinesVscodeExtension !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension
func (m *MyModule) Example() *dagger.DaggerPipelinesVscodeExtension  {
	return dag.
			DaggerPipelines().
			VscodeExtension()
}
@function
def example() -> dagger.DaggerPipelinesVscodeExtension:
	return (
		dag.dagger_pipelines()
		.vscode_extension()
	)
@func()
example(): DaggerPipelinesVscodeExtension {
	return dag
		.daggerPipelines()
		.vscodeExtension()
}

nextjs() 🔗

Next.js pipeline (lint, typecheck, build, static export)

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

npmPackage() 🔗

npm Package pipeline (typecheck, test, pack, publish)

Return Type
DaggerPipelinesNpmPackage !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package
func (m *MyModule) Example() *dagger.DaggerPipelinesNpmPackage  {
	return dag.
			DaggerPipelines().
			NpmPackage()
}
@function
def example() -> dagger.DaggerPipelinesNpmPackage:
	return (
		dag.dagger_pipelines()
		.npm_package()
	)
@func()
example(): DaggerPipelinesNpmPackage {
	return dag
		.daggerPipelines()
		.npmPackage()
}

cloudflareWorker() 🔗

Cloudflare Worker pipeline (typecheck, deploy)

Return Type
DaggerPipelinesCloudflareWorker !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 cloudflare-worker
func (m *MyModule) Example() *dagger.DaggerPipelinesCloudflareWorker  {
	return dag.
			DaggerPipelines().
			CloudflareWorker()
}
@function
def example() -> dagger.DaggerPipelinesCloudflareWorker:
	return (
		dag.dagger_pipelines()
		.cloudflare_worker()
	)
@func()
example(): DaggerPipelinesCloudflareWorker {
	return dag
		.daggerPipelines()
		.cloudflareWorker()
}

versioning() 🔗

Version resolver (NerdBank-style semver from branch context)

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

nodeAudit() 🔗

Node.js dependency audit pipeline

Return Type
DaggerPipelinesNodeAudit !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node-audit
func (m *MyModule) Example() *dagger.DaggerPipelinesNodeAudit  {
	return dag.
			DaggerPipelines().
			NodeAudit()
}
@function
def example() -> dagger.DaggerPipelinesNodeAudit:
	return (
		dag.dagger_pipelines()
		.node_audit()
	)
@func()
example(): DaggerPipelinesNodeAudit {
	return dag
		.daggerPipelines()
		.nodeAudit()
}

dotnetAudit() 🔗

.NET dependency audit pipeline

Return Type
DaggerPipelinesDotnetAudit !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 dotnet-audit
func (m *MyModule) Example() *dagger.DaggerPipelinesDotnetAudit  {
	return dag.
			DaggerPipelines().
			DotnetAudit()
}
@function
def example() -> dagger.DaggerPipelinesDotnetAudit:
	return (
		dag.dagger_pipelines()
		.dotnet_audit()
	)
@func()
example(): DaggerPipelinesDotnetAudit {
	return dag
		.daggerPipelines()
		.dotnetAudit()
}

githubRelease() 🔗

GitHub Release pipeline (create releases with artifact uploads)

Return Type
DaggerPipelinesGithubRelease !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 github-release
func (m *MyModule) Example() *dagger.DaggerPipelinesGithubRelease  {
	return dag.
			DaggerPipelines().
			GithubRelease()
}
@function
def example() -> dagger.DaggerPipelinesGithubRelease:
	return (
		dag.dagger_pipelines()
		.github_release()
	)
@func()
example(): DaggerPipelinesGithubRelease {
	return dag
		.daggerPipelines()
		.githubRelease()
}

docker() 🔗

Docker build and push pipeline (Dockerfile → registry)

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

previewDeploy() 🔗

PR preview deploy pipeline (Cloudflare Pages)

Return Type
DaggerPipelinesPreviewDeploy !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 preview-deploy
func (m *MyModule) Example() *dagger.DaggerPipelinesPreviewDeploy  {
	return dag.
			DaggerPipelines().
			PreviewDeploy()
}
@function
def example() -> dagger.DaggerPipelinesPreviewDeploy:
	return (
		dag.dagger_pipelines()
		.preview_deploy()
	)
@func()
example(): DaggerPipelinesPreviewDeploy {
	return dag
		.daggerPipelines()
		.previewDeploy()
}

dotnetMigrations() 🔗

EF Core migration validation pipeline

Return Type
DaggerPipelinesDotnetMigrations !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 dotnet-migrations
func (m *MyModule) Example() *dagger.DaggerPipelinesDotnetMigrations  {
	return dag.
			DaggerPipelines().
			DotnetMigrations()
}
@function
def example() -> dagger.DaggerPipelinesDotnetMigrations:
	return (
		dag.dagger_pipelines()
		.dotnet_migrations()
	)
@func()
example(): DaggerPipelinesDotnetMigrations {
	return dag
		.daggerPipelines()
		.dotnetMigrations()
}

changelog() 🔗

Changelog generation from conventional commits

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

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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 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)
}

release() 🔗

Full release pipeline: ci (build → test → pack) → publish to NuGet

CLI-friendly function that combines ci + publish in one call. Use this from GitHub Actions or local CLI when you want to build, test, pack, and push to NuGet in a single command.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
solutionString !-No description provided
projectsString !-No description provided
nugetApiKeySecret !-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
nugetSourceString !"https://api.nuget.org/v3/index.json"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 release --source DIR_PATH --solution string --projects string --nuget-api-key env:MYSECRET --version string --dotnet-version string --configuration string --test-project string --nuget-source string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, solution string, projects string, nugetApiKey *dagger.Secret, version string, dotnetVersion string, configuration string, testProject string, nugetSource string) string  {
	return dag.
			DaggerPipelines().
			Release(ctx, source, solution, projects, nugetApiKey, version, dotnetVersion, configuration, testProject, nugetSource)
}
@function
async def example(source: dagger.Directory, solution: str, projects: str, nuget_api_key: dagger.Secret, version: str, dotnet_version: str, configuration: str, test_project: str, nuget_source: str) -> str:
	return await (
		dag.dagger_pipelines()
		.release(source, solution, projects, nuget_api_key, version, dotnet_version, configuration, test_project, nuget_source)
	)
@func()
async example(source: Directory, solution: string, projects: string, nugetApiKey: Secret, version: string, dotnetVersion: string, configuration: string, testProject: string, nugetSource: string): Promise<string> {
	return dag
		.daggerPipelines()
		.release(source, solution, projects, nugetApiKey, version, dotnetVersion, configuration, testProject, nugetSource)
}

testRestore() 🔗

Verify NuGet restore succeeds against the test fixture

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-restore
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestRestore(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_restore()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testRestore()
}

testBuild() 🔗

Verify build succeeds against the test fixture

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-build
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestBuild(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_build()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testBuild()
}

testTest() 🔗

Verify tests pass against the test fixture

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-test
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestTest(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_test()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testTest()
}

testPack() 🔗

Verify pack produces .nupkg files in /packages

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-pack
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestPack(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_pack()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testPack()
}

testCi() 🔗

Verify the full CI pipeline (restore → build → test → pack) end-to-end

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-ci
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestCi(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_ci()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testCi()
}

testVersionPr() 🔗

Verify PR version produces correct prerelease suffix

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-version-pr
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestVersionPr(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_version_pr()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testVersionPr()
}

testVersionDev() 🔗

Verify dev/stage branches produce correct prerelease suffixes

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-version-dev
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestVersionDev(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_version_dev()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testVersionDev()
}

testVersionRelease() 🔗

Verify main/master/tag produce clean versions

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-version-release
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestVersionRelease(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_version_release()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testVersionRelease()
}

testChangelog() 🔗

Verify changelog generates correct markdown from conventional commits

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-changelog
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestChangelog(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_changelog()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testChangelog()
}

testDotnetAudit() 🔗

Verify .NET audit runs against the test fixture

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-dotnet-audit
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestDotnetAudit(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_dotnet_audit()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testDotnetAudit()
}

testNodeAudit() 🔗

Verify Node.js audit runs against a minimal fixture

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-node-audit
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestNodeAudit(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_node_audit()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testNodeAudit()
}

testDockerBuild() 🔗

Verify Docker build from a Dockerfile in testdata

Return Type
String !
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 test-docker-build
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			DaggerPipelines().
			TestDockerBuild(ctx)
}
@function
async def example() -> str:
	return await (
		dag.dagger_pipelines()
		.test_docker_build()
	)
@func()
async example(): Promise<string> {
	return dag
		.daggerPipelines()
		.testDockerBuild()
}

DaggerPipelinesNodeCi 🔗

install() 🔗

Base Node.js container with source mounted and dependencies installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 install --source DIR_PATH --node-version string --package-manager string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Node().
			Install(source, nodeVersion, packageManager)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.node()
		.install(source, node_version, package_manager)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string): Container {
	return dag
		.daggerPipelines()
		.node()
		.install(source, nodeVersion, packageManager)
}

typecheck() 🔗

Run TypeScript type checking (tsc –noEmit)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
tsconfigPathString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 typecheck --source DIR_PATH --node-version string --package-manager string --tsconfig-path string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string, packageManager string, tsconfigPath string) string  {
	return dag.
			DaggerPipelines().
			Node().
			Typecheck(ctx, source, nodeVersion, packageManager, tsconfigPath)
}
@function
async def example(source: dagger.Directory, node_version: str, package_manager: str, tsconfig_path: str) -> str:
	return await (
		dag.dagger_pipelines()
		.node()
		.typecheck(source, node_version, package_manager, tsconfig_path)
	)
@func()
async example(source: Directory, nodeVersion: string, packageManager: string, tsconfigPath: string): Promise<string> {
	return dag
		.daggerPipelines()
		.node()
		.typecheck(source, nodeVersion, packageManager, tsconfigPath)
}

lint() 🔗

Run linter (defaults to “npm run lint”)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
lintScriptString !"lint"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 lint --source DIR_PATH --node-version string --package-manager string --lint-script string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string, packageManager string, lintScript string) string  {
	return dag.
			DaggerPipelines().
			Node().
			Lint(ctx, source, nodeVersion, packageManager, lintScript)
}
@function
async def example(source: dagger.Directory, node_version: str, package_manager: str, lint_script: str) -> str:
	return await (
		dag.dagger_pipelines()
		.node()
		.lint(source, node_version, package_manager, lint_script)
	)
@func()
async example(source: Directory, nodeVersion: string, packageManager: string, lintScript: string): Promise<string> {
	return dag
		.daggerPipelines()
		.node()
		.lint(source, nodeVersion, packageManager, lintScript)
}

test() 🔗

Run tests (defaults to “npm test”)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
testScriptString !"test"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 test --source DIR_PATH --node-version string --package-manager string --test-script string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string, packageManager string, testScript string) string  {
	return dag.
			DaggerPipelines().
			Node().
			Test(ctx, source, nodeVersion, packageManager, testScript)
}
@function
async def example(source: dagger.Directory, node_version: str, package_manager: str, test_script: str) -> str:
	return await (
		dag.dagger_pipelines()
		.node()
		.test(source, node_version, package_manager, test_script)
	)
@func()
async example(source: Directory, nodeVersion: string, packageManager: string, testScript: string): Promise<string> {
	return dag
		.daggerPipelines()
		.node()
		.test(source, nodeVersion, packageManager, testScript)
}

build() 🔗

Run build (defaults to “npm run build”)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 build --source DIR_PATH --node-version string --package-manager string --build-script string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, buildScript string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Node().
			Build(source, nodeVersion, packageManager, buildScript)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, build_script: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.node()
		.build(source, node_version, package_manager, build_script)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, buildScript: string): Container {
	return dag
		.daggerPipelines()
		.node()
		.build(source, nodeVersion, packageManager, buildScript)
}

ci() 🔗

Full CI pipeline: install → typecheck → lint → test → build

Skips lint/test steps if skipLint/skipTest are set.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
buildScriptString !"build"No description provided
lintScriptString !"lint"No description provided
testScriptString !"test"No description provided
skipLintBoolean !falseNo description provided
skipTestBoolean !falseNo description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node \
 ci --source DIR_PATH --node-version string --package-manager string --build-script string --lint-script string --test-script string --skip-lint boolean --skip-test boolean
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, buildScript string, lintScript string, testScript string, skipLint bool, skipTest bool) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Node().
			Ci(source, nodeVersion, packageManager, buildScript, lintScript, testScript, skipLint, skipTest)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, build_script: str, lint_script: str, test_script: str, skip_lint: bool, skip_test: bool) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.node()
		.ci(source, node_version, package_manager, build_script, lint_script, test_script, skip_lint, skip_test)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, buildScript: string, lintScript: string, testScript: string, skipLint: boolean, skipTest: boolean): Container {
	return dag
		.daggerPipelines()
		.node()
		.ci(source, nodeVersion, packageManager, buildScript, lintScript, testScript, skipLint, skipTest)
}

DaggerPipelinesVscodeExtension 🔗

install() 🔗

Base container with Node.js, source mounted, and dependencies installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 install --source DIR_PATH --node-version string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Install(source, nodeVersion)
}
@function
def example(source: dagger.Directory, node_version: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.vscode_extension()
		.install(source, node_version)
	)
@func()
example(source: Directory, nodeVersion: string): Container {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.install(source, nodeVersion)
}

build() 🔗

Build the extension (esbuild or tsc, depending on project)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 build --source DIR_PATH --node-version string --build-script string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, buildScript string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Build(source, nodeVersion, buildScript)
}
@function
def example(source: dagger.Directory, node_version: str, build_script: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.vscode_extension()
		.build(source, node_version, build_script)
	)
@func()
example(source: Directory, nodeVersion: string, buildScript: string): Container {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.build(source, nodeVersion, buildScript)
}

package() 🔗

Package the extension as a .vsix file

Installs

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 package --source DIR_PATH --node-version string --build-script string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, buildScript string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Package(source, nodeVersion, buildScript)
}
@function
def example(source: dagger.Directory, node_version: str, build_script: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.vscode_extension()
		.package(source, node_version, build_script)
	)
@func()
example(source: Directory, nodeVersion: string, buildScript: string): Container {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.package(source, nodeVersion, buildScript)
}

publish() 🔗

Publish the extension to the VS Code Marketplace

Return Type
String !
Arguments
NameTypeDefault ValueDescription
containerContainer !-No description provided
vsceTokenSecret !-No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 publish --container IMAGE:TAG --vsce-token env:MYSECRET
func (m *MyModule) Example(ctx context.Context, container *dagger.Container, vsceToken *dagger.Secret) string  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Publish(ctx, container, vsceToken)
}
@function
async def example(container: dagger.Container, vsce_token: dagger.Secret) -> str:
	return await (
		dag.dagger_pipelines()
		.vscode_extension()
		.publish(container, vsce_token)
	)
@func()
async example(container: Container, vsceToken: Secret): Promise<string> {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.publish(container, vsceToken)
}

ci() 🔗

Full CI pipeline: install → typecheck → build → package VSIX

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 ci --source DIR_PATH --node-version string --build-script string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, buildScript string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Ci(source, nodeVersion, buildScript)
}
@function
def example(source: dagger.Directory, node_version: str, build_script: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.vscode_extension()
		.ci(source, node_version, build_script)
	)
@func()
example(source: Directory, nodeVersion: string, buildScript: string): Container {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.ci(source, nodeVersion, buildScript)
}

release() 🔗

Full release pipeline: ci → publish to VS Code Marketplace

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
vsceTokenSecret !-No description provided
nodeVersionString !"20"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 vscode-extension \
 release --source DIR_PATH --vsce-token env:MYSECRET --node-version string --build-script string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, vsceToken *dagger.Secret, nodeVersion string, buildScript string) string  {
	return dag.
			DaggerPipelines().
			VscodeExtension().
			Release(ctx, source, vsceToken, nodeVersion, buildScript)
}
@function
async def example(source: dagger.Directory, vsce_token: dagger.Secret, node_version: str, build_script: str) -> str:
	return await (
		dag.dagger_pipelines()
		.vscode_extension()
		.release(source, vsce_token, node_version, build_script)
	)
@func()
async example(source: Directory, vsceToken: Secret, nodeVersion: string, buildScript: string): Promise<string> {
	return dag
		.daggerPipelines()
		.vscodeExtension()
		.release(source, vsceToken, nodeVersion, buildScript)
}

DaggerPipelinesNextjs 🔗

install() 🔗

Base container with Node.js, source mounted, and dependencies installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 nextjs \
 install --source DIR_PATH --node-version string --package-manager string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Nextjs().
			Install(source, nodeVersion, packageManager)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.nextjs()
		.install(source, node_version, package_manager)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string): Container {
	return dag
		.daggerPipelines()
		.nextjs()
		.install(source, nodeVersion, packageManager)
}

build() 🔗

Build the Next.js application

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 nextjs \
 build --source DIR_PATH --node-version string --package-manager string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Nextjs().
			Build(source, nodeVersion, packageManager)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.nextjs()
		.build(source, node_version, package_manager)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string): Container {
	return dag
		.daggerPipelines()
		.nextjs()
		.build(source, nodeVersion, packageManager)
}

exportStatic() 🔗

Export a static build (output directory)

Requires output: 'export' in next.config. Returns the exported directory (typically out/).

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
outputDirString !"out"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 nextjs \
 export-static --source DIR_PATH --node-version string --package-manager string --output-dir string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, outputDir string) *dagger.Directory  {
	return dag.
			DaggerPipelines().
			Nextjs().
			ExportStatic(source, nodeVersion, packageManager, outputDir)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, output_dir: str) -> dagger.Directory:
	return (
		dag.dagger_pipelines()
		.nextjs()
		.export_static(source, node_version, package_manager, output_dir)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, outputDir: string): Directory {
	return dag
		.daggerPipelines()
		.nextjs()
		.exportStatic(source, nodeVersion, packageManager, outputDir)
}

ci() 🔗

Full CI pipeline: install → typecheck → lint → build

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
skipLintBoolean !falseNo description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 nextjs \
 ci --source DIR_PATH --node-version string --package-manager string --skip-lint boolean
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, skipLint bool) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Nextjs().
			Ci(source, nodeVersion, packageManager, skipLint)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, skip_lint: bool) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.nextjs()
		.ci(source, node_version, package_manager, skip_lint)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, skipLint: boolean): Container {
	return dag
		.daggerPipelines()
		.nextjs()
		.ci(source, nodeVersion, packageManager, skipLint)
}

DaggerPipelinesNpmPackage 🔗

install() 🔗

Base container with Node.js, source mounted, and dependencies installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package \
 install --source DIR_PATH --node-version string --package-manager string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			NpmPackage().
			Install(source, nodeVersion, packageManager)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.npm_package()
		.install(source, node_version, package_manager)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string): Container {
	return dag
		.daggerPipelines()
		.npmPackage()
		.install(source, nodeVersion, packageManager)
}

pack() 🔗

Pack the package into a tarball (.tgz)

Runs build first, then npm pack into /packages directory.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
buildScriptString !"build"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package \
 pack --source DIR_PATH --node-version string --package-manager string --build-script string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, buildScript string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			NpmPackage().
			Pack(source, nodeVersion, packageManager, buildScript)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, build_script: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.npm_package()
		.pack(source, node_version, package_manager, build_script)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, buildScript: string): Container {
	return dag
		.daggerPipelines()
		.npmPackage()
		.pack(source, nodeVersion, packageManager, buildScript)
}

publish() 🔗

Publish the package to npm registry

Return Type
String !
Arguments
NameTypeDefault ValueDescription
containerContainer !-No description provided
npmTokenSecret !-No description provided
registryString !"https://registry.npmjs.org"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package \
 publish --container IMAGE:TAG --npm-token env:MYSECRET --registry string
func (m *MyModule) Example(ctx context.Context, container *dagger.Container, npmToken *dagger.Secret, registry string) string  {
	return dag.
			DaggerPipelines().
			NpmPackage().
			Publish(ctx, container, npmToken, registry)
}
@function
async def example(container: dagger.Container, npm_token: dagger.Secret, registry: str) -> str:
	return await (
		dag.dagger_pipelines()
		.npm_package()
		.publish(container, npm_token, registry)
	)
@func()
async example(container: Container, npmToken: Secret, registry: string): Promise<string> {
	return dag
		.daggerPipelines()
		.npmPackage()
		.publish(container, npmToken, registry)
}

ci() 🔗

Full CI pipeline: install → typecheck → test → build → pack

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
buildScriptString !"build"No description provided
testScriptString !"test"No description provided
skipTestBoolean !falseNo description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package \
 ci --source DIR_PATH --node-version string --package-manager string --build-script string --test-script string --skip-test boolean
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string, packageManager string, buildScript string, testScript string, skipTest bool) *dagger.Container  {
	return dag.
			DaggerPipelines().
			NpmPackage().
			Ci(source, nodeVersion, packageManager, buildScript, testScript, skipTest)
}
@function
def example(source: dagger.Directory, node_version: str, package_manager: str, build_script: str, test_script: str, skip_test: bool) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.npm_package()
		.ci(source, node_version, package_manager, build_script, test_script, skip_test)
	)
@func()
example(source: Directory, nodeVersion: string, packageManager: string, buildScript: string, testScript: string, skipTest: boolean): Container {
	return dag
		.daggerPipelines()
		.npmPackage()
		.ci(source, nodeVersion, packageManager, buildScript, testScript, skipTest)
}

release() 🔗

Full release pipeline: ci → publish to npm

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
npmTokenSecret !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
buildScriptString !"build"No description provided
testScriptString !"test"No description provided
skipTestBoolean !falseNo description provided
registryString !"https://registry.npmjs.org"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 npm-package \
 release --source DIR_PATH --npm-token env:MYSECRET --node-version string --package-manager string --build-script string --test-script string --skip-test boolean --registry string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, npmToken *dagger.Secret, nodeVersion string, packageManager string, buildScript string, testScript string, skipTest bool, registry string) string  {
	return dag.
			DaggerPipelines().
			NpmPackage().
			Release(ctx, source, npmToken, nodeVersion, packageManager, buildScript, testScript, skipTest, registry)
}
@function
async def example(source: dagger.Directory, npm_token: dagger.Secret, node_version: str, package_manager: str, build_script: str, test_script: str, skip_test: bool, registry: str) -> str:
	return await (
		dag.dagger_pipelines()
		.npm_package()
		.release(source, npm_token, node_version, package_manager, build_script, test_script, skip_test, registry)
	)
@func()
async example(source: Directory, npmToken: Secret, nodeVersion: string, packageManager: string, buildScript: string, testScript: string, skipTest: boolean, registry: string): Promise<string> {
	return dag
		.daggerPipelines()
		.npmPackage()
		.release(source, npmToken, nodeVersion, packageManager, buildScript, testScript, skipTest, registry)
}

DaggerPipelinesCloudflareWorker 🔗

install() 🔗

Base container with Node.js, source mounted, and dependencies installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 cloudflare-worker \
 install --source DIR_PATH --node-version string
func (m *MyModule) Example(source *dagger.Directory, nodeVersion string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			CloudflareWorker().
			Install(source, nodeVersion)
}
@function
def example(source: dagger.Directory, node_version: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.cloudflare_worker()
		.install(source, node_version)
	)
@func()
example(source: Directory, nodeVersion: string): Container {
	return dag
		.daggerPipelines()
		.cloudflareWorker()
		.install(source, nodeVersion)
}

typecheck() 🔗

Run TypeScript type checking

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 cloudflare-worker \
 typecheck --source DIR_PATH --node-version string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string) string  {
	return dag.
			DaggerPipelines().
			CloudflareWorker().
			Typecheck(ctx, source, nodeVersion)
}
@function
async def example(source: dagger.Directory, node_version: str) -> str:
	return await (
		dag.dagger_pipelines()
		.cloudflare_worker()
		.typecheck(source, node_version)
	)
@func()
async example(source: Directory, nodeVersion: string): Promise<string> {
	return dag
		.daggerPipelines()
		.cloudflareWorker()
		.typecheck(source, nodeVersion)
}

deploy() 🔗

Deploy the worker via wrangler

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
cfApiTokenSecret !-No description provided
cfAccountIdString !-No description provided
nodeVersionString !"20"No description provided
environmentString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 cloudflare-worker \
 deploy --source DIR_PATH --cf-api-token env:MYSECRET --cf-account-id string --node-version string --environment string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, cfApiToken *dagger.Secret, cfAccountId string, nodeVersion string, environment string) string  {
	return dag.
			DaggerPipelines().
			CloudflareWorker().
			Deploy(ctx, source, cfApiToken, cfAccountId, nodeVersion, environment)
}
@function
async def example(source: dagger.Directory, cf_api_token: dagger.Secret, cf_account_id: str, node_version: str, environment: str) -> str:
	return await (
		dag.dagger_pipelines()
		.cloudflare_worker()
		.deploy(source, cf_api_token, cf_account_id, node_version, environment)
	)
@func()
async example(source: Directory, cfApiToken: Secret, cfAccountId: string, nodeVersion: string, environment: string): Promise<string> {
	return dag
		.daggerPipelines()
		.cloudflareWorker()
		.deploy(source, cfApiToken, cfAccountId, nodeVersion, environment)
}

ci() 🔗

Full CI pipeline: install → typecheck

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 cloudflare-worker \
 ci --source DIR_PATH --node-version string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string) string  {
	return dag.
			DaggerPipelines().
			CloudflareWorker().
			Ci(ctx, source, nodeVersion)
}
@function
async def example(source: dagger.Directory, node_version: str) -> str:
	return await (
		dag.dagger_pipelines()
		.cloudflare_worker()
		.ci(source, node_version)
	)
@func()
async example(source: Directory, nodeVersion: string): Promise<string> {
	return dag
		.daggerPipelines()
		.cloudflareWorker()
		.ci(source, nodeVersion)
}

DaggerPipelinesVersioning 🔗

resolve() 🔗

Resolve a semver version based on branch context.

Pass git info from your CI environment — the function computes the correct prerelease suffix. Locally testable: dagger call versioning resolve –base-version=1.2.0 –branch=dev –height=42

Return Type
String !
Arguments
NameTypeDefault ValueDescription
baseVersionString !-No description provided
branchString !"main"No description provided
heightString !"0"No description provided
contextString !""No description provided
prNumberString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 versioning \
 resolve --base-version string --branch string --height string --context string --pr-number string
func (m *MyModule) Example(ctx context.Context, baseVersion string, branch string, height string, context string, prNumber string) string  {
	return dag.
			DaggerPipelines().
			Versioning().
			Resolve(ctx, baseVersion, branch, height, context, prNumber)
}
@function
async def example(base_version: str, branch: str, height: str, context: str, pr_number: str) -> str:
	return await (
		dag.dagger_pipelines()
		.versioning()
		.resolve(base_version, branch, height, context, pr_number)
	)
@func()
async example(baseVersion: string, branch: string, height: string, context: string, prNumber: string): Promise<string> {
	return dag
		.daggerPipelines()
		.versioning()
		.resolve(baseVersion, branch, height, context, prNumber)
}

DaggerPipelinesNodeAudit 🔗

audit() 🔗

Run dependency audit for a Node.js project

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
nodeVersionString !"20"No description provided
packageManagerString !"npm"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 node-audit \
 audit --source DIR_PATH --node-version string --package-manager string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, nodeVersion string, packageManager string) string  {
	return dag.
			DaggerPipelines().
			NodeAudit().
			Audit(ctx, source, nodeVersion, packageManager)
}
@function
async def example(source: dagger.Directory, node_version: str, package_manager: str) -> str:
	return await (
		dag.dagger_pipelines()
		.node_audit()
		.audit(source, node_version, package_manager)
	)
@func()
async example(source: Directory, nodeVersion: string, packageManager: string): Promise<string> {
	return dag
		.daggerPipelines()
		.nodeAudit()
		.audit(source, nodeVersion, packageManager)
}

DaggerPipelinesDotnetAudit 🔗

audit() 🔗

Run dependency audit for a .NET project

Return Type
String !
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@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 dotnet-audit \
 audit --source DIR_PATH --solution string --dotnet-version string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, solution string, dotnetVersion string) string  {
	return dag.
			DaggerPipelines().
			DotnetAudit().
			Audit(ctx, source, solution, dotnetVersion)
}
@function
async def example(source: dagger.Directory, solution: str, dotnet_version: str) -> str:
	return await (
		dag.dagger_pipelines()
		.dotnet_audit()
		.audit(source, solution, dotnet_version)
	)
@func()
async example(source: Directory, solution: string, dotnetVersion: string): Promise<string> {
	return dag
		.daggerPipelines()
		.dotnetAudit()
		.audit(source, solution, dotnetVersion)
}

DaggerPipelinesGithubRelease 🔗

create() 🔗

Create a GitHub release

Uses gh CLI inside a container to create a release on the specified repo. Optionally uploads all files from an artifacts directory.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tagString !-No description provided
repoString !-No description provided
ghTokenSecret !-No description provided
titleString !""No description provided
notesString !""No description provided
draftBoolean !falseNo description provided
prereleaseBoolean !falseNo description provided
artifactsDirectory -No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 github-release \
 create --tag string --repo string --gh-token env:MYSECRET --title string --notes string --draft boolean --prerelease boolean
func (m *MyModule) Example(ctx context.Context, tag string, repo string, ghToken *dagger.Secret, title string, notes string, draft bool, prerelease bool) string  {
	return dag.
			DaggerPipelines().
			GithubRelease().
			Create(ctx, tag, repo, ghToken, title, notes, draft, prerelease)
}
@function
async def example(tag: str, repo: str, gh_token: dagger.Secret, title: str, notes: str, draft: bool, prerelease: bool) -> str:
	return await (
		dag.dagger_pipelines()
		.github_release()
		.create(tag, repo, gh_token, title, notes, draft, prerelease)
	)
@func()
async example(tag: string, repo: string, ghToken: Secret, title: string, notes: string, draft: boolean, prerelease: boolean): Promise<string> {
	return dag
		.daggerPipelines()
		.githubRelease()
		.create(tag, repo, ghToken, title, notes, draft, prerelease)
}

DaggerPipelinesDocker 🔗

build() 🔗

Build a container image from a Dockerfile

Uses Dagger’s native build — same as docker build but fully containerized.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
dockerfileString !"Dockerfile"No description provided
targetString !""No description provided
buildArgsString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 docker \
 build --source DIR_PATH --dockerfile string --target string --build-args string
func (m *MyModule) Example(source *dagger.Directory, dockerfile string, target string, buildArgs string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Docker().
			Build(source, dockerfile, target, buildArgs)
}
@function
def example(source: dagger.Directory, dockerfile: str, target: str, build_args: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.docker()
		.build(source, dockerfile, target, build_args)
	)
@func()
example(source: Directory, dockerfile: string, target: string, buildArgs: string): Container {
	return dag
		.daggerPipelines()
		.docker()
		.build(source, dockerfile, target, buildArgs)
}

push() 🔗

Push a built container to a registry

Authenticates and publishes the image. Returns the image digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
containerContainer !-No description provided
addressString !-No description provided
registryUsernameString !""No description provided
registryPasswordSecret -No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 docker \
 push --container IMAGE:TAG --address string --registry-username string
func (m *MyModule) Example(ctx context.Context, container *dagger.Container, address string, registryUsername string) string  {
	return dag.
			DaggerPipelines().
			Docker().
			Push(ctx, container, address, registryUsername)
}
@function
async def example(container: dagger.Container, address: str, registry_username: str) -> str:
	return await (
		dag.dagger_pipelines()
		.docker()
		.push(container, address, registry_username)
	)
@func()
async example(container: Container, address: string, registryUsername: string): Promise<string> {
	return dag
		.daggerPipelines()
		.docker()
		.push(container, address, registryUsername)
}

ci() 🔗

Full CI pipeline: build from Dockerfile

Returns the built container for further use (push, test, etc.).

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
dockerfileString !"Dockerfile"No description provided
targetString !""No description provided
buildArgsString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 docker \
 ci --source DIR_PATH --dockerfile string --target string --build-args string
func (m *MyModule) Example(source *dagger.Directory, dockerfile string, target string, buildArgs string) *dagger.Container  {
	return dag.
			DaggerPipelines().
			Docker().
			Ci(source, dockerfile, target, buildArgs)
}
@function
def example(source: dagger.Directory, dockerfile: str, target: str, build_args: str) -> dagger.Container:
	return (
		dag.dagger_pipelines()
		.docker()
		.ci(source, dockerfile, target, build_args)
	)
@func()
example(source: Directory, dockerfile: string, target: string, buildArgs: string): Container {
	return dag
		.daggerPipelines()
		.docker()
		.ci(source, dockerfile, target, buildArgs)
}

release() 🔗

Full release pipeline: build + push to registry

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
addressString !-No description provided
registryUsernameString !""No description provided
registryPasswordSecret -No description provided
dockerfileString !"Dockerfile"No description provided
targetString !""No description provided
buildArgsString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 docker \
 release --source DIR_PATH --address string --registry-username string --dockerfile string --target string --build-args string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, address string, registryUsername string, dockerfile string, target string, buildArgs string) string  {
	return dag.
			DaggerPipelines().
			Docker().
			Release(ctx, source, address, registryUsername, dockerfile, target, buildArgs)
}
@function
async def example(source: dagger.Directory, address: str, registry_username: str, dockerfile: str, target: str, build_args: str) -> str:
	return await (
		dag.dagger_pipelines()
		.docker()
		.release(source, address, registry_username, dockerfile, target, build_args)
	)
@func()
async example(source: Directory, address: string, registryUsername: string, dockerfile: string, target: string, buildArgs: string): Promise<string> {
	return dag
		.daggerPipelines()
		.docker()
		.release(source, address, registryUsername, dockerfile, target, buildArgs)
}

DaggerPipelinesPreviewDeploy 🔗

deploy() 🔗

Deploy a directory to Cloudflare Pages

Deploys the given output directory to a Cloudflare Pages project. Returns the preview URL. For PR builds, Cloudflare auto-generates a unique preview URL per deployment.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
projectNameString !-No description provided
cfApiTokenSecret !-No description provided
cfAccountIdString !-No description provided
branchString !""No description provided
nodeVersionString !"20"No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 preview-deploy \
 deploy --source DIR_PATH --project-name string --cf-api-token env:MYSECRET --cf-account-id string --branch string --node-version string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, projectName string, cfApiToken *dagger.Secret, cfAccountId string, branch string, nodeVersion string) string  {
	return dag.
			DaggerPipelines().
			PreviewDeploy().
			Deploy(ctx, source, projectName, cfApiToken, cfAccountId, branch, nodeVersion)
}
@function
async def example(source: dagger.Directory, project_name: str, cf_api_token: dagger.Secret, cf_account_id: str, branch: str, node_version: str) -> str:
	return await (
		dag.dagger_pipelines()
		.preview_deploy()
		.deploy(source, project_name, cf_api_token, cf_account_id, branch, node_version)
	)
@func()
async example(source: Directory, projectName: string, cfApiToken: Secret, cfAccountId: string, branch: string, nodeVersion: string): Promise<string> {
	return dag
		.daggerPipelines()
		.previewDeploy()
		.deploy(source, projectName, cfApiToken, cfAccountId, branch, nodeVersion)
}

DaggerPipelinesDotnetMigrations 🔗

validate() 🔗

Validate EF Core migrations produce valid SQL

Installs the dotnet-ef tool, restores the project, and runs dotnet ef migrations script to verify all migrations compile and generate valid SQL. Fails if any migration is broken.

Pass the project containing the DbContext and optionally a separate startup project if your DbContext is in a class library.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
projectString !-No description provided
dotnetVersionString !"8.0"No description provided
startupProjectString !""No description provided
dbContextString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 dotnet-migrations \
 validate --source DIR_PATH --project string --dotnet-version string --startup-project string --db-context string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, project string, dotnetVersion string, startupProject string, dbContext string) string  {
	return dag.
			DaggerPipelines().
			DotnetMigrations().
			Validate(ctx, source, project, dotnetVersion, startupProject, dbContext)
}
@function
async def example(source: dagger.Directory, project: str, dotnet_version: str, startup_project: str, db_context: str) -> str:
	return await (
		dag.dagger_pipelines()
		.dotnet_migrations()
		.validate(source, project, dotnet_version, startup_project, db_context)
	)
@func()
async example(source: Directory, project: string, dotnetVersion: string, startupProject: string, dbContext: string): Promise<string> {
	return dag
		.daggerPipelines()
		.dotnetMigrations()
		.validate(source, project, dotnetVersion, startupProject, dbContext)
}

list() 🔗

List all pending migrations

Shows the migration history for review.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
projectString !-No description provided
dotnetVersionString !"8.0"No description provided
startupProjectString !""No description provided
dbContextString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 dotnet-migrations \
 list --source DIR_PATH --project string --dotnet-version string --startup-project string --db-context string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, project string, dotnetVersion string, startupProject string, dbContext string) string  {
	return dag.
			DaggerPipelines().
			DotnetMigrations().
			List(ctx, source, project, dotnetVersion, startupProject, dbContext)
}
@function
async def example(source: dagger.Directory, project: str, dotnet_version: str, startup_project: str, db_context: str) -> str:
	return await (
		dag.dagger_pipelines()
		.dotnet_migrations()
		.list(source, project, dotnet_version, startup_project, db_context)
	)
@func()
async example(source: Directory, project: string, dotnetVersion: string, startupProject: string, dbContext: string): Promise<string> {
	return dag
		.daggerPipelines()
		.dotnetMigrations()
		.list(source, project, dotnetVersion, startupProject, dbContext)
}

DaggerPipelinesChangelog 🔗

generate() 🔗

Generate a markdown changelog from conventional commit messages

Pass the output of git log --oneline or similar. Each line is parsed as a conventional commit and grouped by type. Non-conventional lines are grouped under “Other Changes”.

Usage from CI: COMMITS=\((git log v1.0.0..HEAD --oneline --no-decorate) dagger call changelog generate --commits="\)COMMITS” –version=“1.1.0”

Return Type
String !
Arguments
NameTypeDefault ValueDescription
commitsString !-No description provided
versionString !"Unreleased"No description provided
dateString !""No description provided
Example
dagger -m github.com/vpetkovic/dagger-pipelines@7b19ad9182cb36f5c31a8b554f032b0f08720b20 call \
 changelog \
 generate --commits string --version string --date string
func (m *MyModule) Example(ctx context.Context, commits string, version string, date string) string  {
	return dag.
			DaggerPipelines().
			Changelog().
			Generate(ctx, commits, version, date)
}
@function
async def example(commits: str, version: str, date: str) -> str:
	return await (
		dag.dagger_pipelines()
		.changelog()
		.generate(commits, version, date)
	)
@func()
async example(commits: string, version: string, date: string): Promise<string> {
	return dag
		.daggerPipelines()
		.changelog()
		.generate(commits, version, date)
}