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

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=.

.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@5361bc843ea1c9c549a72f6eaea7042ff409d159

Entrypoint

Return Type
DaggerPipelines
Example
dagger -m github.com/vpetkovic/dagger-pipelines@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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()
}

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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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()
}

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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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@5361bc843ea1c9c549a72f6eaea7042ff409d159 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)
}