Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added external feed trigger docs #2218

Merged
merged 16 commits into from
Apr 22, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
10 changes: 9 additions & 1 deletion dictionary-octopus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ASPNET
aspnetcore
astro
astrojs
auditability
augeas
auths
autodeployoverride
Expand Down Expand Up @@ -59,11 +60,13 @@ Elyton
emptytitle
Fargate
feedcred
Feedz.io
fieldset
figcaption
FIPS
frontmatter
gcloud
getenv
gifs
globbing
googleaccount
Expand Down Expand Up @@ -105,6 +108,7 @@ lifecycles
linecap
linejoin
linkerd
Linq
ltsc
maintenanceconfiguration
majeure
Expand All @@ -116,6 +120,7 @@ MITM
Moines
mozjpeg
mozroots
msbuild
msiexec
MTTR
myapplication
Expand Down Expand Up @@ -155,6 +160,7 @@ podannotation
prerender
prerenderingchange
printfn
Println
PROGRAMFILES
pwsh
pycryptodome
Expand Down Expand Up @@ -187,6 +193,7 @@ shiki
SIEM
signingkeys
skiplinks
snapshotted
snapshotting
sourcedata
speculationrules
Expand All @@ -203,6 +210,7 @@ tagset
templateid
templating
tenanttype
testoctopusdemos.app
TFVC
thepassword
tmpfs
Expand Down Expand Up @@ -237,6 +245,6 @@ xvzf
YOURAPIKEY
octopusbob
servername
octopusdemos
octopusdemos.app
sqlcmd
sqlvolume
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
2 changes: 1 addition & 1 deletion src/pages/docs/administration/sync-instances/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ In our experience, it is far easier to group data by type and sync them all toge
- Variables
- Channel Version Rules
- Release Version Strategy
- Auto Release Creation settings
- Built-in package repository trigger
- Logo
- Tenants
- Tenant / Project relationship
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Creating a clone of an existing instance involves:

Cloning an instance includes cloning all certificates. Assuming you are not using polling Tentacles, all the deployments will "just work." That is by design if the VM hosting Octopus Deploy is lost and you have to restore Octopus Deploy from a backup.

Just working does have a downside, as you might have triggers, auto release creation, and other items configured. These items could potentially perform deployments. You can run this SQL Script on your cloned instance to disable everything.
Just working does have a downside, as you might have triggers and other items configured. These items could potentially perform deployments. You can run this SQL Script on your cloned instance to disable everything.

