Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/styles/UmbracoDocs/Acronyms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,4 @@ exceptions:
- ASCII
- CMD
- NGINX
- SDK
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Umbraco Cloud enables you to develop, test, and deploy your projects through a structured and flexible environment setup. With built-in support for deployments, local development, and media synchronization, you can confidently make changes and collaborate with your teams.

This section guides you through working with environments, deployments, and CI/CD pipelines, giving you full control over how your changes are deployed from development to production.
This section covers working with environments, deployments, and CI/CD pipelines, giving you full control over how your changes are deployed from development to production.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><a href="deployment/">Deployment</a></td><td>Learn how content and code deployments work across environments in Umbraco Cloud.</td><td><a href="deployment/">deployment</a></td><td><a href="../../.gitbook/assets/Documentations Icons_Umbraco_Cloud_Deploying.png">Documentations Icons_Umbraco_Cloud_Deploying.png</a></td></tr><tr><td><a href="working-locally/">Working with a Local Clone</a></td><td>Set up a local development environment synced with your Cloud project using Git.</td><td><a href="working-locally/">working-locally</a></td><td><a href="../../.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup.png">Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup.png</a></td></tr><tr><td><a href="umbraco-cicd/">Umbraco CI/CD Flow</a></td><td>Automate your build and deployment pipeline with Git-based workflows and CI/CD best practices.</td><td><a href="umbraco-cicd/">umbraco-cicd</a></td><td><a href="../../.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Umbraco_Forms_and_Zapier.png">Documentations Icons_Umbraco_CMS_Tutorials_Umbraco_Forms_and_Zapier.png</a></td></tr></tbody></table>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: How to restore content in Umbraco Deploy using the deployment dashb

After deploying changes to the metadata, it's time to transfer your content and media. This is done from the Umbraco Backoffice.

Content and media transfers are flexible which means you have complete control over which content nodes and/or media items you want to transfer - all in one go, a few at a time, or a single node.
Content and media transfers are flexible. You control which content nodes or media items to transfer, all in one go, a few at a time, or a single node.

Transferring content will overwrite any existing nodes on the target environment. Content transfers will transfer the items that you select in the "source" environment to the "target" environment the same as it was in the "source". This means that if you have some content on the target environment already, this will be replaced by the new content from the source environment.

