Version Control provides enhanced flexibility and management by enabling tracking of modifications in your pipelines and applications over time. This functionality empowers users to leverage various versions of the same pipeline for purposes such as backup, recovery, A/B testing, among others. Instill VDP offers a pipeline release feature that allows users to manage versions and control deployments.
#Release Object
In the all APIs in Manage Releases, all endpoints follow a consistent structure for request and response bodies. Below are the key fields:
id
: The version of this release.uid
: The immutable UID of the release.name
: The full resource name of the release.description
: A brief description of the release.readme
: A README for the release.rawRecipe
: The pipeline's recipe in YAML format. This is a read-only field that provides a snapshot of the pipeline at the time the user creates the release. For more details, see Pipeline Recipe.recipe
: The JSON representation of the YAML recipe (read-only).
For additional details, please refer to the API reference.
Example Release Object:
{ "name": "users/test/pipelines/sample-pipeline/releases/v1.0.0", "uid": "1dce222a-dc32-4b13-a61f-4bcaf0571363", "id": "v1.0.0", "description": "", "recipe": { "version": "v1beta" }, "createTime": "2024-10-01T07:28:58.962789Z", "updateTime": "2024-10-01T07:28:58.962789Z", "deleteTime": null, "alias": "", "metadata": {}, "readme": "", "rawRecipe": "# VDP Version\nversion: v1beta\n\n# ---------- Data ----------\n# Variables that manually trigger the pipeline and can be referenced in component actions\n# Structure example:\n# variable:\n# key: # Unique identifier for the variable.\n# format: # Format type, e.g., image, string, array:string.\n# title: # Title of this input field.\n# description: # Introduction of what should be input. \n#\n# variable:\nprompt:\n title: Prompt\n format: string\n\n# Custom user-defined output\n# Structure example:\n# output:\n# key: # Unique identifier for the output.\n# title: # Title of this output field.\n# value: # Can be a value or use ${} to reference data.\n#\n# output:\n\n# ---------- Schema ----------\n# Component actions executed during the pipeline run\n# Click \"⌘O\" to add a new component\n# component:\n", "endpoints": { "webhooks": {} }}
#Manage Releases via API
#List Releases
This endpoint returns a paginated list of releases associated with a specific pipeline.
#Create Release
This endpoint allows for creating a release.
#Get Release
This endpoint allows for getting a release.
#Update Release
This endpoint allows for updating a release with a new value.
#Delete Release
This endpoint enables the deletion of a specified release.
The NAMESPACE_ID
, PIPELINE_ID
and VERSION
path parameter must be
replaced by the release owner's ID (namespace), the pipeline ID and the release
version.
For more details, please refer to the API Reference.
#Manage Releases via Console
To utilize this feature, adhere to the following procedure:
- Select the
Release
option located in the top-right corner in the Pipeline Builder page. - Opt for a versioning format that adheres to semantic principles.
- Optionally, provide a description.
- To access prior versions, click on
Releases
and select an older version from the bottom-left corner.