Umbraco Cloud
CMSHeartcoreDXPMarketplace
  • What is Umbraco Cloud?
  • Frequently asked questions
  • Security
    • Web Application Firewall
  • Sustainability Best Practices
  • Getting Started
    • Explore Umbraco Cloud
    • The Cloud Portal
      • Organizations
      • Sustainability Dashboard
    • Project Overview
    • Environments
    • Flexible Environments
    • Baselines
      • Baseline Merge Conflicts
      • Break Reference between Baseline and Child Project
      • Handling configuration files
      • Pushing Upgrades to a Child Project
    • Plans
    • Migrate to Umbraco Cloud
    • Repositories in a Cloud Project
    • Best Practice for Working in Teams
    • Migrate between regions
  • Set up
    • Ready to Set Up Your Project?
    • Working with a Local Clone
      • Legacy Umbraco Visual Studio Setup
    • Manage Environments
    • Project Settings
      • Managing Transport Security
      • CDN Caching and Optimizations
      • Dedicated Resources
      • Upgrade your Plan
      • Public Access
      • Managing Hostnames
        • New Certificate Authority for custom hostnames
        • Rewrite rules
        • Custom Certificates
      • Management API Security
      • Umbraco CI/CD Flow
        • Cloud API For CI/CD Flow
        • Configuring a CI/CD pipeline
          • Azure DevOps
          • GitHub Actions
          • Advanced Setup: Deploy to multiple targets
          • Migrate from V1 to V2
          • Deployment Artifact best practice
        • Troubleshooting
        • Known Limitations and Considerations
      • External Services
      • Usage
        • Bandwidth
      • Availability and Performance
      • Hostname Monitoring
      • Team Members
        • Technical Contact
      • Secrets Management
      • Project History
    • Private NuGet Feed on Umbraco Cloud
    • Going Live
    • Media
    • External Login Providers
    • Azure Blob Storage
      • Connect to Azure Storage Explorer to upload files manually
      • Connect and Upload Files Programmatically to Azure Blob Storage
    • Users
    • Multi-Factor Authentication
    • Application Insights
    • Config Transforms
    • SMTP Settings
    • Payments
    • Power Tools (Kudu)
      • View the Files on your Cloud Environments
      • Generate UDA files
      • Manually run Extractions on your Cloud Environments
  • Deployments
    • Deployment
    • Deploying between environments
    • Transferring Content, Media, Members, and Forms
    • Deploying Deletions
    • Deployment Webhook
    • Deploying Changes
    • Umbraco Forms on Cloud
    • Deploy Dashboard
    • Hotfixes
      • Apply hotfix by manually moving files
      • Apply hotfix by using Git
    • Restoring Content
      • Partial Restores
  • Databases
    • Keep Your Data Secure and Accessible
    • Working with databases
    • Database backups
    • Database
      • Connecting to the Database on Mac
    • Working with a Cloud database locally
  • Product Upgrades
    • Stay Up to Date with Umbraco Cloud
    • Product Upgrades
    • Major Upgrades
    • Minor Upgrades
    • Version Specific Upgrades
      • Migrate from Umbraco 8 to the latest version
      • Migrate from Umbraco 7 to Umbraco 8 on Umbraco Cloud
    • Upgrade your projects manually
      • Manual upgrade of Umbraco CMS
      • Manual upgrade of Umbraco Deploy
    • Dependencies on Umbraco Cloud
  • Troubleshooting
    • Resolve Issues Quickly and Efficiently
    • Troubleshooting FAQ
    • Log files
    • The Umbraco Backoffice
    • The Frontend
    • The Umbraco Cloud Portal
    • Site Performance checklist
    • Troubleshooting deployments
      • Extraction error: Config transforms failing
      • Extraction error: Data Type collisions
      • Dependency Exception
      • Merge Conflicts on Flexible Environments
      • Troubleshooting deployments failing with no error message
      • Troubleshooting duplicate dictionary items
      • Troubleshooting language mismatches
      • Path too long Exception
      • Schema Mismatches
      • How to resolve collision errors
      • Extraction error: "Type not found! "
    • Cloud Errors
  • Release Notes
    • Overview 2025
      • June 2025
      • May 2025
      • April 2025
      • March 2025
      • February 2025
      • January 2025
    • Overview 2024
      • December 2024
      • November 2024
      • October 2024
      • September 2024
      • August 2024
      • July 2024
      • May 2024
      • April 2024
      • March 2024
      • February 2024
      • January 2024
    • Overview 2023
      • December 2023
      • October 2023
      • September 2023
      • August 2023
      • June 2023
      • May 2023
      • April 2023
      • March 2023
      • February 2023
      • January 2023
    • Overview 2022
      • December 2022
      • November 2022
      • September 2022
      • August 2022
      • June 2022
      • May 2022
      • April 2022
      • March 2022
      • February 2022
      • January 2022
