pipeline

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildAndPush

func BuildAndPush(ctx context.Context, cfg *config.DeployConfig, opts *DeployOptions) (string, error)

BuildAndPush is the exported entry point for the standalone build command

func Deploy

func Deploy(ctx context.Context, opts *DeployOptions) error

Deploy executes the deployment pipeline: citadel.yml's pipeline: block, or the default sequence (ssm-sync → build → cdk (--deploy-infra) → deploy → config-sync (lambda) → wait) when it has none. Every step is a named step of a project.Run (see openRun).

func EnvDiff added in v0.2.0

func EnvDiff(existing, merged map[string]string) []string

EnvDiff renders the added/changed keys between existing and merged as sorted, human-readable lines. Values under secret-looking keys are redacted; the CITADEL_* manifest vars are exempt (they hold names, not values). Keys only ever get added or changed — MergedEnv starts from existing, so nothing is removed.

func FormatLastDeploy added in v0.3.0

func FormatLastDeploy(st *project.State) string

FormatLastDeploy renders a State as the two-line `citadel status` summary.

func LastLocalDeploy added in v0.3.0

func LastLocalDeploy(configPath, env string) string

LastLocalDeploy summarises .citadel/state/<env>.json next to configPath for `citadel status`. It returns "" when this checkout has no .citadel/ or has never deployed env. It never creates anything.

func MergedEnv added in v0.2.0

func MergedEnv(existing, declared map[string]string, secrets []string, ssmPrefix string) (map[string]string, bool)

MergedEnv builds the environment map to write to the function: the function's existing env (CDK-set keys survive), overlaid with the declared env: block (citadel keys win collisions), plus the secret manifest when any secrets are declared. changed reports whether merged differs from existing — callers skip the UpdateFunctionConfiguration call when it is false.

Types

type DeployOptions

type DeployOptions struct {
	ConfigPath  string
	Environment string
	EnvFile     string
	DeployInfra bool
	SkipSSM     bool
	SkipConfig  bool
	DryRun      bool
	StreamLogs  bool
	Wait        bool
	TailLines   int
	Message     string
	Out         io.Writer // where progress is written; nil means os.Stdout
	Version     string    // citadel version, recorded in .citadel/project.yml
}

DeployOptions configures a deployment pipeline run

type Deployer

type Deployer interface {
	Update(ctx context.Context, w io.Writer, cfg *config.DeployConfig, env, imageURI string) error
	WaitStable(ctx context.Context, w io.Writer, cfg *config.DeployConfig, env string) error
}

Deployer performs the runtime-specific "update to new image" step and an optional wait for the deployment to stabilize, writing progress to w.

type Step added in v0.4.0

type Step interface {
	Name() string
	// Plan runs right before the step and decides whether it runs. It may
	// print to out and perform read-only checks (e.g. deploy's CDK-rollout
	// check). true means skip: the step is recorded as skipped.
	Plan(ctx context.Context, sc *StepContext, out io.Writer) (bool, error)
	// Run performs the step, writing to w (terminal + the step's log file).
	Run(ctx context.Context, sc *StepContext, w io.Writer) error
}

Step is one entry of a deploy pipeline.

type StepContext added in v0.4.0

type StepContext struct {
	Cfg            *config.DeployConfig
	Opts           *DeployOptions
	Env            string
	Vars           map[string]string
	ImageURI       string
	SecretsUpdated int
	Target         string
	// Before is the rollback snapshot: the ECS task-definition ARN or the
	// Lambda image URI running before this deploy ("" when none was taken).
	Before string
	// Record closes the ~/.citadel/deployments.db row; set by the deploy step.
	Record func(error)
	// contains filtered or unexported fields
}

StepContext is the state shared by the steps of one deploy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL