Environments and AppVeyor as Deploy Manager

michiel's Avatar

michiel

31 May, 2014 08:54 PM

I think the current Environment functionality can be made a lot more powerful with some changes.

I expect to create environments; for example staging, production etc. But 1 environment can only contain 1 deployment method.
In your project at the deployment tab, I can add multiple deployments. Which is very useful, because I need to deploy one artifact to a website and another artifact as a windows app for each build. But I can't do that with the Environments.
Suggestion: create a parent entity for environments, for example "environment groups". An environment group (for example "staging project X") can contain multiple environments

What I also find kind of strange is that I can deploy any project to any environment. That doesn't seem right. My staging environment for project X can only be used for project X. I don't ever want to deploy another project to that environment. Not even by accident.
Suggestion: environments are linked to projects

My scenario: Every build is deployed to a testing machine. And I want to go to AppVeyor to promote the build to staging or production environments manually. This way AppVeyor can be a powerful CI solution and Deploy Manager. No need for tools like Octopus Deploy.
I can already do this right now with AppVeyor, with some workarounds. The above suggestions would make it more natural.

Another suggestion: Deployment Audit log, who deployed what and when

It looks like there is a bug with the roles and rights for environments. I created a new role without any rights for the Environment section and added a new user with this role. But this user can still see all the environments and update a deployment to an environment.

  1. Support Staff 1 Posted by Feodor Fitsner on 01 Jun, 2014 03:41 PM

    Feodor Fitsner's Avatar

    Great suggestion, thank you! And it's perfect timing as right now we are planning the next sprint (1-2 months) and deployment improvements is the main part of it.

    Another thing I'm looking into is the way to configure artifact deployment parameters per environment, some new entity in between artifact and environment.

    UI will be re-factored too to be consistent with builds.

    Yes, our ultimate goal is to be a one-stop shop for testing and deployment of all your projects. If you have any other thoughts please let me know.

  2. 2 Posted by michiel on 01 Jun, 2014 05:07 PM

    michiel's Avatar

    Cool, great to hear that improvements are on their way. I'll ask some coworkers if they have any more suggestions. Thanks.

  3. Support Staff 3 Posted by Feodor Fitsner on 02 Jun, 2014 03:42 AM

    Feodor Fitsner's Avatar

    ...and agree, audit log should be made across the system.

  4. 4 Posted by michiel on 11 Jul, 2014 12:27 PM

    michiel's Avatar

    Another suggestion for (manual) deployments to environments. Add the option for a before and after script.
    During the build proces, you can set a before and after deploy script. But when manually deploying to an environment this is not possible.

    The environments groups mentioned in the first post are really needed. One of our projects needs to deploy 5 websites / applications. Lots of manual steps currently via AppVeyor.

  5. Support Staff 5 Posted by Feodor Fitsner on 11 Jul, 2014 02:55 PM

    Feodor Fitsner's Avatar

    Yeah, this will be a part of deployment vNext.

    - Feodor

  6. 6 Posted by JD Courty on 23 Feb, 2015 04:30 PM

    JD Courty's Avatar

    Has there been any movement on these features? I cannot find a roadmap for AppVeyor, so I can't tell if there is a planned release or not.

    We build a multi-service Azure application, and not being able to deploy all parts of our application at once to a 'staging / production' environment is a showstopper. If these features were in place, AppVeyor would be an almost perfect solution for us.

  7. Support Staff 7 Posted by Feodor Fitsner on 23 Feb, 2015 07:07 PM

    Feodor Fitsner's Avatar

    Deployment improvements are still on track and multi-environment deployments as well. We'll be working on road map in the coming weeks. At the moment we are working on stabilization/bugfixing stuff.

    In the meantime you may try implementing that using REST API: http://www.appveyor.com/docs/api/environments-deployments#deployments - that could be just few lines in PowerShell.

  8. 8 Posted by jake on 25 Jun, 2015 10:46 AM

    jake's Avatar

    Hey Feodor

    Any updates on having multiple deployment providers per environment?

  9. Support Staff 9 Posted by Feodor Fitsner on 27 Jun, 2015 01:05 AM

    Feodor Fitsner's Avatar

    Still working on design. What would be your specific requirements/needs?

  10. 10 Posted by jake on 27 Jun, 2015 08:37 AM

    jake's Avatar

    If I was to put it in a config file I would want something like this:

    deploy:
      - environment:
        name: Deploy
        providers:
          - provider: NuGet
            server: http://chocolatey.org
            api_key:
              secure: mb19XDM/nj6pBpA9sCeS79TcrS1aaJri8ID9iB1agXDrFEFgi0MRACXZ5ZMOIDLd
            artifact: /GitVersion.Portable\.$(GitVersion_NuGetVersion)\.nupkg/
    
          - provider: NuGet
            api_key:
              secure: kyvS4pYmOCyvas5wxibDusCABHBkmORratOuw13JYeo/xj+ggCnfZhihMVUrXL7x
            artifact: /GitVersion.CommandLine\.$(GitVersion_NuGetVersion)\.nupkg/
    
          - provider: NuGet
            api_key:
              secure: kyvS4pYmOCyvas5wxibDusCABHBkmORratOuw13JYeo/xj+ggCnfZhihMVUrXL7x
            artifact: /GitVersionTask\.$(GitVersion_NuGetVersion)\.nupkg/
    
          - provider: NuGet
            api_key:
              secure: kyvS4pYmOCyvas5wxibDusCABHBkmORratOuw13JYeo/xj+ggCnfZhihMVUrXL7x
            artifact: /GitVersion\.$(GitVersion_NuGetVersion)\.nupkg/
    
          - provider: GitHub
            release: v$(GitVersion_SemVer)
            tag: v$(GitVersion_SemVer)
            auth_token:
              secure: QCfgNKY8+AxmhK4kX05Y38K54C/P9lopjymJqsMTExjh5y7r0kFmLLBzSmcUrWUS
            artifact: /GitVersion_$(GitVersion_NuGetVersion).zip/
    
  11. 11 Posted by jake on 27 Jun, 2015 08:41 AM

    jake's Avatar

    Thinking about it, you could create a deployment provider of Multiple Providers. That would just allow multiple nested deployment providers to be configured under it.

    I need to deploy to GitHub (releases, and upload a zip artifact), upload 3 nuget packages to Nuget.org and push one package to chocolatey.org. I would prefer it was a single deployment rather than 3 separate.

  12. Support Staff 12 Posted by Feodor Fitsner on 27 Jun, 2015 06:37 PM

    Feodor Fitsner's Avatar

    Nice idea! :) We've been thinking about the same approach - using YML for configuring environments.

  13. 13 Posted by michiel on 14 Jul, 2015 02:40 PM

    michiel's Avatar

    Can you give us some sort of timeline? When will we be able to use deployments vNext?

    This feature request is over a year old. More and more of our projects migrated to AppVeyor and we really need more advanced deployments.
    I don't want to invest my time in Octopus Deploy, so I'm now considering writing my own AppVeyor Depoy Manager based on the available APIs. But I'd rather get some official built in support for this.

  14. Support Staff 14 Posted by Feodor Fitsner on 15 Jul, 2015 04:42 AM

    Feodor Fitsner's Avatar

    We are working on the design right now and it's #1 item. I'm going to publish design document in a week or so. Implementation will take 1.5-2 months from that point.

    However, it would be interesting to see 3rd-party, alternative solution ;)

  15. 15 Posted by michiel on 21 Sep, 2015 11:16 AM

    michiel's Avatar

    Just checking up on this. Are the design documents published somewhere?
    Already some work in progress for this update?

  16. 16 Posted by Daniel Clausen on 21 Sep, 2015 03:20 PM

    Daniel Clausen's Avatar

    +1 on multi-deploy environments. This would be an extremely beneficial feature.

  17. Support Staff 17 Posted by Feodor Fitsner on 28 Sep, 2015 12:50 AM

    Feodor Fitsner's Avatar

    Sorry, guys for delay - we've been working on infrastructure improvements.

  18. 18 Posted by Chris Foster on 15 Oct, 2015 07:25 PM

    Chris Foster's Avatar

    I'm just trying out AppVeyor after using TeamCity for many years. We currently have over 100 repositories and are mostly interested in having a simple way of publishing to staging and production. I found it a little unintuitive that I should set up staging deployment under the project but then create an environment for manual production deployment. I was even more suprised that each environment allows me to publish any project. I'm struggling to think of a common use case for wanting to do this and feel that it will be very problematic having to pick the correct project from over 100, some of which may be named in a similar way. I'm also a little dissappointed to see this is unresolved over nearly a year and a half after being suggested. I like everything else i've seen in the short time I've been evaluating but I'm afraid this issue will be the deciding one. I would have thought it would be a simple change to allow adding a second deployment that is not automatically triggered. Please can you confirm that there is currently no other way of achieving this.

  19. 19 Posted by michiel on 23 Oct, 2015 01:44 PM

    michiel's Avatar

    I started the work on my own AppVeyor Deploy Manager. It's open source and implemented as a console app.

    It's basic, but it works. You can create groups with multiple environments and trigger deployments to all those environments.

    Check it out here:
    https://github.com/michielpost/AppVeyorDeployConsole

    Any help is welcome, just send a pull request!

  20. Support Staff 20 Posted by Feodor Fitsner on 23 Oct, 2015 11:47 PM

    Feodor Fitsner's Avatar

    Nice work, thanks for sharing it with community!

    - Feodor

  21. 21 Posted by michiel on 01 Feb, 2016 01:47 PM

    michiel's Avatar

    Great to see some changes today to assign deployment environments to projects.

    I already updated the AppVeyorDeployConsole to make use of a new API call so it only let's you pick deployment environments that are available to the project you want to deploy.

  22. Support Staff 22 Posted by Feodor Fitsner on 01 Feb, 2016 05:13 PM

    Feodor Fitsner's Avatar

    Great, thank you!

  23. 23 Posted by amarvel on 05 May, 2016 07:31 PM

    amarvel's Avatar

    It was mentioned that infrastructure improvements had delayed the implementation of this. Could we get another update on the timeline for implementation? This feature would be the #1 thing I would look forward to in using this product.

  24. 24 Posted by sedwards on 28 Mar, 2017 01:18 AM

    sedwards's Avatar

    I have this same question/request. Appveyor is great for basic CI, but I'm not seeing a way to promote artifacts easily through stages of development. CI breaks down if I can't use the same artifact that is created at step 1 and move it through all of my stages into production. An update would be greatly appreciate.

  25. Support Staff 25 Posted by Feodor Fitsner on 30 Mar, 2017 04:00 PM

    Feodor Fitsner's Avatar

    @sme - this is the exact purpose of "Environment" deployment: https://www.appveyor.com/docs/deployment/ - you build the package (artifact) once and then deploy it to any environment without rebuilding.

  26. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:15 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

 

03 Oct, 2024 07:07 PM
01 Oct, 2024 05:06 PM
01 Oct, 2024 04:27 PM
26 Sep, 2024 03:49 PM
26 Sep, 2024 09:02 AM
25 Sep, 2024 07:07 PM