Powered by GitBook
On this page
  • What has changed?
  • Migrate Azure DevOps
  • Migrate GitHub

Was this helpful?

Edit on GitHub
Export as PDF
  1. Set up
  2. Project Settings
  3. Umbraco CI/CD Flow
  4. Configuring a CI/CD pipeline

Migrate from V1 to V2

The original flow has been improved based on the feedback received from users of the feature.

This article covers how to migrate from version 1 samples to version 2.

Be advised that both scripts and pipeline files have changes.

Familiarize yourself with the new samples.

If you customized the flow or the version 1 scripts, take extra care to incorporate your changes.

You can keep using the old endpoints and samples, but you will miss out on the enhancements. There are currently no plans to deprecate the version 1 endpoints.

What has changed?

The biggest enhancement is the ability to target different environments. You can now target the flexible and the leftmost mainline environment.

The new endpoints are created to accommodate this enhancement, meaning you will have to supply a target environment alias in some requests.

The initial flow has been slightly changed. The upload of a deployment package is no longer tied to a "deployment-meta", but is now a separate step. Every uploaded artifact can be queried by the API, similar to querying deployments via the API.

When you request a deployment, you now also need to supply an artifactId. More options are available when deploying.

To showcase how to use the version 2 endpoints and flow, updated samples are provided.

Migrate Azure DevOps

Start by deleting the scripts and YAML files you initially got from the CI/CD samples:

  • Delete the YAML:

    • azure-release-pipeline.yaml

    • cloud-sync.yml

    • cloud-deployment.yml

You probably only have either PowerShell or Bash.

  • PowerShell files to delete:

    • Add-DeploymentPackage.ps1

    • Apply-Patch.ps1

    • Get-ChangesById.ps1

    • Get-LatestDeployment.ps1

    • New-Deployment.ps1

    • Start-Deployment.ps1

    • Test-Deployment.ps1

  • Bash files to delete:

    • apply_patch.sh

    • create_deployment.sh

    • get_changes_by_id.sh

    • get_deployment_status.sh

    • get_latest_deployment.sh

    • start_deployment.sh

    • upload_package.sh

Copy the scripts from the sample repository's version 2 folder to the corresponding folder in your repo:

  • If you prefer PowerShell:

    • All .ps1 files in V2/powershell should be copied to devops/powershell

    • All .yaml/.yml files in V2/powershell/azuredevops should be copied to devops

  • If you prefer Bash:

    • All .sh files in V2/bash should be copied to devops/scripts

    • All .yaml/.yml files in V2/bash/azuredevops should be copied to devops

Now you need some important values: Project ID and Target environment alias.

  • How to get the project id

  • How to get the environment alias

Open the azure-release-pipeline.yaml in your favorite editor.

Replace ##Your project Id here## with the project ID and the value ##Your target environment alias here# with the environment alias.

You can use any of the available aliases, but to get similar functionality as before, select the environment described as Leftmost mainline.

Migrate GitHub

Start by deleting the scripts and YAML files you initially got from the CI/CD samples:

  • Delete the YAML:

    • main.yml

    • cloud-sync.yml

    • cloud-deployment.yml

You probably only have either PowerShell or Bash.

  • PowerShell files to delete:

    • Add-DeploymentPackage.ps1

    • Apply-Patch.ps1

    • Get-ChangesById.ps1

    • Get-LatestDeployment.ps1

    • New-Deployment.ps1

    • Start-Deployment.ps1

    • Test-Deployment.ps1

  • Bash files to delete:

    • apply_patch.sh

    • create_deployment.sh

    • get_changes_by_id.sh

    • get_deployment_status.sh

    • get_latest_deployment.sh

    • start_deployment.sh

    • upload_package.sh

Now copy the scripts from the sample repository's V2 folder to the corresponding folder in you repo:

  • If you prefer PowerShell:

    • All .ps1 files in V2/powershell should be copied to .github/powershell

    • All .yaml/.yml files in V2/powershell/github should be copied to .github/workflows

  • If you prefer Bash:

    • All .sh files in V2/bash should be copied to .github/scripts

    • All .yaml/.yml files in V2/bash/github should be copied to .github/workflows

Now we need one important value: Target environment alias.

  • This section explains how to get the environment alias.

Go to your GitHub repository and enter the Settings section.

  • On the left side menu, find the Security section and click on Actions.

  • Click on the tab Variables.

  • Click on New repository variable.

    • Call the variable TARGET_ENVIRONMENT_ALIAS.

    • Use the environment alias as a value.

  • Click on Add variable.

You can use any of the available aliases, but to get similar functionality as before, select the environment described as Leftmost mainline.

PreviousAdvanced Setup: Deploy to multiple targetsNextDeployment Artifact best practice

Last updated 6 hours ago

Was this helpful?