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@91501d824e373c105a5596cebbff5f3f63d6393cEntrypoint
Return Type
DaggerPipelines Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c 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@91501d824e373c105a5596cebbff5f3f63d6393c call \
nodefunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extensionfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
nextjsfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
npm-packagefunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
cloudflare-workerfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
restore --source DIR_PATH --solution string --dotnet-version stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
| configuration | String ! | "Release" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
build --source DIR_PATH --solution string --dotnet-version string --configuration stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
| configuration | String ! | "Release" | No description provided |
| testProject | String ! | "" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
test --source DIR_PATH --solution string --dotnet-version string --configuration string --test-project stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| projects | String ! | - | No description provided |
| version | String ! | "1.0.0" | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
| configuration | String ! | "Release" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
pack --source DIR_PATH --solution string --projects string --version string --dotnet-version string --configuration stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | No description provided |
| nugetApiKey | Secret ! | - | No description provided |
| nugetSource | String ! | "https://api.nuget.org/v3/index.json" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
publish --container IMAGE:TAG --nuget-api-key env:MYSECRET --nuget-source stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| projects | String ! | - | No description provided |
| version | String ! | "1.0.0" | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
| configuration | String ! | "Release" | No description provided |
| testProject | String ! | "" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
ci --source DIR_PATH --solution string --projects string --version string --dotnet-version string --configuration string --test-project stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| solution | String ! | - | No description provided |
| projects | String ! | - | No description provided |
| nugetApiKey | Secret ! | - | No description provided |
| version | String ! | "1.0.0" | No description provided |
| dotnetVersion | String ! | "8.0" | No description provided |
| configuration | String ! | "Release" | No description provided |
| testProject | String ! | "" | No description provided |
| nugetSource | String ! | "https://api.nuget.org/v3/index.json" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c 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 stringfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
test-restorefunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
test-buildfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
test-testfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
test-packfunc (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@91501d824e373c105a5596cebbff5f3f63d6393c call \
test-cifunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
node \
install --source DIR_PATH --node-version string --package-manager stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| tsconfigPath | String ! | "" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
node \
typecheck --source DIR_PATH --node-version string --package-manager string --tsconfig-path stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| lintScript | String ! | "lint" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
node \
lint --source DIR_PATH --node-version string --package-manager string --lint-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| testScript | String ! | "test" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
node \
test --source DIR_PATH --node-version string --package-manager string --test-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
node \
build --source DIR_PATH --node-version string --package-manager string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| buildScript | String ! | "build" | No description provided |
| lintScript | String ! | "lint" | No description provided |
| testScript | String ! | "test" | No description provided |
| skipLint | Boolean ! | false | No description provided |
| skipTest | Boolean ! | false | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c 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 booleanfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
install --source DIR_PATH --node-version stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
build --source DIR_PATH --node-version string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
package --source DIR_PATH --node-version string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | No description provided |
| vsceToken | Secret ! | - | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
publish --container IMAGE:TAG --vsce-token env:MYSECRETfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
ci --source DIR_PATH --node-version string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| vsceToken | Secret ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
vscode-extension \
release --source DIR_PATH --vsce-token env:MYSECRET --node-version string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
nextjs \
install --source DIR_PATH --node-version string --package-manager stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
nextjs \
build --source DIR_PATH --node-version string --package-manager stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| outputDir | String ! | "out" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
nextjs \
export-static --source DIR_PATH --node-version string --package-manager string --output-dir stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| skipLint | Boolean ! | false | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
nextjs \
ci --source DIR_PATH --node-version string --package-manager string --skip-lint booleanfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
npm-package \
install --source DIR_PATH --node-version string --package-manager stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| buildScript | String ! | "build" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
npm-package \
pack --source DIR_PATH --node-version string --package-manager string --build-script stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | No description provided |
| npmToken | Secret ! | - | No description provided |
| registry | String ! | "https://registry.npmjs.org" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
npm-package \
publish --container IMAGE:TAG --npm-token env:MYSECRET --registry stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| buildScript | String ! | "build" | No description provided |
| testScript | String ! | "test" | No description provided |
| skipTest | Boolean ! | false | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
npm-package \
ci --source DIR_PATH --node-version string --package-manager string --build-script string --test-script string --skip-test booleanfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| npmToken | Secret ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| packageManager | String ! | "npm" | No description provided |
| buildScript | String ! | "build" | No description provided |
| testScript | String ! | "test" | No description provided |
| skipTest | Boolean ! | false | No description provided |
| registry | String ! | "https://registry.npmjs.org" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c 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 stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
cloudflare-worker \
install --source DIR_PATH --node-version stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
cloudflare-worker \
typecheck --source DIR_PATH --node-version stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| cfApiToken | Secret ! | - | No description provided |
| cfAccountId | String ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
| environment | String ! | "" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
cloudflare-worker \
deploy --source DIR_PATH --cf-api-token env:MYSECRET --cf-account-id string --node-version string --environment stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| nodeVersion | String ! | "20" | No description provided |
Example
dagger -m github.com/vpetkovic/dagger-pipelines@91501d824e373c105a5596cebbff5f3f63d6393c call \
cloudflare-worker \
ci --source DIR_PATH --node-version stringfunc (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)
}