Expand Down Expand Up @@ -105,8 +105,8 @@ When changing the values for`TransferDictionaryAsContent` and `TransferFormsAsCo

## Schema Mismatches

Sometimes a content transfer might not be possible. For example, if you add a new property to the HomePage Document type and you don’t have that property in the other Cloud environment, you’ll get an error with a hint on how to fix this.
Sometimes a content transfer is not possible. For example, adding a new property to the _HomePage_ Document Type that's missing in another Cloud environment throws an error. The error contains details on how to fix it.

![clone dialog](images/schema-mismatch_v10.png)

If you are seeing this type of issue when trying to transfer content, refer to the [Schema Mismatches](../../../optimize-and-maintain-your-site/monitor-and-troubleshoot/resolve-issues-quickly-and-efficiently/deployments/schema-mismatches.md) article, where you can read about how to resolve the issues.
If you encounter this issue while transferring content, refer to the [Schema Mismatches](../../../optimize-and-maintain-your-site/monitor-and-troubleshoot/resolve-issues-quickly-and-efficiently/deployments/schema-mismatches.md) article. This article provides guidance on resolving these issues.
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ Azure Blob Storage is an external storage system, that the Umbraco Cloud service

## Working with media locally

When you clone one of your Cloud environments to your local machine, you will need to run a content restore from the backoffice to get a copy of all the media files from the Azure Blob Storage container connected to that environment.
When cloning a Cloud environment to your local machine, run a content restore from the backoffice. This will retrieve a copy of all the media files from the Azure Blob Storage container connected to that environment.

You can learn more about how this works in the [Restoring content](../deployment/restoring-content/) article.

When you add new media files to your project while working on a local clone, the files will automatically be added to the Azure Blob Storage container connected to the environment you deploy to.
Adding new media files to your local clone automatically uploads to the Azure Blob Storage container connected to the environment you are deploying to.

## One Storage per Environment

Each environment on your Umbraco Cloud project has a separate Azure Blob Storage container. Each of your environments uses a storage container specific to that environment.

When you deploy between two environments on your Umbraco Cloud project the media files will be copied from one storage to the other, depending on which environment is being transferred to and from.
When you deploy between two environments on your Umbraco Cloud project, media files will be copied from one storage to the other. The files are transferred depending on which environment you are moving to and from.

As an example, imagine that you are transferring new content changes from your left-most mainline environment to your Live environment. When you initiate the transfer, all media files from the Azure Blob Storage container connected to your left-most mainline environment will be copied and pasted into the container connected to your Live environment. Once all content changes have also been transferred, and the transfer is complete, your Media libraries on the two environments will now be in sync.
For example, let's consider a scenario where you are transferring content changes from your left-most mainline environment to your Live environment. Initiating the transfer copies all media files from your left-most mainline environment Azure Blob Storage container to the Live environment container. Once all content changes have been successfully transferred and the process is complete, the media libraries in both environments will be synchronized.

## Media Folder

Expand All @@ -44,9 +44,11 @@ Instead, you will find a `project.assets.json` file in the `obj` folder. This fi
In some cases, you might want to connect to your Azure Blob Storage container for the environments on your Umbraco Cloud project. This could be to clean up unwanted media files or to download the current contents of the library.

{% hint style="info" %}
Instead of connecting to your Azure Blob Storage container using the following approach, you can clone your Cloud environment to your local machine and access the files from there.

Instead of connecting to Azure Blob Storage, you can clone your Cloud environment locally to access the files.

You should only use the following approach when you do not have the option to clone down the environment to your local machine.

{% endhint %}

To do this, you need to know some details about the connection between the environment and the Azure Blob Storage containers. Below are the steps you need to follow, to locate the necessary variables:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ You can also secure the values in **Secrets Management** in the project **Settin

<figure><img src="../images/blob-folder-created-programatically.png" alt="Blob folder created programmatically"><figcaption><p>Blob folder created programmatically</p></figcaption></figure>

Now you have connected to your Blob Storage programmatically you can extend it to fit your needs in terms of what you need to upload to the blob container.
Now that you are connected to Blob Storage programmatically, you can customize it to suit your upload needs.

## References

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ Let's use the information you have gathered, and connect Azure Storage Explorer

<figure><img src="../../../../.gitbook/assets/image (84).png" alt="Select blob container"><figcaption><p>Blob container</p></figcaption></figure>

3. Select **Shared access signature URL (SAS)** in the second prompt.
3. Select **Shared Access Signature (SAS) URL** in the second prompt.

<figure><img src="../../../../.gitbook/assets/image (85).png" alt="Shared access signature URL (SAS)"><figcaption><p>Shared access signature URL (SAS)</p></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (85).png" alt="Shared access signature (SAS) URL"><figcaption><p>Shared access signature (SAS) URL</p></figcaption></figure>

4. Input the information you have gathered earlier in the following format `[Endpoint][ContainerName][SharedAccessSignature]`, in the URI field. See below for an example.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ We recommend using the following tools to work with a local clone of your Umbrac
* [Microsoft Visual Studio](https://www.visualstudio.com/) or [JetBrains Rider](https://www.jetbrains.com/rider) - for running the project on your local machine.

{% hint style="info" %}
In the root of your local project, there is a README file containing information about the project structure and the build process on Umbraco Cloud.

In the root of your local project, you'll find a *README* file with details about the project structure and build process on Umbraco Cloud.

{% endhint %}

## Cloning an Umbraco Cloud Project
Expand Down Expand Up @@ -90,7 +92,7 @@ dotnet dev-certs https --trust
```
{% endhint %}

