--- title: "Deploy to AppSail" url: https://docs.catalyst.zoho.com/en/pipelines/help/deployments/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: 2025-10-09T16:11:25Z service: Pipelines type: general related_links: - name: "Catalyst AppSail" url: /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 [Catalyst AppSail](https://docs.catalyst.zoho.com/en/serverless/help/appsail/introduction) service. Before executing the pipeline, you will have to configure the following keys as global variables in your pipeline. You can refer [this help section](https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/implementation) to learn about configuring variables. * `CATALYST_TOKEN` : A unique token to access the Catalyst CLI from the YAML. Refer to [this help page](https://docs.catalyst.zoho.com/en/cli/v1/working-with-tokens/generate-token/) to learn more about token generation. * `DOCKER_PASS` : The password of your [Docker Hub](https://hub.docker.com/) account. * `BUCKET_NAME` : The name of your Stratus bucket. ```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 ```