```sql
Use [OctopusDeploy]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
layout: src/layouts/Redirect.astro
title: Redirect
redirect: https://octopus.com/docs/projects/project-triggers/automatic-release-creation
pubDate: 2023-01-01
redirect: https://octopus.com/docs/projects/project-triggers/built-in-package-repository-triggers
pubDate: 2023-01-01
navSearch: false
navSitemap: false
navMenu: false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
layout: src/layouts/Redirect.astro
title: Redirect
redirect: https://octopus.com/docs/projects/project-triggers/automatic-release-creation
pubDate: 2023-01-01
redirect: https://octopus.com/docs/projects/project-triggers/built-in-package-repository-triggers
pubDate: 2023-01-01
navSearch: false
navSitemap: false
navMenu: false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
layout: src/layouts/Redirect.astro
title: Redirect
redirect: https://octopus.com/docs/projects/project-triggers/automatic-release-creation
pubDate: 2023-01-01
redirect: https://octopus.com/docs/projects/project-triggers/built-in-package-repository-triggers
pubDate: 2023-01-01
navSearch: false
navSitemap: false
navMenu: false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
layout: src/layouts/Redirect.astro
title: Redirect
redirect: https://octopus.com/docs/projects/project-triggers/automatic-release-creation
pubDate: 2023-01-01
redirect: https://octopus.com/docs/projects/project-triggers/built-in-package-repository-triggers
pubDate: 2023-01-01
navSearch: false
navSitemap: false
navMenu: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@ When you create a release, you must enter or choose the following items:
Let the CI, or Build Server, create the release after uploading the package you wish to deploy. The build server knows when it has finished uploading the package, along with other important information, such as the current branch, was the build triggered by a pull request, and more.

:::div{.hint}
Octopus Deploy provides [automatic release creation](/docs/projects/project-triggers/automatic-release-creation) functionality. That monitors a specific package in the built-in package repository. It automatically creates a release when a new package version is pushed.
Octopus Deploy provides [built-in package repository](/docs/projects/project-triggers/built-in-package-repository-triggers) and [external feed](/docs/projects/project-triggers/external-feed-triggers) triggers. These triggers will automatically create a release when a new package version is pushed.

Release creation triggers have the following limitations:

- Only the built-in package repository, container image and helm feeds are currently supported.
- The order the build server pushes the packages can be very important when there are multiple involved, as you'll have to configure the trigger to monitor the last package pushed by the build server. That makes the build server and Octopus Deploy more tightly coupled.
- Built-in package repository triggers have a limit of one per project.

That has the following limitations:
- Only works for the built-in repository.
- The order the build server pushes the packages becomes very important, as you'll have to configure Automatic Release Creation to monitor the last package pushed by the build server. That makes the build server and Octopus Deploy more tightly coupled.
- You are required to pre-select a channel when configuring Automatic Release Creation. Creating a release automatically for another channel is possible but will require the build server or other tool to be configured.
:::

## Updating a release
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Enter the URL where the Octopus Server can be reached, and add an [API key](/doc

When you define an "Octopus package" in AppVeyor through the **Package Web Applications for Octopus Deployment** flag or the **Artifacts** page, then AppVeyor will automatically select that package to push to your Octopus Server. Set the **Artifact(s)** field on the **Deployment** page if you have manually created an archive.

If your Octopus Deploy project doesn't make use of [automatic release creation](/docs/projects/project-triggers/automatic-release-creation) or automatic lifecycle progression you can optionally trigger these actions from within the AppVeyor configuration providing the appropriate values in the inputs provided.
If your Octopus Deploy project doesn't make use of [release creation triggers](/docs/projects/project-triggers/built-in-package-repository-triggers) or automatic lifecycle progression you can optionally trigger these actions from within the AppVeyor configuration providing the appropriate values in the inputs provided.

Unless overridden, the AppVeyor project name will be used in place of the Octopus project name when creating a release.

Expand All @@ -91,7 +91,7 @@ deploy:
deploy_release: false
server: https://myoctopus.acme.corp
api_key:
secure: 8PgmblIvjjj7jr4ZxOdZ9ADT+PeBCF6+PqRcf6PZ4A=
secure: YOUR-API-KEY
project: AcmeWeb
deploy_wait: false
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ Instead of using your own API key, consider using a [Service Account](/docs/secu
:::

:::div{.hint}
**Using automatic release creation?**
If you are using [automatic release creation](/docs/projects/project-triggers/automatic-release-creation/) you will also require the permissions to create a release for all the relevant projects in the required environments. To diagnose issues with pushing packages used for automatic release creation follow the troubleshooting guide on the [automatic release creation](/docs/projects/project-triggers/automatic-release-creation) page.
**Using built-in package repository triggers?**
If you are using [built-in package repository triggers](/docs/projects/project-triggers/built-in-package-repository-triggers) you will also require the permissions to create a release for all the relevant projects in the required environments. To diagnose issues with pushing packages used for built-in package repository triggers follow the troubleshooting guide on the [built-in package repository triggers](/docs/projects/project-triggers/built-in-package-repository-triggers) page.
:::

## Moving the location of the built-in repository {#PackageRepositories-MovingTheLocationOfTheBuilt-InRepository}
Expand Down
115 changes: 7 additions & 108 deletions src/pages/docs/projects/project-triggers/automatic-release-creation.md
Original file line number Diff line number Diff line change
@@ -1,110 +1,9 @@
---
layout: src/layouts/Default.astro
---
layout: src/layouts/Redirect.astro
title: Redirect
redirect: https://octopus.com/docs/projects/project-triggers/built-in-package-repository-triggers
pubDate: 2023-01-01
modDate: 2023-01-01
title: Automatic release creation
description: Automatic release creation allows you to automatically create a new release when a new package is pushed to the built-in package repository.
navOrder: 15
navSearch: false
navSitemap: false
navMenu: false
---

:::div{.hint}
**Consider using a build server extension**
We have [extensions/plugins](/docs/packaging-applications/build-servers/) available for the most popular build servers. These extensions will help you [create packages](/docs/packaging-applications), [push those packages to the built-in repository](/docs/packaging-applications/package-repositories/built-in-repository/#pushing-packages-to-the-built-in-repository), create releases and deploy them to your environments:

- [AppVeyor](/docs/packaging-applications/build-servers/appveyor)
- [Azure DevOps & Team Foundation Server](/docs/packaging-applications/build-servers/tfs-azure-devops)
- [Bamboo](/docs/packaging-applications/build-servers/bamboo)
- [BitBucket Pipelines](/docs/packaging-applications/build-servers/bitbucket-pipelines)
- [Continua CI](/docs/packaging-applications/build-servers/continua-ci)
- [Jenkins](/docs/packaging-applications/build-servers/jenkins)
- [TeamCity](/docs/packaging-applications/build-servers/teamcity)

:::

## Getting started {#AutomaticReleaseCreation-Gettingstarted}

If you use the [built-in Octopus package repository](/docs/packaging-applications/package-repositories), you can now select a package, that when uploaded it will automatically create a release.

:::div{.warning}
**Built-in repository only**
External package repositories **cannot be used to automatically create releases**, only the [built-in package repository](/docs/packaging-applications/package-repositories) is supported.
:::

From the project's trigger tab, under the section called **Automatic Release Creation**, click **Setup**, and then select the package that will trigger the release:

:::figure
![Automatic release creation](/docs/projects/project-triggers/images/automatic-release-creation.png)
:::

As a project can contain multiple packages you need to select the package that will upload LAST in your build and push CI process. If you have multiple packages, make sure you select the package that is always uploaded last.

:::figure
![Automatic release creation last package option](/docs/projects/project-triggers/images/automatic-release-creation-last-package.png)
:::

When a release is set to be created this way, the audit will tell you that is how the release was created.

:::figure
![Release history](/docs/projects/project-triggers/images/history.png)
:::

If you combine uploading a package with the automatic deployment feature within [Lifecycles phases](/docs/releases/lifecycles/#Lifecycles-LifecyclePhases), you can push a package to the internal repository, create a release, and have it automatically deploy.

:::div{.hint}
The release number that is created is guided by the Release Versioning settings under **Project ➜ Settings**. It will use the rules defined.
:::

## Channels {#AutomaticReleaseCreation-Channels}

You must select the [channels](/docs/releases/channels) that will be used for any automatically created releases. This means that **only one channel for each project can have an automatic release creation trigger enabled at any one time.** This can be painful, and here are some points you can consider:

- Use one of the [build-server extensions](/docs/packaging-applications/build-servers/), or the [Octopus CLI](/docs/octopus-rest-api/octopus-cli/create-release) to create releases instead of using ARC - this will automatically determine the best channel based on the release being created
- Choose the channel that will be used most commonly for automatically creating releases, and create releases manually for the other channels.
- Try creating some releases manually for the selected channel to make sure it works as expected.

## Automatically creating pre-releases {#AutomaticReleaseCreation-Automaticallycreatingpre-releases}

When you push a package to your trigger step, Octopus will look for the latest available package for all other steps **excluding pre-release packages by default** - see [this thread](https://help.octopus.com/t/arc-not-working-with-pre-release-builds/3646) for background.

One way to work around this behavior is to create a Channel with the appropriate version rules so that "latest available package" will be the pre-release packages you expected. The best way to test this is to practice creating releases manually for that channel - the "latest available package" will work the same way for manual and automatically created releases.

## Troubleshooting {#AutomaticReleaseCreation-Troubleshooting}

When you are using automatic release creation there are many reasons why a release may not be created successfully. Take some time to consider the following troubleshooting steps:

1. **Inspect the server logs** for warnings in **Configuration ➜ Diagnostics** - Octopus will log the reason why automatic release creation failed as errors or warnings.

2. Ensure you are pushing the package to the **built-in package repository** - external package repositories are not supported for automatic release creation.

3. Ensure you have **enabled automatic release creation** for the project based on the **correct package**.

4. When using Channels ensure you have **enabled automatic release creation for the desired Channel**.

5. Ensure you are pushing a **new version** of the package - Octopus will not create a release where the package has already been used for creating a release.

6. Ensure you are pushing a package that Octopus will consider as the **latest available package** - see the section above on [automatically creating pre-releases](#AutomaticReleaseCreation-Automaticallycreatingpre-releases).

7. Ensure the release creation package step **DOES NOT use variables for the PackageId** - Octopus will only create a release where the package is constant.

8. When a release has **multiple packages**, ensure you configure automatic release creation to use the **last package that is pushed to the built-in repository** - otherwise some of the packages required for the release will be missing.

9. When using Channels the package **must satisfy the version rules** for the Channel being used for automatic release creation - try creating some releases manually.

10. Are you pushing **pre-release** packages? See the section above on [automatically creating pre-releases](#AutomaticReleaseCreation-Automaticallycreatingpre-releases).

11. Ensure the account pushing the package has the required permissions for **each** of the **Projects** and **Environments** that will be involved in creating (and potentially deploying) the release. Consider which of the following permissions may be required depending on your circumstances:

- `BuiltInFeedPush`
- `DeploymentCreate`
- `EnvironmentView`
- `FeedView`
- `LibraryVariableSetView`
- `LifecycleView`
- `MachineView`
- `ProcessView`
- `ReleaseCreate`
- `VariableView`

## Learn more

Take a look at the [Octopus Guides](https://octopus.com/docs/guides) which covers building and packaging your application, creating releases and deploying to your environments for your CI/CD pipeline.
Loading
Loading