The first time the project is run locally, you will see the **Restore from Umbraco Cloud** screen. If the environment you have cloned already contains Umbraco Deploy metadata files (such as Document Types, Templates, etc), these are automatically extracted with the option to restore content from the Cloud environment into the local installation.
The first time the project is run locally, you will see the **Restore from Umbraco Cloud** screen. If the cloned environment has Umbraco Deploy metadata files, they are automatically extracted with the option to restore content from Cloud to the local installation.

![clone dialog](../../set-up-your-project/project-settings/images/restorecontent.jpg)

Expand Down Expand Up @@ -119,7 +121,7 @@ If you have more than "a few" media items, see our recommendations for working w

### Adding a Solution File to your Cloud Project

Working with Visual Studio, you will likely want a solution file, so you and your team can work with an Umbraco Cloud project and have the option to add additional projects.
To collaborate effectively in an Umbraco Cloud project, ensure you have a solution file in Visual Studio. This allows for adding additional projects.

If you want to add a solution file for your Cloud project, you can do it either:

Expand Down Expand Up @@ -218,10 +220,10 @@ csproj = "MyAwesomeProject.Web.csproj"
```

{% hint style="info" %}
It's a good idea to update the namespace used in the `Program.cs`, `Startup.cs` and `_ViewImports.cshtml` files so the naming is consistent throughout your project structure. Once updated, you will need to clear out the `bin` and `obj` folders locally to avoid build errors. When you are done, commit the changes and push them to Cloud.
It's a good practice to update the namespaces in the `Program.cs`, `Startup.cs`, and `_ViewImports.cshtml` files to ensure consistent naming throughout your project. After making these updates, be sure to clear the `bin` and `obj` folders locally to prevent any build errors. Once you have completed these steps, commit your changes and push them to the cloud.
{% endhint %}

If you have already built and run the project locally using the original project file and folder, make an update in your local .git repository to reflect the change that has been made. When a Cloud project first runs, a git hook is created to trigger a schema update via Umbraco Deploy when changes are pulled from an upstream environment.
If you've built and run the project locally, update your local Git repository to reflect any changes made. When a Cloud project first runs, a Git hook is created. It triggers a schema update via Umbraco Deploy when changes are pulled from an upstream environment.

The file you'll need to update is `post-merge` within `.git/hooks/` in your cloned environment files. It can be opened with a text editor. You can either delete the file so it will be recreated with the new path or update it. The default contents are shown below and can be updated to reflect the new path to the `umbraco/Deploy` folder.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,15 @@ Manually creating and configuring a Visual Studio solution with the right projec
Download the UaaS.cmd tool from [umbra.co/uaas-cmd](https://umbra.co/uaas-cmd) and place it in the folder you want the solution in.

{% hint style="info" %}

**Important**: To use the UaaS.cmd tool you will need to have Visual Studio 2017 version 15.9.6 or any later version installed.

{% endhint %}

{% hint style="warning" %}

**Important**: Be aware if you run the Uaas.cmd tool as an administrator it will generate the files in your Windows/System folder.

{% endhint %}

This is a recommended setup. If you don't like the setup then you can play with it and make it your own. There's nothing magic about this setup. It is adding a few files to your Umbraco Cloud website to give you a flying start to begin working with Visual Studio.
Expand Down Expand Up @@ -164,9 +168,11 @@ The cloned git repository from Umbraco Cloud comes with its own `.gitignore` so
All files that are required to run the Umbraco site should be committed to the git repository in the `*.Web` folder. From there they can be deployed to Umbraco Cloud. This includes assemblies (`*.dll`).

{% hint style="info" %}
To ensure that your `.dll` files are created in release mode, ensure that you switch to "Release" (instead of "Debug") mode when building the project.

It is recommend to build the project in release mode, before deploying the changes through Git.
To ensure your `.dll` files are created in release mode, switch to "Release" mode instead of "Debug" mode when building the project.

It is recommended to build the project in release mode, before deploying the changes through Git.

{% endhint %}

For the `*.Core` part of the solution as well as the solution file and default `.gitignore` file you commit that to the source code repository. You should ideally set a remote for this git repository to your own git host like GitHub, BitBucket or Visual Studio Team Services.
Expand Down