Azure DevOps external feed and local Octopus

Hi,

I have Azure DevOps and local Octopus service which is not available from internet.
I was able to create the project using external feed. It works okay. The next thing which I am going to implement is auto deployment.
I see the following options:

  1. Scheduled trigger. New release is created, and takes the latest package from external feed. Problem is that new release is created even when nothing changed in the project. It means that the same build will be deployed again and again.
    Is it possible to prevent duplicate deployment? For example check if build was deployed in past then terminate and delete release as the first step of the project.

  2. Create some service or separate octopus project with scheduled trigger to pull the latest package from external feed and if it is new then push it to built-in package repository.
    Is it possible to pull the package from external feed using Octopus REST API?

Is there any more sophisticated solution?

BR,
Oleksii

Hi @Oleksii_Bereza ,

Thanks for reaching out with your question regarding automatic deployments on successful builds.

I think your second scenario there would be the simplest to achieve. You could use the octo CLI for this. It has a ‘push’ command. While you can’t pull directly from an external feed, you could use a curl script or similar to fetch packages first, and then push them up to your server with calls to octo push on a tight schedule. You can then lean on Automatic Release Creation when new packages hit the feed.

To answer your last question, the more sophisticated approach really is to opt into a ‘push’ model, rather than a ‘pull’. In this way you can leverage our other integrations with Azure DevOps to trigger releases directly with Octopus deploy.

Indeed, this involves exposing Octopus publicly, and we like to think that we support that use case quite well with various security features like HTTPS support via Lets Encrypt, Strict Transport Security and OIDC integrations. Not to mention our hosted product where we can take care of all that for you.

I understand that the ‘push’ model isn’t possible for everyone, I’ve been there myself, but if you do have any ideas about others features that we could create, that would to help make it easier to feel comfortable about a publicly accessible Server, we’d love to hear about it!

Hope this helps,

Jim

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.