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()
.vscodeextension()
)@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()
.npmpackage()
)@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()
.cloudflareworker()
)@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, dotnetversion: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.restore(source, solution, dotnetversion)
)@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, dotnetversion: str, configuration: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.build(source, solution, dotnetversion, 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, dotnetversion: str, configuration: str, testproject: str) -> str:
return await (
dag.dagger_pipelines()
.test(source, solution, dotnetversion, configuration, testproject)
)@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, dotnetversion: str, configuration: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.pack(source, solution, projects, version, dotnetversion, 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, nugetapikey: dagger.Secret, nugetsource: str) -> str:
return await (
dag.dagger_pipelines()
.publish(container, nugetapikey, nugetsource)
)@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, dotnetversion: str, configuration: str, testproject: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.ci(source, solution, projects, version, dotnetversion, configuration, testproject)
)@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, nugetapikey: dagger.Secret, version: str, dotnetversion: str, configuration: str, testproject: str, nugetsource: str) -> str:
return await (
dag.dagger_pipelines()
.release(source, solution, projects, nugetapikey, version, dotnetversion, configuration, testproject, nugetsource)
)@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()
.testrestore()
)@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()
.testbuild()
)@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()
.testtest()
)@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()
.testpack()
)@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()
.testci()
)@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, nodeversion: str, packagemanager: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.node()
.install(source, nodeversion, packagemanager)
)@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, nodeversion: str, packagemanager: str, tsconfigpath: str) -> str:
return await (
dag.dagger_pipelines()
.node()
.typecheck(source, nodeversion, packagemanager, tsconfigpath)
)@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, nodeversion: str, packagemanager: str, lintscript: str) -> str:
return await (
dag.dagger_pipelines()
.node()
.lint(source, nodeversion, packagemanager, lintscript)
)@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, nodeversion: str, packagemanager: str, testscript: str) -> str:
return await (
dag.dagger_pipelines()
.node()
.test(source, nodeversion, packagemanager, testscript)
)@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, nodeversion: str, packagemanager: str, buildscript: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.node()
.build(source, nodeversion, packagemanager, buildscript)
)@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, nodeversion: str, packagemanager: str, buildscript: str, lintscript: str, testscript: str, skiplint: bool, skiptest: bool) -> dagger.Container:
return (
dag.dagger_pipelines()
.node()
.ci(source, nodeversion, packagemanager, buildscript, lintscript, testscript, skiplint, skiptest)
)@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, nodeversion: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.vscodeextension()
.install(source, nodeversion)
)@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, nodeversion: str, buildscript: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.vscodeextension()
.build(source, nodeversion, buildscript)
)@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, nodeversion: str, buildscript: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.vscodeextension()
.package(source, nodeversion, buildscript)
)@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, vscetoken: dagger.Secret) -> str:
return await (
dag.dagger_pipelines()
.vscodeextension()
.publish(container, vscetoken)
)@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, nodeversion: str, buildscript: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.vscodeextension()
.ci(source, nodeversion, buildscript)
)@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, vscetoken: dagger.Secret, nodeversion: str, buildscript: str) -> str:
return await (
dag.dagger_pipelines()
.vscodeextension()
.release(source, vscetoken, nodeversion, buildscript)
)@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, nodeversion: str, packagemanager: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.nextjs()
.install(source, nodeversion, packagemanager)
)@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, nodeversion: str, packagemanager: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.nextjs()
.build(source, nodeversion, packagemanager)
)@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, nodeversion: str, packagemanager: str, outputdir: str) -> dagger.Directory:
return (
dag.dagger_pipelines()
.nextjs()
.exportstatic(source, nodeversion, packagemanager, outputdir)
)@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, nodeversion: str, packagemanager: str, skiplint: bool) -> dagger.Container:
return (
dag.dagger_pipelines()
.nextjs()
.ci(source, nodeversion, packagemanager, skiplint)
)@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, nodeversion: str, packagemanager: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.npmpackage()
.install(source, nodeversion, packagemanager)
)@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, nodeversion: str, packagemanager: str, buildscript: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.npmpackage()
.pack(source, nodeversion, packagemanager, buildscript)
)@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, npmtoken: dagger.Secret, registry: str) -> str:
return await (
dag.dagger_pipelines()
.npmpackage()
.publish(container, npmtoken, 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, nodeversion: str, packagemanager: str, buildscript: str, testscript: str, skiptest: bool) -> dagger.Container:
return (
dag.dagger_pipelines()
.npmpackage()
.ci(source, nodeversion, packagemanager, buildscript, testscript, skiptest)
)@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, npmtoken: dagger.Secret, nodeversion: str, packagemanager: str, buildscript: str, testscript: str, skiptest: bool, registry: str) -> str:
return await (
dag.dagger_pipelines()
.npmpackage()
.release(source, npmtoken, nodeversion, packagemanager, buildscript, testscript, skiptest, 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, nodeversion: str) -> dagger.Container:
return (
dag.dagger_pipelines()
.cloudflareworker()
.install(source, nodeversion)
)@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, nodeversion: str) -> str:
return await (
dag.dagger_pipelines()
.cloudflareworker()
.typecheck(source, nodeversion)
)@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, cfapitoken: dagger.Secret, cfaccountid: str, nodeversion: str, environment: str) -> str:
return await (
dag.dagger_pipelines()
.cloudflareworker()
.deploy(source, cfapitoken, cfaccountid, nodeversion, 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, nodeversion: str) -> str:
return await (
dag.dagger_pipelines()
.cloudflareworker()
.ci(source, nodeversion)
)@func()
async example(source: Directory, nodeVersion: string): Promise<string> {
return dag
.daggerPipelines()
.cloudflareWorker()
.ci(source, nodeVersion)
}