// Run a Pulumi program package pulumi import ( "dagger.io/dagger" "dagger.io/dagger/core" "universe.dagger.io/docker" "universe.dagger.io/bash" ) // Run a `pulumi up` #Up: { // Source code of Pulumi program source: dagger.#FS // Pulumi version version: string | *"latest" // Pulumi runtime used for this Pulumi program runtime: "dotnet" | "go" | "nodejs" | "python" // Name of your Pulumi stack // Example: "production" stack: string // Create the stack if it doesn't exist stackCreate: *false | true // API token if you want to use Pulumi SaaS state backend accessToken?: dagger.#Secret // Passphrase if you want to use local state backend (Cached by Dagger in buildkit) passphrase?: dagger.#Secret // Build a docker image to run the netlify client _pull_image: docker.#Pull & { source: "pulumi/pulumi-\(runtime):\(version)" } // Run Pulumi up container: bash.#Run & { input: *_pull_image.output | docker.#Image script: { _load: core.#Source & { path: "." include: ["*.sh"] } directory: _load.output filename: "up.sh" } env: { PULUMI_STACK: stack PULUMI_RUNTIME: runtime if true == stackCreate { PULUMI_STACK_CREATE: "1" } if passphrase != _|_ { PULUMI_CONFIG_PASSPHRASE: passphrase } if accessToken != _|_ { PULUMI_ACCESS_TOKEN: accessToken } } workdir: "/src" mounts: { src: { dest: "/src" contents: source } node_modules: { dest: "/src/node_modules" contents: core.#CacheDir & { id: "pulumi-npm-cache" } } } } }