Skip to content

overlane deploy run

Deploy a passed CI run's artifact to an environment

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Deploys the artifact a passed pipeline run built. The service re-hashes the stored artifact against the digest recorded at build and refuses a changed one (exit 6). Production and protected environments wait for an approval (exit 6, with the command to answer it); a failed provider deploy exits 1 and the previous release keeps serving. Roll back with overlane deploy rollback.

Usage

overlane deploy run --env ENV --commit SHA --run RUN [--artifact NAME] [--expect-digest DIGEST] [--approval ID] [--dry-run]

Flags

Flag Type Required Default Description
--env string yes The environment
--commit string yes The commit the run built
--run string yes The CI run ID
--artifact string no The artifact, when the run produced several
--expect-digest string no Refuse unless the recorded artifact digest equals this
--approval string no Run an action that an approval covers; get the ID from overlane guard approvals list
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane deploy run --env staging --commit 0123456789abcdef0123456789abcdef01234567 --run run_abc123
overlane deploy run --env production --commit 0123456789abcdef0123456789abcdef01234567 --run run_abc123 --approval apr_1

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema deploy run.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "description": "tenant identifier"
        },
        "release": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "schemaVersion": {
                  "type": "string",
                  "const": "1"
                },
                "tenantId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
                  "description": "tenant identifier"
                },
                "projectId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
                  "description": "project identifier"
                },
                "releaseId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "environment": {
                  "type": "string"
                },
                "targetId": {
                  "type": "string"
                },
                "commitSha": {
                  "type": "string",
                  "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
                },
                "artifactDigest": {
                  "type": "string",
                  "pattern": "^sha256:[0-9a-f]{64}$"
                },
                "runId": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "evidenceIds": {
                  "maxItems": 100,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "actor": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "user",
                        "agent"
                      ]
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "succeeded",
                    "failed",
                    "superseded",
                    "rolled_back"
                  ]
                },
                "previousReleaseId": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "live": {
                  "type": "boolean"
                },
                "providerDeploymentId": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 500
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "error": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 500
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "approvalId": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "finishedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "schemaVersion",
                "tenantId",
                "projectId",
                "releaseId",
                "environment",
                "targetId",
                "commitSha",
                "artifactDigest",
                "runId",
                "evidenceIds",
                "actor",
                "status",
                "previousReleaseId",
                "live",
                "providerDeploymentId",
                "url",
                "error",
                "approvalId",
                "createdAt",
                "finishedAt"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "approval": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                },
                "nextCommand": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "summary",
                "nextCommand"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "replay": {
          "type": "boolean"
        }
      },
      "required": [
        "tenantId",
        "release",
        "approval",
        "replay"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.