# Pipelines ## Getting Started -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about the Catalyst ConvoKraft service that provides abilities to integrate powerful chat bot assistants in your Catalyst application." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/pipelines/getting-started/introduction/" service: "Pipelines" -------------------------------------------------------------------------------- # Getting Started # Introduction Pipelines is a continuous integration and continuous delivery (CI/CD) service offered by Catalyst that helps to streamline and automate your software development and deployment process. With Catalyst Pipelines, you can efficiently build, test, and deploy applications across various platforms and cloud environments. By providing scalable infrastructure, along with seamless integration with popular version control systems and other Catalyst services, the Pipelines service empowers development teams to deliver high-quality software faster, with reduced manual intervention and improved collaboration. Before delving into specifics, let us begin by exploring the general concepts of CI/CD. ### Continuous Integration Continuous Integration (CI) is a software development practice where any updates to the source code repository trigger an automated build process. This process produces deployable release artifacts that progress through the continuous delivery pipeline and are deployed to the designated environments. The key features of Continuous Integration include: **Version Control Integration** CI seamlessly integrates with version control systems like GitHub, GitLab, and Bitbucket. The source code repository is continuously monitored; whenever commits are pushed to the integrated system, the pipeline automatically initiates the compilation, build, and test processes. This ensures that the latest version of the application is always available. **Automated Builds and Testing** CI systems support concurrent builds, which reduces build waiting times and accelerates the overall development process. By running builds in parallel and testing them simultaneously, feedback on multiple code changes is provided more quickly, enhancing productivity and allowing developers to address issues sooner. After the build process, CI systems can automatically run a suite of tests on the new code to identify any issues or regressions. **Instant Feedback** Continuous Integration aims to provide swift feedback on code changes, empowering teams to rectify issues early in the development cycle. This process enhances software quality, minimizes risks, and facilitates faster delivery of new features. ### Continuous Delivery Continuous Delivery builds upon the Continuous Integration (CI) process by taking the deployable release artifacts and automatically deploying them to selected environments. This software engineering approach emphasizes automating the software delivery pipeline, ensuring rapid deployments with minimal manual intervention. The key features of Continuous Delivery include: **Automated Deployments & Environment Management** Continuous Delivery streamlines the deployment of code changes across various environments, including development, testing, staging, and production, ensuring consistent and reliable deployment procedures. It efficiently manages multiple environments with different configurations, allowing code changes to be deployed and tested in isolated environments before being pushed to production. **Incremental Updates & Faster Time to Market** CD enables the smooth delivery of small, incremental changes to production environments. By breaking updates into manageable segments, CD reduces the risks associated with large-scale deployments. This approach promotes quicker feedback loops, allowing for prompt identification and resolution of issues. Ultimately, Continuous Delivery accelerates the time to market for new features and enhancements, ensuring faster delivery of value to end-users. ### CI/CD in Catalyst Pipelines Catalyst Pipelines employs the CI/CD approach to automate the building, testing, and deployment of your applications to preferred environments. Whether you are developing web or mobile applications, you can effortlessly deploy them to any platform, including Catalyst AppSail, Amazon S3, Google Cloud Platform, Heroku, Microsoft Azure, Firebase, and more. Regardless of your programming language, Catalyst Pipelines supports seamless automation for application building and deployment. You can check out some common examples of deployment targets from {{%link href="/en/pipelines/help/deployments/deploy-to-appsail" %}}this help page{{%/link%}}. You can fully leverage the Catalyst ecosystem in the following ways: * Deploy any application in Catalyst using the {{%link href="/en/serverless/help/appsail/introduction/" %}}Catalyst AppSail{{%/link%}} service. * {{%link href="/en/cli/v1/deploy-resources/deploy-all-resources/" %}}Deploy Catalyst applications{{%/link%}} built with the {{%link href="/en/serverless/help/functions/introduction/" %}}Catalyst Serverless Functions{{%/link%}} component to the Catalyst cloud. In both cases, you can seamlessly automate the entire process of building, testing, and deploying your application using the Catalyst Pipelines service. You can {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}create the pipeline{{%/link%}} directly from the {{%link href="https://console.catalyst.zoho.com/" %}}Catalyst console{{%/link%}}. Catalyst Pipelines are executed based on the YAML-based declarative code defined in the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file, where you must define the execution flow of the pipeline. You can define the flow by adding necessary components using our built-in YAML code editor or visual builder according to your specific needs. You can check out {{%link href="/en/pipelines/help/pipelines/components-of-pipeline" %}}this help page{{%/link%}} to learn more about the pipeline components. For more details on configuring the pipeline, refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help page{{%/link%}}. You can choose to integrate your pipeline with any Git provider you prefer, such as GitHub, GitLab or Bitbucket, to automate the execution process. We will delve deep into this topic in {{%link href="/en/pipelines/help/triggers/introduction/#automatic-trigger" %}}this help page{{%/link%}}. You can also implement our Pipeline SDK methods in **{{%link href="/en/sdk/java/v1/pipelines/get-pipeline-details" %}}Java{{%/link%}}**, **{{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-details" %}}Node.js{{%/link%}}** and **{{%link href="/en/sdk/python/v1/pipelines/get-pipeline-details" %}}Python{{%/link%}}** in your application, to fetch the details of pipeline and execute a pipeline. Let us first understand the key advantages of using a pipeline in the next section. -------------------------------------------------------------------------------- title: "Benefits" description: "Learn about the Catalyst ConvoKraft service that provides abilities to integrate powerful chat bot assistants in your Catalyst application." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/pipelines/getting-started/benefits/" service: "Pipelines" -------------------------------------------------------------------------------- # Benefits **Expedite the software development lifecycle** Catalyst Pipelines automates the process of building, testing, and deploying code to selected environments, minimizing manual intervention and enabling rapid delivery of features to end-users. Furthermore, Catalyst pipelines accelerates the development process by providing prompt feedback to developers, facilitating quicker issue resolution and enhancing iteration speed and refinement. Ensuring Reliability and Minimizing Risk By employing automated deployment processes and testing procedures, Catalyst pipelines effectively mitigates the risk of deploying faulty code to production environments. This proactive strategy minimizes the likelihood of service interruptions and downtime. Automation significantly reduces the potential for human error during deployments, ensuring reliable delivery. Ultimately, these practices enhance the overall efficiency of the deployed source code. **Versatility in Development** Catalyst Pipelines facilitates the build process for a diverse range of programming languages, platforms, and tools, providing adaptability for developing, testing, and deploying applications. **Easily customizable & reusable configurations** The Catalyst Pipelines service uses a YAML-based declarative syntax for defining pipelines, allowing you to reuse pipeline definitions according to your needs. You can easily customize the workflow of the pipelines using our built-in YAML code editor or visual builder in the Catalyst console. **Scale up cost effectively** Catalyst Pipelines can handle projects of any size and complexity, from small personal projects to large enterprise-level applications due to its scalable infrastructure. This means it maintains workflow efficiency as the size of the codebase increases proportionally, without any increase in maintenance effort from your end. The automation process paves the way to cost savings in terms of time and resources. Additionally, earlier detection of bugs and issues can prevent costly rework later in the development cycle. **Automating workflows in the Catalyst ecosystem** Catalyst Pipelines seamlessly integrates with other Catalyst services, such as {{%link href="/en/serverless/getting-started/introduction/" %}}Catalyst Serverless Functions{{%/link%}} and {{%link href="/en/serverless/help/appsail/introduction/" %}}Catalyst AppSail{{%/link%}}, enabling application development, streamlined workflow automation, and deployment within the Catalyst ecosystem. -------------------------------------------------------------------------------- title: "Usecases" description: "Learn about the Catalyst ConvoKraft service that provides abilities to integrate powerful chat bot assistants in your Catalyst application." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/pipelines/getting-started/use-cases/" service: "Pipelines" -------------------------------------------------------------------------------- # Use cases Here are some ideal use cases that showcase the versatility and efficiency of the Catalyst Pipelines service: 1. **Rapid Iteration for Startups :** For startups developing web applications, speed and agility are crucial. Catalyst Pipelines enables small teams to: * Quickly deploy new features and updates. * Automatically run tests before each deployment. * Roll back changes easily if any issue arises. * Maintain a stable production environment while experimenting with new ideas. This allows startups to stay competitive and responsive to market demands without sacrificing code quality or stability. 2. **Large-Scale Enterprise Deployments :** Enterprises managing complex web applications across multiple environments can leverage Catalyst Pipelines to: * Standardize deployment processes across teams and projects. * Coordinate deployments across staging, development, and production environments. * Manage A/B testing and other common testing methods at scale This ensures consistency, reduces human error, and streamlines the deployment pipeline for large organizations. 3. **DevOps Culture Enablement :** Organizations transitioning to a DevOps culture can use Catalyst Pipelines to: * Bridge the gap between development and operations teams. * Implement infrastructure-as-code practices. * Automate repetitive deployment tasks. * Provide real-time deployment status and metrics to all stakeholders. This fosters collaboration, increases transparency, and accelerates the software delivery lifecycle. 4. **Quality Assurance and Testing Automation :** QA teams can leverage Catalyst Pipelines to: * Automatically run comprehensive test suites before deployment. * Integrate various testing tools (unit, integration, performance, security). * Generate test reports and code coverage metrics. * Prevent deployments if critical tests fail. This ensures that only high-quality code makes it to production, reducing the risk of introducing bugs or security vulnerabilities. The possibilities are endless with Catalyst Pipelines as it supports a wide range of web application deployment scenarios. From small startups to large enterprises, and from simple websites to complex micro services architectures, the Pipelines service provides the tools necessary for efficient, reliable, and scalable deployments. -------------------------------------------------------------------------------- title: "Quick Start Guide" description: "Learn about the Catalyst ConvoKraft service that provides abilities to integrate powerful chat bot assistants in your Catalyst application." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/pipelines/getting-started/quick-start-guide/" service: "Pipelines" -------------------------------------------------------------------------------- # Quick Start Guide This section details the entire process of utilizing the Catalyst Pipelines service, from creating the pipeline and configuring it by defining the necessary components in a YAML file, to executing the pipeline. Let us have a look at the steps in detail: 1. **Create a Catalyst project:** Access the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}} to {{%link href="https://docs.catalyst.zoho.com/en/getting-started/catalyst-projects/#create-a-catalyst-project" %}}create a new project{{%/link%}}. After the project creation is done, you will be able to access the {{%link href="/en/pipelines" %}}Catalyst Pipelines{{%/link%}} service in the console. You can also explore {{%link href="https://docs.catalyst.zoho.com/en/" %}}other Catalyst services{{%/link%}} from the console. 2. **Create a pipeline:** In the Catalyst Pipelines service, you can create a pipeline directly from the console. Refer to {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}his help page{{%/link%}} to know the detailed steps to create a pipeline. * **Connect an Integration Source** - When creating a pipeline, you can choose to integrate it with any Git provider, such as {{%link href="https://github.com/" %}}GitHub{{%/link%}}, {{%link href="https://about.gitlab.com/" %}}GitLab{{%/link%}}, or {{%link href="https://bitbucket.org/product/" %}}Bitbucket{{%/link%}}. To enable this, you need to configure the pipeline execution flow in the {{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/introduction" %}}catalyst-pipelines.yaml{{%/link%}}{{%/badge%}} file and commit this file to the integrated Git provider repository. This setup will automatically trigger the pipeline whenever changes are pushed to the linked repository. When the pipeline is triggered, the complete source code from the integrated Git repository, along with the YAML file, will be automatically fetched and downloaded as a ZIP file to Catalyst. Note that this integration is optional. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also create the pipeline without integrating it with an external repository. In that case, you will need to manually trigger the pipeline everytime from the Catalyst console.{{%/note%}} 3. **Configure the pipeline:** You can configure the pipeline execution flow by defining necessary components like {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages" %}}stages{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}jobs{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}runners{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}images{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}conditions{{%/link%}} and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables" %}}variables{{%/link%}} based on your requirements in the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}}. You can use our built-in YAML code editor or visual builder for this purpose. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this page{{%/link%}} for more details on configuring the pipeline. 4. **Commit the catalyst-pipelines.yaml file:** This step applies only if you have linked an integration source with the pipeline during its creation. Once you have finished configuring the pipeline, you need to commit the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file to any preferred branch in your source repository. The YAML file will be committed to the branch in the selected integration source from **Step 2**. It is mandatory to commit the YAML file each time any changes are made to the pipeline flow. Note: If you have not connected the pipeline with an integration source, you can skip this step and proceed to execute the pipeline. 5. **Execute the pipeline:** After configuring the pipeline, you can initiate its execution directly from the Catalyst console. If the pipeline is linked to an integration source, it will automatically execute whenever any changes are pushed to the linked repository. Additionally, you can monitor the execution status and access detailed logs of the pipeline execution using the **Basic** and **Advanced** tabs within the **Execution History** section of the console. We will discuss this in detail in {{%link href="/en/pipelines/help/triggers/monitor-execution-status" %}}this help page{{%/link%}}. ## Help Components ### catalyst-pipelines.yaml -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about the Catalyst Pipelines service and the basics of YAML schema definitions." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/introduction/" service: "Pipelines" related: - Pipeline Triggers (/en/pipelines/help/triggers/introduction) -------------------------------------------------------------------------------- # catalyst-pipelines.yaml # Introduction The {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file serves as the core component for executing the pipeline, where we define its workflow. You can define the execution flow of the pipeline in this file by adding the required {{%link href="/en/pipelines/help/pipelines/components-of-pipeline" %}}pipeline components{{%/link%}} using our built-in code editor or visual builder. You can check out {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help page{{%/link%}} to learn more about configuring the pipeline. Whether the pipeline is triggered {{%link href="/en/pipelines/help/triggers/introduction/#manual-trigger" %}}manually{{%/link%}} or {{%link href="/en/pipelines/help/triggers/introduction/#automatic-trigger" %}}automatically{{%/link%}}, this file dictates the pipeline's actions. If your pipeline is linked to a version control system, any modifications to the source code in the linked repository automatically triggers the pipeline execution, running the workflow defined in this file. Similarly, when the pipeline is triggered manually from the Catalyst console, this file is executed directly from the console interface. Before delving into the pre-defined YAML schema definitions of Catalyst Pipelines and its usage, let's take a moment to explore YAML in broader terms. A YAML file is a versatile format for representing structured data across various contexts, such as configuration files, data interchange, and serialization. The common characteristics of a YAML file include : * YAML is not tied to any specific programming language, making it suitable for exchanging data between different systems and platforms. * This file comprises of simple key-value pairs, lists, and maps, which can be combined and nested to represent complex data structures and configurations. * It uses indentation to define the structure of data. * YAML supports various data types, including scalars (strings, integers, floats, booleans, null), lists, maps (key-value pairs), and nested structures. Catalyst Pipelines follows its own YAML schema standards, which must be strictly followed when configuring the pipeline. In the next section, we'll delve deeper into the Catalyst YAML schema definitions. -------------------------------------------------------------------------------- title: "Schema Reference" description: "Learn in detail about the pre-defined schema definitions of the catalyst-pipelines.yaml file." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/schema-reference/" service: "Pipelines" -------------------------------------------------------------------------------- # Schema Reference The YAML schema reference for Catalyst Pipelines outlines the pre-defined keys for various components of the pipeline. By using these keys, you can incorporate the necessary components and define the execution flow of the pipeline. We will be discussing the components in detail in their respective help pages. You can get started from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners/" %}}here{{%/link%}}. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this page{{%/link%}} to learn more about configuring the pipeline from the Catalyst console. ### YAML Definitions Here's the the list of keys supported in Catalyst for the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file. <table class="content-table"> <thead> <tr> <th>Keyword</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}version{{%/badge%}}</td> <td>The pipeline version can be defined as any integer value, serving the purpose of preserving pipeline configurations as distinct and reusable versions.</td> </tr> <tr> <td>{{%badge%}}runners{{%/badge%}}</td> <td>A runner is a virtual machine configuration that can be defined at the {{%bold%}}stage{{%/bold%}} level or {{%bold%}}job{{%/bold%}} level. You can define the runner specification as a value of the {{%badge%}}config-id{{%/badge%}} key in {{%badge%}}runners{{%/badge%}}. Learn more about this detail from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}this help page{{%/link%}}.</td> </tr> <tr> <td>{{%badge%}}images{{%/badge%}}</td> <td>An image is a package or set of dependencies required for the execution of jobs in the pipeline. Images can be defined at the {{%bold%}}stage{{%/bold%}} level or {{%bold%}}job{{%/bold%}} level. You can define the name of the image in the {{%badge%}}image{{%/badge%}} key and the URL of the external package registry (like Dockerhub) in the {{%badge%}}registry{{%/badge%}} key. You must also define the {{%badge%}}auth{{%/badge%}} key to authenticate the specified registry. Learn more about this detail from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}this help page{{%/link%}}. </td> </tr> <tr> <td>{{%badge%}}auth{{%/badge%}}</td> <td>To authenticate any external registry accounts and pull the required packages for job execution, you will need to specify the {{%badge%}}username{{%/badge%}} and {{%badge%}}password{{%/badge%}} keys in the {{%badge%}}auth{{%/badge%}} key. You can refer to the {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}this help section{{%/link%}} to know more about this.</td> </tr> <tr> <td>{{%badge%}}variables{{%/badge%}}</td> <td>This keyword is used to store placeholder values in the {{%bold%}}pipeline{{%/bold%}} level or {{%bold%}}job{{%/bold%}} level. Check out {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables" %}}this help page{{%/link%}} for more details.</td> </tr> <tr> <td>{{%badge%}}steps{{%/badge%}}</td> <td>They are a set of commands that can be defined to carry out the build, test, and deploy processes in the pipeline. You can define the steps based on the applications you build, the testing procedures for it, and the environments in which the application has to be deployed. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps" %}}this help page{{%/link%}} to learn more about steps.</td> </tr> <tr> <td>{{%badge%}}jobs{{%/badge%}}</td> <td>A job is a sequence of steps defined in a stage. You can define up to five jobs within a stage, and under each job, you can define {{%badge%}}steps{{%/badge%}}, {{%badge%}}variables{{%/badge%}}, {{%badge%}}runners{{%/badge%}},and {{%badge%}}images{{%/badge%}} using the {{%badge%}}jobs{{%/badge%}} key. If you have configured the pipeline to build your application before testing or deploying it, you can temporarily store the generated build files of your code in the Catalyst Stratus service. These configurations can be defined using the {{%badge%}}artifacts{{%/badge%}} key. This key includes two other sub-keys named {{%badge%}}notify{{%/badge%}} and {{%badge%}}approve{{%/badge%}}. You can learn more about this in detail from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}this help page{{%/link%}}. </td> </tr> <tr> <td>{{%badge%}}notify{{%/badge%}}</td> <td>This key allows you to send notifications either at the start of job execution or upon successful completion of the job. You can use the {{%badge%}}on-start{{%/badge%}} or {{%badge%}}on-end{{%/badge%}} keys for this purpose. Check out {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}this help section{{%/link%}} for more details.</td> </tr> <tr> <td>{{%badge%}}approve{{%/badge%}}</td> <td>This key is used for {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}approval jobs{{%/link%}} to define the details of the job reviewer and the custom approval message. You can set the approval type using the {{%badge%}}type-name{{%/badge%}} sub-key and add the email address of the reviewer and a custom review message in the {{%badge%}}type-variables{{%/badge%}} key that includes the {{%badge%}}reviewers{{%/badge%}} and {{%badge%}}message{{%/badge%}} sub-keys, respectively. </td> </tr> <tr> <td>{{%badge%}}artifacts{{%/badge%}}</td> <td>This key is used to represent the upload and download process of the application build files generated during pipeline execution. For this, you can set the values in the {{%badge%}}upload{{%/badge%}} and {{%badge%}}download{{%/badge%}} keys respectively. You can learn more about artifacts from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts" %}} its help page{{%/link%}}. </td> </tr> <tr> <td>{{%badge%}}upload{{%/badge%}}</td> <td>This key is used to store the generated build zip files in the Catalyst Stratus service. You must define the name of the build file, the location in which the file has to be stored, and other file conditions using the {{%badge%}}name{{%/badge%}}, {{%badge%}}location{{%/badge%}}, and {{%badge%}}files{{%/badge%}} sub-keys respectively.</td> </tr> <tr> <td>{{%badge%}}download{{%/badge%}}</td> <td>This key can be used to retrieve the stored build zip files from the Catalyst Stratus service. You can also define the {{%badge%}}name{{%/badge%}}, {{%badge%}}location{{%/badge%}}, and {{%badge%}}files{{%/badge%}} sub-keys similar to the upload keyword.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages" %}}stages{{%/link%}}{{%/badge%}}</td> <td>A stage is a distinct phase that contains multiple jobs in it. You can define up to five stages in a pipeline, each containing a set of jobs. You can also define {{%badge%}}runners{{%/badge%}} and {{%badge%}}images{{%/badge%}} at the stage level.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#when-equal" %}}when-equal{{%/link%}}{{%/badge%}}</td> <td>This key can be used to evaluate whether two values exactly match with one another and proceed with the specified execution flow of the pipeline, only if the validation holds true.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#when-not" %}}when-not{{%/link%}}{{%/badge%}}</td> <td>This key can be used to evaluate whether a particular condition is either {{%badge%}}true{{%/badge%}} or {{%badge%}}false{{%/badge%}}. Based on the result of the evaluation, the defined pipeline flow will be executed.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#when-not-equal" %}}when-not-equal{{%/link%}}{{%/badge%}}</td> <td>This key can be used to evaluate whether two values do not match with one another, then proceed with executing the defined pipeline flow.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#when-andwhen-or" %}}when-and{{%/link%}}{{%/badge%}}</td> <td>This key can be used to evaluate whether the two conditions defined in the {{%badge%}}and{{%/badge%}} key hold true. If yes, then the flow defined in the {{%badge%}}when{{%/badge%}} condition gets executed.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#when-andwhen-or" %}}when-or{{%/link%}}{{%/badge%}}</td> <td>This key can be used to evaluate whether either one of the conditions defined in the {{%badge%}}or{{%/badge%}} key holds true. If yes, then the pipeline flow defined in the {{%badge%}}when{{%/badge%}} key gets executed.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/#global-configuration" %}}pipeline-when{{%/link%}}{{%/badge%}}</td> <td>The conditional logic that can be defined at the pipeline level, which dictates the execution flow of the whole pipeline. You can use the {{%badge%}}and{{%/badge%}}, {{%badge%}}equal{{%/badge%}}, {{%badge%}}or{{%/badge%}}, {{%badge%}}not{{%/badge%}}, {{%badge%}}not-equal{{%/badge%}} key along with the {{%badge%}}pipeline-when{{%/badge%}} condition.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners/#global-configuration" %}}pipeline-runner{{%/link%}}{{%/badge%}}</td> <td>This key can be used to define a runner at the pipeline level, which is accessible across all stages and jobs.</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images/#global-configuration" %}}pipeline-image{{%/link%}}{{%/badge%}}</td> <td>This key can be used to define an image at the pipeline level, which is accessible across all stages and jobs.</td> </tr> </tbody> </table> {{%note%}}{{%bold%}}Note:{{%/bold%}} When defining the pipeline execution flow in the {{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images/#global-configuration" %}}pipeline-image{{%/link%}} {{%/badge%}} file, ensure to utilize the exact keywords designated by Catalyst as keys and assign the corresponding data to each key.{{%/note%}} -------------------------------------------------------------------------------- title: "Implementation" description: "Learn about the step-by-step instructions to configure the pipeline directly from the Catalyst console." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/implementation/" service: "Pipelines" related: - Runners (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners) - Images (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images) - Artifacts (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts) - Variables (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables) - When-condition (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition) - Steps (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps) - Jobs (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction) - Stages (/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages/introduction) - YAML Schema Reference (/en/pipelines/help/catalyst-pipelines.yaml/schema-reference) - Pipeline Triggers (/en/pipelines/help/triggers/introduction) -------------------------------------------------------------------------------- # Implementation You can build a pipeline using the built-in visual builder or code editor directly from the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. Please ensure to follow the below listed steps: Let us begin by configuring the pipeline using the code editor. 1. After you create the pipeline, the code editor opens automatically. A basic YAML code will be pre-defined in this file, you can start updating it as required. 2. In the Assistant panel on the right, click **Add Variable**. Enter the key-value pairs and click **Generate**. 3. Click **Add to Code**. The variables are now added in the YAML code. 4. Now, let us add the required images for the pipeline execution. Click **Create Image**. In the **Create Image** pop-up, enter the Image Variable name, image name, the registry URL, the username and password of the registry. Click **Generate**. Click **Add to Code**. The image is now added in the YAML code. 5. Click **Add Runners**. Enter the runner name and choose the runner configuration. You can learn more about runner configurations from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}this help page{{%/link%}}. Click **Generate**. Click **Add to Code**. The runner is now added in the YAML code. 6. Let us now add the required jobs for the pipeline. Click **Add Job**. Provide a name for the job. You can create the job using any one of the following options: * **Create using Steps** : This option allows you to define your own set of commands in the script editor below. You can select the required {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}runner{{%/link%}} and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}image{{%/link%}} configurations for the job. Add the path of the current working directory as shown below. Click **Generate**. * **Create using Approvals** : This creates an {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/approval-job" %}}approval job{{%/link%}} for the pipeline. Select the required approver email address and enter a message as shown below. Click **Generate**. * **Create using Templates** : This creates the jobs using the pre-defined templates available in Catalyst. If your use case fits into any of these operations, you can directly choose the template. Click **Generate**. Click **Add to Code** and the job will be added to the YAML. 7. Now, let us define the stages of the pipeline. Click **Add Stage**. Provide the stage name and select the required jobs for the stage. Click **Show Advanced Options** and enable **Checks** if you need to add any conditional logic within the stage execution. You can add checks as shown below and click **Add to Stage**. Click **Generate** and click **Add to Code**. The stage is now added in the YAML code. Once you have completed configuring the YAML, you can click **Save**. When you need to save your configurations partially and continue editing them later, you can click **Save as Draft**. You can choose the branch in which the YAML file has to be committed as shown in the screenshot below and click **Commit**. Enter the commit message and click **Commit**. The {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file will be updated in your Git repository. Similarly, you can configure the same pipeline using the visual builder. First, switch to the **Builder tab** as shown in the screenshot below. The drag-and-drop builder interface will open automatically. Here, you can simply drag and drop the components and follow the same steps as mentioned above. After configuring the YAML for the first time, you can make changes anytime by clicking on **Configure YAML**. You can also add global variables that are accessible throughout the pipeline by simply clicking on **Global Variables**. Add the variable name as key and its corresponding value. Click **Save**. We will be discussing executing the pipeline in the next section. #### Build a Pipeline -------------------------------------------------------------------------------- title: "Runners" description: "Learn about the Catalyst Pipelines runners in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Build the Pipeline In this section we will be discussing about the various pipeline components in detail, their usage in the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file, how to incorporate these components directly from the Catalyst console and build a Catalyst pipeline. Let us get started! # Runners ## Introduction A runner is an agent or computing resource that executes the jobs defined in a pipeline. Catalyst runners offer a robust and flexible infrastructure for efficiently and reliably building, testing, and deploying software applications. You can define the required runners for the pipeline as key-value pairs using the {{%badge%}}runners{{%/badge%}} keyword. The runner configurations supported by Catalyst Pipelines are listed below: <table class="content-table"> <thead> <tr> <th>Runner config</th> <th>RAM Storage</th> <th>CPU Capacity</th> <th>Disk Space</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}Low{{%/badge%}}</td> <td>1 GB</td> <td>0.8 vCPU</td> <td>2 GB</td> </tr> <tr> <td>{{%badge%}}Medium{{%/badge%}}</td> <td>2 GB</td> <td>1.2 vCPU</td> <td>4 GB</td> </tr> <tr> <td>{{%badge%}}High{{%/badge%}}</td> <td>4 GB</td> <td>2.0 vCPU</td> <td>8 GB</td> </tr> </tbody> </table> {{%note%}}{{%bold%}}Note:{{%/bold%}} 1. Defining a runner is not mandatory. If a runner is not specified, the {{%badge%}}medium{{%/badge%}} config runner is taken by default to execute the jobs. 2. You can define runners at the pipeline level, stage level, or job level. In case of multiple definitions, the one specified at the lowest level (i.e., job) takes precedence. {{%/note%}} ### Properties of a Runner <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>Runner name (The runner variable name used to access the runner)</td> <td></td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}config-id{{%/badge%}}</td> <td>The ID of the required runner configuration. {{%badge%}}Low{{%/badge%}} = {{%badge%}}config-id{{%/badge%}} : 1<br/> {{%badge%}}Medium{{%/badge%}} = {{%badge%}}config-id{{%/badge%}} :2<br/> {{%badge%}}High{{%/badge%}} = {{%badge%}}config-id{{%/badge%}} : 3 </td> <td>Yes</td> </tr> </tbody> </table> ### YAML Code Snippet for Runner {{%code class="language-yaml" scroll="set-scroll"%}}runners: runner1: config-id: 2 runner2: config-id: 3 {{% /code%}} ### Global Configuration You can also define the runners at the pipeline level, if required. This runner configuration will be accessible to all the stages and jobs. You can configure a runner at the pipeline level as follows: {{%code class="language-yaml" scroll="set-scroll"%}}pipeline-runner:runner1{{% /code%}} -------------------------------------------------------------------------------- title: "Images" description: "Learn about the Catalyst Pipelines images in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Images # Introduction An image is an executable package that contains dependencies needed to run a job in the pipeline. Catalyst Pipelines seamlessly integrates with container registries such as Docker Hub or other private registries to pull images and dependencies during the pipeline execution. You can pick from a wide range of images supporting varied operating systems, programming languages, frameworks, and tools to suit your specific requirements. Additionally, using predefined images ensures consistency and reproducibility across different stages of the pipeline and environments. You can pull images by specifying the container registry URL explicitly using the {{%badge%}}registry{{%/badge%}} key. If the registry URL is not defined, the images are pulled from the {{%link href="https://hub.docker.com/" %}}Dockerhub{{%/link%}} container by default. You can define the required images for the pipeline using the {{%badge%}}images{{%/badge%}} key. ### Properties of an Image <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>Image Variable Name</td> <td>The image variable name used to access the image</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}image{{%/badge%}}</td> <td>The name of the image</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}registry{{%/badge%}}</td> <td>The URL from which the image has to be fetched.</td> <td>No</td> </tr> <tr> <td>{{%badge%}}auth{{%/badge%}}</td> <td>Contains the username and password keys.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}auth{{%/badge%}}</td> <td>Contains the username and password keys.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}username{{%/badge%}}</td> <td>The account username credential of the specified registry.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}password{{%/badge%}}</td> <td>The account password credential of the specified registry.</td> <td>Yes</td> </tr> </tbody> </table> {{%note%}}{{%bold%}}Note:{{%/bold%}} 1. Defining an image is not mandatory. If a image is not specified, the default Ubuntu image with Catalyst CLI pre-installed is taken by default to execute the jobs. 2. You can define images at the pipeline level, stage level, or job level. In case of multiple definitions, the one specified at the lowest level (i.e., job) takes precedence. 3. If the same image is specified for two jobs within a stage, the cached image will automatically be reused for the second job, enhancing performance speed. 4. If the image name is specified and the registry URL is not given, then make sure to provide the {{%badge%}}username{{%/badge%}} and {{%badge%}}password{{%/badge%}} credentials of your {{%link href="https://hub.docker.com/" %}}Dockerhub{{%/link%}} account in the {{%badge%}}auth{{%/badge%}} key. The image will be pulled from DockerHub by default. For security reasons, we highly recommend you store your password information as a variable in the global configuration and access it using {{%badge%}}<< env.{variable_name} >>{{%/badge%}} in the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file. You can refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help section{{%/link%}} to learn how to configure variables globally from the console.{{%/note%}} ### YAML Code Snippet for Image Here's an example code snippet for images that can be defined in a pipeline: {{%code class="language-yaml" scroll="set-scroll"%}}images: testImage1: image: node:18 registry: my.private.registry.com auth: username: ameliab password: zylker@123 testImage2: image: node:20 auth: username: ameliab password: zylker@123 {{%/code%}} The above code snippet illustrates the following: * Two images are defined in the pipeline({{%badge%}}testImage1{{%/badge%}} and {{%badge%}}testImage2{{%/badge%}}). * The {{%badge%}}testImage1{{%/badge%}} uses the node18 dependencies from the defined registry URL. We have added the authentication credentials for the registry to the keyword {{%badge%}}auth{{%/badge%}}. * By default, since the registry is not specified, the {{%badge%}}testimage2{{%/badge%}} uses the {{%bold%}}node20{{%/bold%}} dependencies from {{%link href="https://hub.docker.com/" %}}Dockerhub{{%/link%}}. ### Global Configuration You can also define the image at the pipeline level, if required. This image configuration will be accessible to all the stages and jobs. You can configure an image at the pipeline level as follows: {{%code class="language-json"%}} pipeline-image: image1{{%/code%}} -------------------------------------------------------------------------------- title: "Variables" description: "Learn about the Catalyst Pipelines variables in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Variables # Introduction A variable is a placeholder value that can be defined at the job level or pipeline level as required. You cannot define a variable at the stage level. You can define the required variables for the pipeline as key-value pairs using the {{%badge%}}variables{{%/badge%}} key. ### Properties of a Variable <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>Variable Name</td> <td>Specify a string value for the variable</td> <td>Yes</td> </tr> </tbody> </table> ### YAML Code Snippet for Variable You can declare a variable at the job level in the {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file using the below syntax: {{%code class="language-yaml" scroll="set-scroll"%}}variables: target:'app3.1' {{%/code%}} ### Global Variables You can define a variable at the pipeline level directly from the console. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help page{{%/link%}} to know the exact steps to create a variable. {{%note%}}{{%bold%}}Note:{{%/bold%}} You must mandatorily set a global variable named {{%bold%}}CATALYST_TOKEN{{%/bold%}} and input the token generated from your Catalyst CLI, in case you have used Catalyst CLI in the pipeline execution. To fetch your token, please refer to the steps mentioned in {{%link href="https://docs.catalyst.zoho.com/en/cli/v1/cli-options/#--token-lttokengt" %}}this help section{{%/link%}}.{{%/note%}} ### Access the Variable A variable can be accessed by using any of the following methods: * **{{%badge%}}<< variables.{variable_name} >>{{%/badge%}}** : This can be used to access any variable defined at the job level. * **{{%badge%}}<< event.{variable_name} >>{{%/badge%}}** : This can be used to access any variables passed in the event JSON while triggering the pipeline manually from the console. * **{{%badge%}}<< env.{variable_name} >>{{%/badge%}}** : This can be used to access variables defined in the pipeline level. -------------------------------------------------------------------------------- title: "When Condition" description: "Learn about the Catalyst Pipelines conditions in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # When Condition # Introduction The when condition is a basic logic that can be configured to define the execution flow of the pipeline. You can define the when condition at the stage level, job level, or the pipeline level. It is important to note that the when condition can be applied at any of these levels, and the order of the components is not significant. The following operators can be used along with the when condition: ### when-equal {{%code class="language-yaml" scroll="set-scroll"%}}when: equal: - << status.build.package >> - success when-not-equal {{%/code%}} ### when-not-equal {{%code class="language-yaml" scroll="set-scroll"%}}not-equal: - << status.build.package >> - failed {{%/code%}} ### when-not {{%code class="language-yaml" scroll="set-scroll"%}}when: -not:true {{%/code%}} ### when-and/when-or {{%code class="language-yaml" scroll="set-scroll"%}}when: or: - and: - equal: - << pipeline.status.build >> - success - not-equal: - << pipeline.status.build.hello-world >> - failed - equal: - << pipeline.event.{{Event Variable Placeholder}} >> {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} You will not be able to configure when conditions for {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/approval-job/" %}}approval jobs{{%/link%}}.{{%/note%}} ### Global Configuration You can define a when condition at the pipeline level, if required. This condition solely determines the pipeline execution flow. You can configure the condition as follows: {{%code class="language-yaml" scroll="set-scroll"%}}pipeline-when: equal: - << event.ref >> - refs/heads/main {{%/code%}} -------------------------------------------------------------------------------- title: "Steps" description: "Learn about the Catalyst Pipelines steps in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Steps # Introduction A step is the smallest building block of a pipeline. They are a set of commands to be executed to build, deploy, or test the source code. You can define the steps for your {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}job{{%/link%}}, by adding the commands using a hyphen (-). You can define the steps for the pipeline using the {{%badge%}}steps{{%/badge%}} key. ### YAML Code Snippet for Steps {{%code class="language-yaml" scroll="set-scroll"%}}steps: - ls - >- catalyst deploy appsail --name spring-boot --build-path "/catalyst/SNAPSHOT.jar" --stack java17 --platform javase --command "sh -c 'java -jar SNAPSHOT.jar --server.port=\${X_ZOHO_CATALYST_LISTEN_PORT}'" --verbose {{%/code%}} -------------------------------------------------------------------------------- title: "Artifacts" description: "Learn about the Catalyst Pipelines artifacts in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Artifacts # Introduction An artifact is a file or zip generated upon the application build process during the execution of the pipeline. These artifacts are deployable entities, which includes infrastructure and apps. You can store and retrieve the artifacts during the pipeline execution in the Catalyst Stratus service. There are two types of artifacts : * **A single artifact file :** This build file can be direcly uploaded to a bucket in Catalyst Stratus and then downloaded when required. * **An artifact zip :** This type includes configuring regular expressions to pick the relavant files, zip them and upload to a bucket in Catalyst Stratus and then download the zip when required. You can define the required artifacts for the pipeline as key-value pairs using the {{%badge%}}artifacts{{%/badge%}} key. These artifacts can be included as a part of the jobs created using steps, in the Catalyst console. You can refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation/" %}}this help section{{%/link%}} to learn more artifact configuration in jobs. However they are not applicable to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/parallel-job/" %}}parallel{{%/link%}} and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/approval-job/" %}}approval{{%/link%}} jobs. ### Properties of an Artifact #### Upload <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}upload{{%/badge%}}</td> <td>This key contains the configurations required for the artifact upload process.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}type{{%/badge%}}</td> <td>Provide the value as either {{%badge%}}file{{%/badge%}} or {{%badge%}}zip{{%/badge%}}.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}name{{%/badge%}}</td> <td>The name of the artifact. (file name or zip name) For example : SNAPSHOT.jar (for file type) Build.zip (for zip type) </td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}file{{%/badge%}}</td> <td>The source path of the artifact file. For example : target/demo-0.0.1-SNAPSHOT.jar </td> <td>Yes (if the artifact type is file)</td> </tr> <tr> <td>{{%badge%}}regex{{%/badge%}}</td> <td>The regular expression pattern that identifies files and compresses all the matching ones. For example : - /catalyst/node_modules/**/ </td> <td>Yes (if the artifact type is zip)</td> </tr> <tr> <td>{{%badge%}}location{{%/badge%}}</td> <td>The location path in Stratus where the file or zip has to be uploaded. For example : stratus://<<env.BUCKET_NAME >>/ (destination) </td> <td>Yes</td> </tr> </tbody> </table> #### Download <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}download{{%/badge%}}</td> <td>This key contains the configurations required for the artifact download process.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}type{{%/badge%}}</td> <td>file or zip. Provide this value based on your preference.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}name{{%/badge%}}</td> <td>The name of the artifact in Stratus. For example : SNAPSHOT.jar (for file type) Build.zip (for zip type) </td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}file{{%/badge%}}</td> <td>The destination path where the file has to be downloaded. For example : /SNAPSHOT.jar. </td> <td>Yes (if the artifact type is file)</td> </tr> <tr> <td>{{%badge%}}location{{%/badge%}}</td> <td>The Stratus location from which the file has to be downloaded. For example : stratus://<<env.BUCKET_NAME >>/ artifact name </td> <td>Yes</td> </tr> </tbody> </table> {{%note%}}{{%bold%}}Note:{{%/bold%}} If the artifact type is set to zip, the zip file will be downloaded to the root directory by default. {{%/note%}} Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}this section{{%/link%}} for a sample YAML code snippet configured with artifacts. -------------------------------------------------------------------------------- title: "Stages" description: "Learn about the Catalyst Pipelines stages in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Stages # Introduction A stage is a pivotal component in a pipeline that organizes the execution sequence of jobs within a pipeline. Each stage represents a distinct phase in the software delivery process, such as building, testing, or deploying an application. Stages allow for logical grouping and separation of jobs, thereby enabling parallel execution for faster build and deployment times. They also facilitate efficient management of complex pipelines by breaking down the workflow into manageable units, providing clarity and control over the entire deployment process. You can define the required stages for the pipeline as key-value pairs using the {{%badge%}}stages{{%/badge%}} key. You can fetch the current status of a stage by using {{%badge%}}&lt;&lt; status.{stage_name} &gt;&gt;{{%/badge%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} 1. Multiple stages in a pipeline run sequentially by default, proceeding one after the other. You have the option to define conditions for stage execution, allowing for personalized control over when each stage is triggered. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}this section{{%/link%}} to learn about defining conditions in the pipeline. 2. In a pipeline configuration, there must be at least one stage and no more than five stages. Additionally, each stage can accommodate a maximum of five jobs, which includes {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/parallel-job" %}}parallel jobs{{%/link%}}.{{%/note%}} ### Properties of a Stage You can define the stages in your pipeline with one or more combinations of the below listed attributes: <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>Provide the stage name as a string value.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}jobs{{%/link%}}{{%/badge%}}</td> <td>An array of jobs</td> <td>Yes</td> </tr> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}runner{{%/link%}}{{%/badge%}}</td> <td>The name of the runner upon which the jobs have to be executed</td> <td>No</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}image{{%/link%}}{{%/badge%}}</td> <td>The name of the image which is used for job execution in the particular stage. </td> <td>No</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}when{{%/link%}}{{%/badge%}}</td> <td>The conditional logic based on which the stage must be executed. You can use {{%badge%}}"and"{{%/badge%}}, {{%badge%}}"or"{{%/badge%}}, {{%badge%}}"not"{{%/badge%}}, {{%badge%}}"not-equal"{{%/badge%}}, or {{%badge%}}"equal"{{%/badge%}} operators along with the base condition. </td> <td>No</td> </tr> </tbody> </table> ### YAML Code Snippet for Stage Here's an example code snippet for stages that can be defined in a pipeline: {{%code class="language-yaml" scroll="set-scroll"%}}stages: - name: testStage1 runner: runner1 image: testImage1 jobs: - testJob1 when: - and: - equal: - << pipeline.event.branch >> - master - true - name: testStage2 jobs: - testJob1 - - testJob2 - testJob3 {{%/code%}} The above code illustrates the following workflow: * There are two stages defined in the pipeline - {{%badge%}}testStage1{{%/badge%}} and {{%badge%}}testStage2{{%/badge%}}. * The stage {{%badge%}}testStage1{{%/badge%}} executes one job({{%badge%}}testJob1{{%/badge%}})and the stage {{%badge%}}testStage2{{%/badge%}} executes three jobs({{%badge%}}testJob1{{%/badge%}} and a parallel job).The parallel job includes the jobs {{%badge%}}testJob2{{%/badge%}} and {{%badge%}}testJob3{{%/badge%}},respectively. * The runner and image has been defined at the stage level and will be utilized by both the stages. * The when condition validates if the current branch points to master, and if that holds true, the {{%badge%}}testJob1{{%/badge%}} will be executed. ##### Jobs -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about the Catalyst Pipelines jobs in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Jobs # Introduction A job is a sequence of {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps" %}}steps{{%/link%}} to be executed in the pipeline. It is mandatory to define at least one job in the pipeline. You can define the required jobs for the pipeline as key-value pairs using the {{%badge%}}jobs{{%/badge%}} key. Apart from the regular jobs defined in the pipeline, you can configure the following jobs as well : * **Approval Job** * **Parallel Job** You can retrieve the status of a job by using {{%badge%}}&lt;&lt; status.{stage_name}.{job_name} &gt;&gt;{{%/badge%}}. ### Properties of a Job <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables" %}}variables{{%/link%}}{{%/badge%}}</td> <td>An array of variables</td> <td>No</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts" %}}artifacts{{%/link%}}{{%/badge%}}</td> <td>This includes the {{%badge%}}upload{{%/badge%}} and {{%badge%}}download{{%/badge%}} keys. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts" %}}this help page{{%/link%}} for more details.</td> <td>No</td> </tr> <tr> <td>{{%badge%}}notify{{%/badge%}}</td> <td>This key can be configured to send notification emails about the job before it starts execution and after the job execution completes. Contains the sub-keys {{%badge%}}on-start{{%/badge%}} and {{%badge%}}on - end{{%/badge%}} </td> <td>No</td> </tr> <tr> <td>{{%badge%}}on-start / on -end{{%/badge%}}</td> <td>Contains the sub-keys {{%badge%}}notify-type{{%/badge%}} and {{%badge%}}notify-variables{{%/badge%}}.</td> <td>Yes (if {{%badge%}}notify{{%/badge%}} is used)</td> </tr> <tr> <td>{{%badge%}}notify-type{{%/badge%}}</td> <td>Provide the value as {{%badge%}}email{{%/badge%}} .</td> <td>Yes (if {{%badge%}}notify{{%/badge%}} is used)</td> </tr> <tr> <td>{{%badge%}}notify-variables{{%/badge%}}</td> <td>Provide the email address to be notified when the job execution starts (for {{%badge%}}on-start{{%/badge%}}) and the email address to be notified when the job successfully completes execution (for {{%badge%}}on-end{{%/badge%}} )</td> <td>Yes (if {{%badge%}}notify{{%/badge%}} is used)</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}runner{{%/link%}}{{%/badge%}}</td> <td>Specify the runner name in which the jobs need to be executed.</td> <td>No</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}image{{%/link%}}{{%/badge%}}</td> <td>Specify the name of the image needed for the specific job execution.</td> <td>No</td> </tr> <tr> <td>{{%badge%}}cwd{{%/badge%}}</td> <td>Specify the current working directory in which the job has to be executed.</td> <td>No</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps" %}}steps{{%/link%}}{{%/badge%}}</td> <td>An array containing the scripts that need to be executed in the pipeline.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}when{{%/link%}}{{%/badge%}}</td> <td>Specify the conditions that determine whether the job has to be executed or not.</td> <td>No</td> </tr> </tbody> </table> ### YAML Code Snippet for Job Here's an example code snippet for jobs that can be defined in a pipeline: {{%code class="language-yaml" scroll="set-scroll"%}}jobs: testJob1: steps: - echo "Enter your scripts here" testJob2: variables: BRANCH: main artifacts: upload: - name: artifactTest type: zip location: stratus://mybucket/home/artifacts files: - '**/*' download: - name: artifactTest type: zip location: stratus://mybucket/home/artifacts notify: on-start: - notify-type: email notify-variables: to: amelia.burrows@zylker.com on-end: - notify-type: email notify-variables: to: amelia.burrows@zylker.com runner: runner2 image: testImage1 cwd: cd ./src steps: - echo "Enter your scripts here" and: - equal: - << pipeline.event.branch >> - main - true testJob3: steps: - echo "Hello" {{%/code%}} The above code illustrates the following workflow: * There are three jobs defined in the pipeline - {{%badge%}}testJob1{{%/badge%}}, {{%badge%}}testJob2{{%/badge%}}, {{%badge%}}testJob3{{%/badge%}}. * The {{%badge%}}testJob2{{%/badge%}} is configured to be executed only if the current working branch in the repository is the main branch. * The {{%badge%}}testJob2{{%/badge%}} handles the process to store and retrieve the generated build files to and from Catalyst Stratus. This is defined using the {{%badge%}}upload{{%/badge%}} and {{%badge%}}download{{%/badge%}} keys. * It also sends a notification to the defined email address in order to keep them informed about the start of the job execution and the completion of the job as well. This is acheived using the {{%badge%}}notify on-start{{%/badge%}} and {{%badge%}}on-end keys{{%/badge%}}. -------------------------------------------------------------------------------- title: "Approval Job" description: "Learn about the Catalyst Pipelines approval jobs in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/approval-job/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Approval Job # Introduction The crucial tasks that require a manual review to proceed further can be defined as an approval job in the pipeline. The steps defined in the approval job are usually a set of validations required before a deployment runs. When an approval job is configured, the pipeline execution pauses until the approver approves the job. The approver will be sent an email notification to approve the job. They can also approve it from the console directly. Learn more about approving a job from the console in {{%link href="/en/pipelines/help/triggers/monitor-execution-status" %}}this help section{{%/link%}}. You can define the approval jobs for the pipeline as key-value pairs using the approve key. ### Properties of an Approval Job <table class="content-table"> <thead> <tr> <th>Key</th> <th>Value</th> <th>is Mandatory</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}type{{%/badge%}}</td> <td>This key contains the sub-key type-name.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}type-name{{%/badge%}}</td> <td>Specify this value as "approval".</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}type-variables{{%/badge%}}</td> <td>This key contains the sub-keys reviewers and message.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}reviewers{{%/badge%}}</td> <td>Specify the email addresses of the reviewers who can approve this job.</td> <td>Yes</td> </tr> <tr> <td>{{%badge%}}message{{%/badge%}}</td> <td>Provide the message that has to be sent to the approver.</td> <td>Yes</td> </tr> </tbody> </table> {{%note%}}{{%bold%}}Note:{{%/bold%}} 1. You can add only a single reviewer for the approval job. 2. The approval job has no specific timeout, meaning the pipeline execution will remain paused until the approver takes action. {{%/note%}} ### YAML Code Snippet for Approval Job Here's an example code snippet for an approval job: {{%code class="language-yaml" scroll="set-scroll"%}}approve: type: type-name: approval type-variables: reviewers: - amelia.b@zylker.com message: Review this {{%/code%}} -------------------------------------------------------------------------------- title: "Parallel Job" description: "Learn about the Catalyst Pipelines parallel jobs in detail, the associated keywords and sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/parallel-job/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Parallel Job A parallel job can include two distinct jobs that can be executed in parallel. You can define a parallel job by adding two hyphens (--) before the first job name and followed by a single hyphen (-) before the second job name. This symbolically denotes that both the jobs will be executed in parallel. {{%note%}}{{%bold%}}Note:{{%/bold%}} A sequential job can be defined simply using a single hyphen(-).{{%/note%}} ### YAML Code Snippet for Parallel Job Here's an example code snippet for a parallel job: {{%code class="language-yaml" scroll="set-scroll"%}}name: testStage1 jobs: - testJob1 - - testJob2 - testJob3 {{%/code%}} ### Deployment -------------------------------------------------------------------------------- title: "Deploy to AppSail" description: "Learn more about the sample YAML code snippet to deploy an application to Catalyst AppSail using the Pipelines service." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/deployments/deploy-to-appsail/" service: "Pipelines" related: - Catalyst AppSail (/en/serverless/help/appsail/introduction/) -------------------------------------------------------------------------------- # Deploy to AppSail After building and testing your application, it has to be deployed to any virtual machine for users to use it. You can customize the deployment flow in the pipeline based on your specific needs. You can either automate the entire process or partially automate it by including an approval job to complete the deployment process. Here's a sample YAML code snippet that can be used to deploy a Java application built using Springboot framework in {{%link href="/en/serverless/help/appsail/introduction" %}}Catalyst AppSail{{%/link%}} service. Before executing the pipeline, you will have to configure the following keys as global variables in your pipeline. You can refer {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help section{{%/link%}} to learn about configuring variables. * {{%badge%}}CATALYST_TOKEN{{%/badge%}} : A unique token to access the Catalyst CLI from the YAML. Refer to {{%link href="/en/cli/v1/working-with-tokens/generate-token/" %}}this help page{{%/link%}} to learn more about token generation. * {{%badge%}}DOCKER_PASS{{%/badge%}} : The password of your {{%link href="https://hub.docker.com/" %}}Docker Hub{{%/link%}} account. * {{%badge%}}BUCKET_NAME{{%/badge%}} : The name of your Stratus bucket. {{%code class="language-json"%}}version: 1.0 runners: high: config-id: 3 pipeline-when: equal: - << event.ref >> - refs/heads/main images: maven: image: maven:3.8.5-openjdk-17 auth: username: ameliaburrows password: << env.DOCKER_PASS >> jobs: unit-test: steps: - mvn surefire-report:report artifacts: upload: - type: zip regex: - /catalyst/target/surefire-reports/** name: junit.zip location: stratus://<< env.BUCKET_NAME >>/ package: steps: - mvn clean package -DskipTests=true artifacts: upload: - type: file name: SNAPSHOT.jar file: target/demo-0.0.1-SNAPSHOT.jar location: stratus://<< env.BUCKET_NAME >>/ catalyst-deploy: when: equal: - << status.build.package >> - success steps: - npm install -g zcatalyst-cli@beta - >- catalyst deploy appsail --name spring-boot --build-path "/catalyst/SNAPSHOT.jar" --stack java17 --platform javase --command "sh -c 'java -jar SNAPSHOT.jar --server.port=\${X_ZOHO_CATALYST_LISTEN_PORT}'" --verbose artifacts: download: - type: file name: SNAPSHOT.jar file: /SNAPSHOT.jar location: stratus://<< env.BUCKET_NAME >>/ stages: - name: test image: maven jobs: - unit-test - name: build image: maven jobs: - package - name: deploy jobs: - catalyst-deploy {{%/code%}} -------------------------------------------------------------------------------- title: "Deploy to Catalyst" description: "Learn more about the sample YAML code snippet to deploy an application to Catalyst using the Pipelines service." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/deployments/deploy-to-catalyst/" service: "Pipelines" related: - Deploy Basic Web Client (/en/cli/v1/deploy-resources/deploy-client/) -------------------------------------------------------------------------------- # Deploy to Catalyst In this section, we'll look into a sample YAML code to automate the deployment of a {{%link href="/en/cli/v1/deploy-resources/deploy-client/" %}}basic Catalyst web client{{%/link%}} and {{%link href="/en/serverless/help/functions/introduction/" %}}Catalyst Serverless Functions{{%/link%}} component. This code is applicable to **Java**, **Node.js** and **Python**. You will have to configure the following keys as global variables in your pipeline. You can refer {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help section{{%/link%}} to learn about configuring variables. * {{%badge%}}PROJECT_ID{{%/badge%}} : The unique of your project assigned by Catalyst. You can fetch this value from the {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/" %}}General Settings{{%/link%}} in the console. * {{%badge%}}CATALYST_ORG{{%/badge%}} : The Catalyst organization to which the current project belongs. You can fetch this value from the {{%link href="/en/getting-started/catalyst-organizations/#access-the-multi-org-portal" %}}Multi-Org portal{{%/link%}} in the console. * {{%badge%}}CATALYST_TOKEN{{%/badge%}} : A unique token to access the Catalyst CLI from the YAML. Refer to {{%link href="/en/cli/v1/working-with-tokens/generate-token/" %}}this help page{{%/link%}} to learn more about token generation. * {{%badge%}}USER_NAME{{%/badge%}} : The username of your {{%link href="https://hub.docker.com/" %}}Docker Hub{{%/link%}} account. * {{%badge%}}USER_PASSWORD{{%/badge%}} : The password of your {{%link href="https://hub.docker.com/" %}}Docker Hub{{%/link%}} account. {{%code class="language-xml"%}}version: 1 runners: Machine: config-id: 2 images: DeployMachine: image: ubuntu auth: username: << env.USER_NAME >> password: << env.USER_PASSWORD >> jobs: Deploy_Client_Functions: steps: - apt-get update - apt-get -y install openjdk-17-jdk curl - curl -fsSL https://deb.nodesource.com/setup_18.x | bash - - apt-get install -y nodejs - apt-get update && \ - apt-get install -y software-properties-common wget curl && \ - add-apt-repository ppa:deadsnakes/ppa && \ - apt-get update && \ - apt-get install -y python3.9 python3.9-distutils && \ - wget https://bootstrap.pypa.io/get-pip.py && \ - python3.9 get-pip.py && \ - rm get-pip.py - npm i -g zcatalyst-cli - catalyst -v - cd functions/Node - npm install - cd ../.. - catalyst deploy --project << env.PROJECT_NAME >> --org << env.CATALYST_ORG >> --token << env.CATALYST_TOKEN >> stages: - name: build image: DeployMachine jobs: - Deploy_Client_Functions {{%/code%}} ### Pipelines -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about the basics of Catalyst Pipelines and the overall workflow of the service and its implementation" last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/pipelines/introduction/" service: "Pipelines" related: - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-details) - Nodejs SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-details) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-details) - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Pipelines # Introduction A pipeline is the highest level unit of work in the Catalyst Pipelines service. It includes a customizable sequence of {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages" %}}stages{{%/link%}}, such as compiling code, running tests, and deploying applications, all orchestrated seamlessly to streamline your software lifecycle process. You can create a pipeline and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}configure the flow{{%/link%}} of the pipeline directly from the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. We will be discussing the detailed steps to {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}this section{{%/link%}} in this section. While creating the pipeline, you can choose to integrate the pipeline with an external version control system such as {{%link href="https://github.com/" %}}GitLab{{%/link%}}, {{%link href="https://about.gitlab.com/" %}}GitHub{{%/link%}} or {{%link href="https://bitbucket.org/product/" %}}Bitbucket{{%/link%}}. This integration enables you to link a particular repository in the version control system with the pipeline, and whenever any changes are pushed to the repository, the pipeline will get triggered automatically. You can also manually trigger the pipeline from the Catalyst console, if needed. For more information on pipeline triggers, you can refer to {{%link href="/en/pipelines/help/triggers/introduction" %}}this section{{%/link%}}. Catalyst pipelines orchestrate based on the YAML code specified in the {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/introduction" %}}catalyst-pipelines.yaml{{%/link%}} file. You can refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/schema-reference" %}}this page{{%/link%}} to understand the YAML schema definitions for Catalyst Pipelines and tailor the pipeline according to your specific needs. This YAML file is executed directly from the console for manual triggers or directly from the external version control system in the case of automatic triggers. You can also implement the manual pipeline trigger and fetch the details of an existing pipeline within your application code using our Pipelines SDK package available in {{%link href="/en/sdk/java/v1/pipelines/get-pipeline-details" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-details" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/pipelines/get-pipeline-details" %}}Python{{%/link%}}. To define the execution flow of the pipeline in the YAML file, you have two options: you can either use our built-in drag-and-drop visual builder for an intuitive approach, or you can configure the YAML code using our code editor. You can find the step-by-step instructions to configure the pipeline in {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help page{{%/link%}}. Now, let us explore the components of the pipeline, its hierarchical structure, and usage. -------------------------------------------------------------------------------- title: "Components of Pipeline" description: "Learn about the various components of Catalyst Pipelines, their usage functionality and hierarchy." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/pipelines/components-of-pipeline/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) -------------------------------------------------------------------------------- # Components of a Pipeline The pipeline can include any combination of the following components, each of which defines the sequence of execution of the pipeline. You can learn more about configuring the execution flow of the pipeline from {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/implementation" %}}this help section{{%/link%}}. * **Pipeline** : A tool for automating the build, test, and deployment processes of software applications. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}Runner{{%/link%}}** : A virtual machine or container that provides the underlying infrastructure to execute the pipeline. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}Image{{%/link%}}** : An external resource that a pipeline relies on, such as libraries, packages, or services, to complete its execution successfully. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables" %}}Variable{{%/link%}}** : The placeholders for values that can be reused at multiple instances within the scope of the pipeline. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/artifacts" %}}Artifact{{%/link%}}** : The zip file produced during the application build process and stored in the Catalyst Stratus service, which can be deployed to specified environments. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}When Condition{{%/link%}}** : The conditional logic that can be defined to instruct the execution flow of the pipeline. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps" %}}Step{{%/link%}}** : A step is a lowest building block in a pipeline. It contains a set of commands to perform specific operations such as compiling code, running tests, or deploying an application. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}Job{{%/link%}}** : A job is a series of sequential or parallel steps that execute within the pipeline. * **{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages" %}}Stage{{%/link%}}** : The highest level of organization in the Catalyst Pipeline, representing distinct phases of the software delivery process. Each stage encompasses multiple jobs. You can code the execution flow of the pipeline by defining any of the above mentioned components in the {{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/introduction" %}}catalyst-pipelines.yaml{{%/link%}}{{%/badge%}} file based on your specific requirements. Within the {{%link href="/en/pipelines/help/pipelines/introduction" %}}Catalyst pipeline{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages" %}}stages{{%/link%}}, and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/introduction" %}}jobs{{%/link%}}, you have the flexibility to configure the other components such as {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/images" %}}images{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/runners" %}}runners{{%/link%}}, {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables" %}}variables{{%/link%}}, and {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/when-condition" %}}conditions{{%/link%}}, each playing a distinct role in the pipeline execution. The following illustration provides a comprehensive overview of the components that can be defined at each level: We will be discussing in detail about each component in their respective help pages. Refer to {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/schema-reference" %}}this help page{{%/link%}} to get started. The below diagram demonstrates the hierarchical sequence of the various pipeline components. ## Key considerations 1. A pipeline can contain up to five stages, with each stage accommodating a maximum of five jobs, including {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/jobs/parallel-job" %}}parallel jobs{{%/link%}}. 2. It is mandatory to include at least one stage and job in the pipeline. 3. You can define variables, images, and runners at the pipeline level, stage level, or job level. In case of multiple definitions, the one specified at the lowest level (i.e., job) takes precedence. -------------------------------------------------------------------------------- title: "Pipeline Workflow" description: "Learn about the various CI/CD processes involved in the Catalyst Pipelines service." last_updated: "2026-03-18T07:41:08.592Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/pipelines/pipeline-workflow/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) - Pipeline Triggers (/en/pipelines/help/triggers/introduction) - Catalyst Serverless Functions (/en/serverless/help/functions/introduction/) - Catalyst AppSail (/en/serverless/help/appsail/introduction/) -------------------------------------------------------------------------------- # Pipeline Workflow The below architecture diagram depicts the end-to-end flow of a Catalyst Pipeline. ### Trigger the Pipeline When creating a Catalyst pipeline, you can choose to integrate your pipeline with any of the supported version control systems (i.e., GitHub, GitLab or Bitbucket). This integration determines the mode of trigger for your pipeline : * **Automatic Pipeline Trigger :** The pipeline will be automatically triggered everytime you push any code changes to the linked repository in the integrated version control system. When the pipeline is triggered, the complete source code from the integrated Git repository, along with the YAML file, will be automatically fetched and downloaded as a ZIP file to Catalyst. * **Manual Pipeline Trigger :** You can manually trigger the pipeline from the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. This is suitable for one-time tasks that do not require integration with the version control system. In both the above-mentioned cases, upon triggering the pipeline, the pipeline workflow coded in the {{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/introduction" %}}catalyst-pipelines.yaml{{%/link%}}{{%/badge%}} file will be executed. Refer to {{%link href="/en/pipelines/help/triggers/introduction" %}}this section{{%/link%}} to learn in detail about Catalyst pipeline triggers and its implementation. ### Execute the Pipeline On trigger, the pipeline will be executed sequentially, one stage after another. The commonly achieved goals of executing a pipeline include the following: #### Build You can configure the pipeline to build applications of any scale using the Catalyst Pipelines service. Here's a few examples of commonly built applications: * **Web Applications :** You can build web applications developed with frameworks including ASP.NET, Node.js, Django, Flask or more. * **Mobile Applications :** Build mobile apps for platforms like iOS, Android, or Windows using frameworks like Xamarin, React Native, or Flutter. * **API services :** Build RESTful APIs or micro services using frameworks including Express.js, ASP.NET Web API, Spring Boot or more. * **Serverless Applications :** You can build serverless applications using {{%link href="https://docs.catalyst.zoho.com/en/serverless/help/functions/introduction/" %}}Catalyst Serverless Functions{{%/link%}}, Azure Functions, AWS Lambda, or Google Cloud Functions. * **Containerized Applications :** Build containerized applications using Docker, Kubernetes, or other container orchestration tools. There are vast options of applications that can be built automatically using the Catalyst Pipelines service. You will need to configure the {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/steps" %}}steps{{%/link%}} component in the pipeline with the specific commands to be executed in order to build the application efficiently. #### Test Once the application is built automatically, you can proceed to test it before deploying it to any environment. Similar to the build process, you can specify the required commands to test the application in the {{%badge%}}{{%link href="/en/pipelines/help/catalyst-pipelines.yaml/introduction" %}}catalyst-pipelines.yaml{{%/link%}}{{%/badge%}} file. Here's a list of common tests that can be executed in the pipeline: * **Unit Tests:** Running unit tests for individual components or modules of the application to ensure they function correctly in isolation. * **Integration Tests:** Performing integration tests to verify interactions between various components or modules of the application. * **API Tests:** Testing the functionality, performance, and security of APIs used by the application, including both manual and automated API tests. * **Regression Tests:** Running regression tests to ensure that recent code changes have not introduced new bugs or regressions into the application. #### Deploy You can deploy your application in any environment, such as development, staging, or production, based on your specific needs. Here's a list of common deployment targets: * **Platform as a Service (PaaS):** Platforms like {{%link href="/en/serverless/help/appsail/introduction/" %}}Catalyst AppSail{{%/link%}}, Heroku, or Google App Engine provide a managed environment for deploying web applications without needing to manage the underlying infrastructure. Developers can focus on writing code without worrying about server management. * **Containerization:** Using containerization technologies like Docker to package the web application along with its dependencies into containers. These containers can then be deployed consistently across different environments, providing portability and scalability. * **Container Orchestration:** Tools like Kubernetes enable automated deployment, scaling, and management of containerized applications. Kubernetes helps in deploying and managing containers at scale, providing features like load balancing and automatic scaling. We will be discussing the common deployment targets and the step-by-step instructions to configure the pipeline in {{%link href="/en/pipelines/help/deployments/deploy-to-appsail" %}}this help page{{%/link%}}. -------------------------------------------------------------------------------- title: "Create a Pipeline" description: "Learn about the Catalyst Pipelines service and the step-by-step instructions to bots that provide conversation assitance to your application's end users." last_updated: "2026-03-18T07:41:08.592Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/pipelines/create-a-pipeline/" service: "Pipelines" related: - Configure the Pipeline (/en/pipelines/help/catalyst-pipelines.yaml/implementation) - YAML Schema Reference (/en/pipelines/help/catalyst-pipelines.yaml/schema-reference) -------------------------------------------------------------------------------- # Create a Pipeline To create a pipeline in the Catalyst console, please ensure to follow the below steps: 1. Click the **Pipelines** service icon from the left menu in the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. 2. Click **Create Pipeline**. 3. In the pop-up that appears, provide a name for the pipeline. 4. Select your preferred integration source. {{%note%}}{{%bold%}}Note:{{%/bold%}} This step is completely optional. If you choose not to integrate your pipeline with any Git provider, then you can directly proceed with Step 8. {{%/note%}} 5. Add a new Git account by clicking the **+Add account** option. If you have any Git accounts integrated with your Catalyst project previously, they will be listed in the dropdown. Simply choose the account and proceed. 6. Select the organization your chosen account belongs to. {{%note%}}{{%bold%}}Note:{{%/bold%}} This attribute refers to the name of your organization in GitHub, the project name in GitLab, and the workspace name in Bitbucket.{{%/note%}} 7. Select the repository where you want to commit the new {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} file. Click **Continue**. {{%note%}}{{%bold%}}Note:{{%/bold%}} If a YAML file already exists in your repository, please ensure to name it {{%badge%}}catalyst-pipelines.yaml{{%/badge%}} mandatorily.{{%/note%}} 8. The code editor is now opened. You can proceed to configure the pipeline by adding the required pipeline components in the editor. Also, you can select the branch in which the file has to be committed, as shown in the screenshot below. After you have defined the pipeline execution flow, click **Commit**. You can also save as a draft and work on the logic later, if required. You can choose to configure the pipeline in **Builder** mode by switching the tabs, as shown in the screenshot below. We will be discussing more about configuring the pipeline in {{%link href="/en/pipelines/help/catalyst-pipelines.yaml/schema-reference" %}}this help page{{%/link%}}. ### Triggers -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about the various pipeline triggers and their usage." last_updated: "2026-03-18T07:41:08.593Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/triggers/introduction/" service: "Pipelines" -------------------------------------------------------------------------------- # Triggers # Introduction ### Automatic Trigger Automatic Trigger in Catalyst Pipelines is the process of initiating pipeline runs based on certain events or conditions. When you create a pipeline from the console, you will have the option to integrate your pipeline with an external version control system. You can refer to {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}this section{{%/link%}} to learn more about this integration. It is important to note that connecting pipelines to version control systems is the recommended approach and offers many benefits, such as traceability, collaboration, and the ability to trigger builds based on code changes. When you have integrated your pipeline with an external version control system, the pipeline will start executing everytime a push or merge event occurs in the linked repository. You can view the execution status of the pipeline from the Catalyst console. Refer to {{%link href="/en/pipelines/help/triggers/monitor-execution-status" %}}this section{{%/link%}} to learn more about monitoring the execution status of the pipeline. ### Manual Trigger In case when you have not integrated your pipeline with any external version control system, then you can execute the pipeline manually everytime from the Catalyst console. To execute the pipeline directly from the console, follow the below-listed steps: 1. Click **Execute Pipeline**. 2. Provide any event details for the pipeline in the JSON format, if required. Click **Execute**. The event details are optional here. The pipeline execution will start now. The status of the pipeline will progress from **QUEUED** to **RUNNING** to **SUCESS/FAILED**. You can view the status of the pipeline in the **Execution History** section. We will discuss it in the next section. -------------------------------------------------------------------------------- title: "Monitor Execution Status" description: "Learn about the Catalyst ConvoKraft bots that provide conversation assitance to your application's end users." last_updated: "2026-03-18T07:41:08.593Z" source: "https://docs.catalyst.zoho.com/en/pipelines/help/triggers/monitor-execution-status/" service: "Pipelines" -------------------------------------------------------------------------------- # Monitor Execution Status After the pipeline execution is triggered either automatically or manually, you can view the execution status of the pipeline directly from the {{%link href="https://console.catalyst.zoho.com/baas" %}}Catalyst console{{%/link%}}. 1. In the **Execution History** section, you can view the details of the pipeline execution. 2. Click on the execution record to view detailed information regarding the execution. The **Basic tab** allows you to view the execution status of each stage and job defined in the pipeline as an overview. You can switch to the **Advanced tab** to see live logs of the pipeline execution. {{%note%}}{{%bold%}}Note:{{%/bold%}} While the pipeline is running, it will be paused if an approval job is configured for the pipeline. In that case, the pipeline execution will be resumed only after the reviewer approves the job. The reviewer can approve the job directly from the console in the **Basic Tab**.{{%/note%}} --- ## API Reference — Pipelines -------------------------------------------------------------------------------- title: "Get Pipeline Details" description: "This API enables you to fetch the details of an existing Catalyst Pipeline from the Catalyst console." last_updated: "2026-03-18T07:41:08.608Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/pipelines/get-pipeline-details/" service: "Pipelines" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/pipelines/get-pipeline-details/" id="GetPipelineDetails" %}} {{%divtag class="LeftContent"%}} # Catalyst Pipelines {{%link href="/en/pipelines/getting-started/introduction"%}}Catalyst Pipelines{{%/link%}} is a Catalyst CI/CD service that enables you to automate the build, test, and deploy processes of your applications. You can {{%link href="/en/pipelines/getting-started/introduction"%}}create-a-pipeline{{%/link%}} from the Catalyst console. We will be discussing the APIs that can be leveraged to trigger the pipeline and get the details of an existing pipeline in the next sections. # Get Pipeline Details This API enables you to fetch the details of a pipeline created in the Catalyst console. This can be done by passing the {{%badge%}}pipeline_id{{%/badge%}} and the {{%badge%}}project_id{{%/badge%}} in the request URL. The API fetches the details of the project in which the pipeline is created and the details of the pipeline. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/pipeline/{pipeline_id}</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The domain URL of your DC{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project in which the pipeline has been created {{%/request_id%}} {{%request_id id="pipeline_id" data="Numerical" %}}The {{%link href="/en/pipelines/help/triggers/monitor-execution-status"%}}unique ID{{%/link%}} of the pipeline for which the details have to be fetched. {{%/request_id%}} #### Scope {{%scope%}} pipeline.READ{{%/scope%}} ### Response Details The pipeline details object will be returned as a response. It includes the details such as the name of the pipeline, details of the project including the {{%badge%}}project_name{{%/badge%}} and {{%badge%}}project_type{{%/badge%}}, the details of the user who has created the pipeline including the {{%badge%}}user_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, {{%badge%}}first_name{{%/badge%}}, {{%badge%}}last_name{{%/badge%}} and {{%badge%}}user_type{{%/badge%}}, the status of the pipeline, the details of the users who had modified the pipeline along with the modified time details and also the default runner configuration of the pipeline. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/pipeline/29810101101 \ -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" \ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}}{ "status": "success", "data": { "pipeline_id": "29810101101", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "4000000006007", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/pipelines/get-pipeline-details/"%}}Get Pipeline Details - Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-details/"%}}Get Pipeline Details - Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/pipelines/get-pipeline-details/"%}}Get Pipeline Details - Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Execute Pipeline" description: "This API enables you to execute an existing Catalyst Pipeline from the Catalyst console." last_updated: "2026-03-18T07:41:08.608Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/pipelines/execute-pipeline/" service: "Pipelines" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/pipelines/execute-pipeline/" id="ExecutePipeline" %}} {{%divtag class="LeftContent"%}} # Execute Pipelines This API enables you to trigger the pipeline on a particular branch in the Git repository. This can be done by passing the branch name as a parameter in the request body. When triggering manual pipelines, you can simply ignore the branch name parameter in the request JSON. On triggering this API, the pipeline will be executed, and the status of execution will be returned as a response. # Get Pipeline Details This API enables you to fetch the details of a pipeline created in the Catalyst console. This can be done by passing the {{%badge%}}pipeline_id{{%/badge%}} and the {{%badge%}}project_id{{%/badge%}} in the request URL. The API fetches the details of the project in which the pipeline is created and the details of the pipeline. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/pipeline/{pipeline_id}/run</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The domain URL of your DC{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project in which the pipeline has been created {{%/request_id%}} {{%request_id id="pipeline_id" data="Numerical" %}}The {{%link href="/en/pipelines/help/triggers/monitor-execution-status"%}}unique ID{{%/link%}} of the pipeline for which the details have to be fetched. {{%/request_id%}} #### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="BRANCH_NAME" textformat="string" condition="mandatory" maxlength=" " %}}Provide the name of the Git branch{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="EVENT" textformat="string" condition="optional" maxlength=" " %}}Provide any event details{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="URL" textformat="url" condition="optional" maxlength=" " %}}Any additional parameter required{{% /nested_fields %}} {{%note%}}{{%bold%}}Note:{{%/bold%}} 1. {{%badge%}}BRANCH_NAME{{%/badge%}} is optional when you need to trigger a manual Catalyst pipeline. 2. We have added the EVENT and URL keys as environment variables. You can pass any required keys for the execution of the pipeline in the event JSON.{{%/note%}} #### Scope {{%scope%}} pipeline.execution.CREATE{{%/scope%}} ### Response Details An object containing the pipeline creation history details will be returned as a response. The object includes details such as the {{%badge%}}history_id{{%/badge%}}, {{%badge%}}event_time{{%/badge%}}, {{%badge%}}history_status{{%/badge%}}. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/pipeline/29810101101/run -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" \ -d ‘{ "BRANCH_NAME" : "main", \ "EVENT": "push", \ "URL": "https://www.google.com" \ } {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}}{ "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "29810101101", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "main", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/pipelines/execute-pipeline/"%}}Execute Pipeline - Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/pipelines/execute-pipeline/"%}}Execute Pipeline - Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/pipelines/execute-pipeline/"%}}Execute Pipeline - Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} --- ## SDK — Java — Pipelines -------------------------------------------------------------------------------- title: "Get Pipeline Instance" description: "This page describes the method to fetch pipeline instance and use it for other pipeline operations." last_updated: "2026-03-18T07:41:08.623Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Node.js SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines {{%link href="/en/pipelines/help/pipelines/introduction" %}}Catalyst Pipelines{{%/link%}} implements a CI/CD approach to enable automation of building, testing, and deployment of web or mobile applications to preferred environments. You can {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}create a pipeline{{%/link%}} from the Catalyst console.Using the SDKs below, you can retrieve the details of a Catalyst Pipeline and also execute a pipeline by incorporating the code snippets in your application. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.pipeline.ZCPipeline; import com.zc.component.pipeline.ZCPipelineDetails; import com.zc.component.pipeline.ZCPipelineRunHistory;{{% /panel_without_adjustment %}} # Get Pipeline Instance A component instance is an object that can be used to access the properties specific to a particular component. You can create a component instance to perform the below listed actions in Catalyst Pipelines. You can create a new {{%badge%}}pipelines_service{{%/badge%}} instance as shown below. This component instance will be used for all Pipeline operations in the Java SDK. {{%code class="language-java line-numbers"%}}ZCPipeline pipelines_service = ZCPipeline.getInstance();{{%/code%}} -------------------------------------------------------------------------------- title: "Get Pipeline Details" description: "This page describes the method to fetch all the details of an existing Catalyst Pipeline." last_updated: "2026-03-18T07:41:08.623Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/pipelines/get-pipeline-details/" service: "All Services" related: - Node.js SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) -------------------------------------------------------------------------------- # Get Pipeline Details You can fetch the details of the Catalyst Pipeline by passing the pipeline ID as a parameter to the {{%badge%}}getPipelineDetails(){{%/badge%}} method. The name of the pipeline, details of the Catalyst project in which the pipeline has been created, the details of the user who created the pipeline, the time of creation, and if modifications have been done, the details of the user who modified the pipeline, the modified time, the status of the pipeline and other details like runner specifications are returned as response to this method. The {{%badge%}}pipelines_service{{%/badge%}} reference used below is already defined in {{%link href="/en/sdk/java/v1/pipelines/get-pipeline-instance" %}}this component instance page{{%/link%}}. {{%code class="language-java line-numbers"%}}ZCPipelineDetails pipeline_details = pipelines_service.getPipelineDetails(16965000000019202L); {{%/code%}} A sample response is shown below: {{%code class="language-java line-numbers"%}}{ "status": "success", "data": { "pipeline_id": "16965000000019202L", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } {{%/code%}} -------------------------------------------------------------------------------- title: "Execute Pipeline" description: "This page describes the method to run the Catalyst Pipeline manually." last_updated: "2026-03-18T07:41:08.623Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/pipelines/execute-pipeline/" service: "All Services" related: - Node.js SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) -------------------------------------------------------------------------------- # Execute Pipeline You can initiate a Catalyst pipeline run by passing the pipeline ID and the branch name as parameters to the {{%badge%}}runPipeline(){{%/badge%}} method. You can also pass environment variables required for the pipeline execution in a JSON object to this method, and it is completely optional. This method returns the execution history details of the pipeline as the response. {{%code class="language-java line-numbers"%}}JSONObject env = new JSONObject(); env.put("EVENT", "push"); env.put("URL", "https://www.google.com"); ZCPipelineRunHistory run = pipelines_service.runPipeline(8431000000161112051L,main,env); {{%/code%}} A sample response is shown below: {{%code class="language-java line-numbers"%}}{ "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "8431000000161112051L", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "detective_pre", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } {{%/code%}} --- ## SDK — Node JS — Pipelines -------------------------------------------------------------------------------- title: "Get Pipeline Instance" description: "This page describes the method to fetch pipeline instance and use it for other pipeline operations." last_updated: "2026-03-18T07:41:08.625Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines {{%link href="/en/pipelines/help/pipelines/introduction" %}}Catalyst Pipelines{{%/link%}} implements a CI/CD approach to enable automation of building, testing, and deployment of web or mobile applications to preferred environments. You can {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}create a pipeline{{%/link%}} from the Catalyst console.Using the SDKs below, you can retrieve the details of a Catalyst Pipeline and also execute a pipeline by incorporating the code snippets in your application. # Get Pipeline Instance A component instance is an object that can be used to access the properties specific to a particular component. You can create a component instance to perform the below listed actions in Catalyst Pipelines. The {{%badge%}}app{{%/badge%}} reference used in the code below is the {{%link href="/en/sdk/nodejs/v2/overview/#initialize-the-sdk" %}}Node object{{%/link%}} returned as a response during SDK initialization. You can create a new {{%badge%}}pipelines_service{{%/badge%}} instance as shown below. {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}const pipelines_service = app.pipeline(){{%/code%}} This component instance will be used for all Pipeline operations in the Node.js SDK. -------------------------------------------------------------------------------- title: "Get Pipeline Details" description: "This page describes the method to fetch all the details of an existing Catalyst Pipeline." last_updated: "2026-03-18T07:41:08.625Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/pipelines/get-pipeline-details/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Get Pipeline Details You can fetch the details of the Catalyst Pipeline by passing the pipeline ID as a parameter to the {{%badge%}}getPipelineDetails(){{%/badge%}} method. The name of the pipeline, details of the Catalyst project in which the pipeline has been created, the details of the user who created the pipeline, the time of creation, and if modifications have been done, the details of the user who modified the pipeline, the modified time, the status of the pipeline and other details like runner specifications are returned as response to this method. The {{%badge%}}pipelines_service{{%/badge%}} reference used below is already defined in {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-instance" %}}this component instance page{{%/link%}}. {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}let pipline_details = pipelines_service.getPipelineDetails("16965000000019146"){{%/code%}} A sample response is shown below: {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}{ "status": "success", "data": { "pipeline_id": "16965000000019146", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } {{%/code%}} -------------------------------------------------------------------------------- title: "Execute Pipeline" description: "This page describes the method to run the Catalyst Pipeline manually." last_updated: "2026-03-18T07:41:08.625Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/pipelines/execute-pipeline/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/en/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Execute Pipeline You can initiate a Catalyst pipeline run by passing the pipeline ID and the branch name as parameters to the {{%badge%}}runPipeline(){{%/badge%}} method. You can also pass environment variables required for the pipeline execution in a JSON object to this method, and it is completely optional. This method returns the execution history details of the pipeline as the response. The {{%badge%}}pipelines_service{{%/badge%}} reference used below is already defined in {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-instance" %}}this component instance page{{%/link%}}. {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}let execution_details = pipelines_service.runPipeline("8431000000162051", main,{"EVENT": "push", "URL":"https://www.google.com"}){{%/code%}} A sample response is shown below: {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}{ "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "8431000000162051", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "main", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } {{%/code%}} --- ## SDK — Python — Pipelines -------------------------------------------------------------------------------- title: "Get Pipeline Instance" description: "This page describes the method to fetch pipeline instance and use it for other pipeline operations." last_updated: "2026-03-18T07:41:08.626Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines {{%link href="/en/pipelines/help/pipelines/introduction" %}}Catalyst Pipelines{{%/link%}} implements a CI/CD approach to enable automation of building, testing, and deployment of web or mobile applications to preferred environments. You can {{%link href="/en/pipelines/help/pipelines/create-a-pipeline" %}}create a pipeline{{%/link%}} from the Catalyst console.Using the SDKs below, you can retrieve the details of a Catalyst Pipeline and also execute a pipeline by incorporating the code snippets in your application. # Get Pipeline Instance A component instance is an object that can be used to access the properties specific to a particular component. You can create a component instance to perform the below listed actions in Catalyst Pipelines. The {{%badge%}}app{{%/badge%}} reference used in the code below is the {{%link href="/en/sdk/python/v1/overview/#initialize-the-sdk" %}}Python object{{%/link%}} returned as a response during SDK initialization. You can create a new {{%badge%}}pipelines_service{{%/badge%}} instance as shown below. {{%code class="language-python" scroll="set-scroll" %}}pipelines_service = app.pipeline() {{%/code%}} This component instance will be used for all Pipeline operations in the Node.js SDK. -------------------------------------------------------------------------------- title: "Get Pipeline Details" description: "This page describes the method to fetch all the details of an existing Catalyst Pipeline." last_updated: "2026-03-18T07:41:08.626Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/pipelines/get-pipeline-details/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Get Pipeline Details You can fetch the details of the Catalyst Pipeline by passing the pipeline ID as a parameter to the {{%badge%}}get_pipeline_details(){{%/badge%}} method. The name of the pipeline, details of the Catalyst project in which the pipeline has been created, the details of the user who created the pipeline, the time of creation, and if modifications have been done, the details of the user who modified the pipeline, the modified time, the status of the pipeline and other details like runner specifications are returned as response to this method. The {{%badge%}}pipelines_service{{%/badge%}} reference used below is already defined in {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-instance" %}}this component instance page{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}}pipeline_details = pipelines_service.get_pipeline_details("16965000000027475") {{%/code%}} A sample response is shown below: {{%code class="language-python" scroll="set-scroll" %}}{ "status": "success", "data": { "pipeline_id": "16965000000027475", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } {{%/code%}} -------------------------------------------------------------------------------- title: "Execute Pipeline" description: "This page describes the method to run the Catalyst Pipeline manually." last_updated: "2026-03-18T07:41:08.626Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/pipelines/execute-pipeline/" service: "All Services" related: - Catalyst Pipelines (/en/pipelines/help/pipelines/introduction) - Create a Pipeline (/en/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/en/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/en/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/en/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Execute Pipeline You can initiate a Catalyst pipeline run by passing the pipeline ID and the branch name as parameters to the {{%badge%}}run_pipeline(){{%/badge%}} method. You can also pass environment variables required for the pipeline execution in a JSON object to this method, and it is completely optional. This method returns the execution history details of the pipeline as the response. The {{%badge%}}pipelines_service{{%/badge%}} reference used below is already defined in {{%link href="/en/sdk/nodejs/v2/pipelines/get-pipeline-instance" %}}this component instance page{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}}execution_details = pipelines_service.run_pipeline("18014000000023048", "main", {"EVENT": "push","URL":"https://www.google.com"}) {{%/code%}} A sample response is shown below: {{%code class="language-python" scroll="set-scroll" %}}{ "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "18014000000023048", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "main", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } {{%/code%}}