Skip to content

CodePipeline

Floci implements the AWS CodePipeline JSON 1.1 API and a local pipeline execution engine.

Protocol: POST / with Content-Type: application/x-amz-json-1.1 and X-Amz-Target: CodePipeline_20150709.<Action>.

Supported Operations (44 total)

The complete CodePipeline 2015-07-09 API surface is routed:

  • Pipeline lifecycle, state, execution history, start, stop, retry, and rollback
  • Stage transitions, manual approvals, action and rule execution history
  • Custom action types and AWS/third-party worker job polling
  • Webhook registration and tag lifecycle

Pipeline definitions, executions, custom action types, jobs, webhooks, tags, and transition state use Floci's configured storage backend.

Execution

Stages execute in declaration order. Actions with the same runOrder execute in parallel. SUPERSEDED, QUEUED, and PARALLEL execution modes are recognized, with QUEUED and PARALLEL restricted to V2 pipelines.

The following providers execute against local Floci services:

Category Provider Behavior
Source S3 Reads the configured object and publishes the output artifact
Build/Test CodeBuild Starts and monitors the configured local CodeBuild project
Deploy S3 Writes the input artifact to the configured bucket and key
Deploy CodeDeploy Starts and monitors a local CodeDeploy deployment
Invoke Lambda Invokes the configured local Lambda function
Invoke CodePipeline Starts a nested local pipeline execution
Approval Manual Waits for PutApprovalResult
Custom/third-party Any registered action Uses poll, acknowledge, success, and failure job APIs

AWS-managed providers without a corresponding Floci execution adapter fail the action with an AWS-shaped action error. Floci does not call real AWS accounts or third-party SaaS providers.

Configuration

Variable Default Description
FLOCI_SERVICES_CODEPIPELINE_ENABLED true Enables the CodePipeline API
FLOCI_STORAGE_SERVICES_CODEPIPELINE_MODE global mode Overrides CodePipeline storage mode
FLOCI_STORAGE_SERVICES_CODEPIPELINE_FLUSH_INTERVAL_MS 5000 Hybrid storage flush interval

Example

aws --endpoint-url http://localhost:4566 codepipeline create-pipeline \
  --pipeline file://pipeline.json

aws --endpoint-url http://localhost:4566 codepipeline start-pipeline-execution \
  --name local-release

aws --endpoint-url http://localhost:4566 codepipeline list-pipeline-executions \
  --pipeline-name local-release