We release once a week on a schedule. Every week we deploy 1 or more projects from our 2020.1 Octopus server. Not all projects see a release every week. In most cases there’s a required order in which we have to deploy all the projects.
Based on research and experience, I know I can utilize the community step to chain deploy to set each release. The issue I have with this approach is I’d have to add a step for every single project, and each week modify the release cycle to re-order or skip the steps with projects not being deployed. Since there’s over 15 projects, I don’t see this as a viable option.
I know how triggers work, and assuming we deployed all our apps in an afternoon, I could generally approximate how long each deploy takes and write a schedule for them. The concern I see here though is that I would still have weeks where the deploy is not “full” aka all of the apps, and there would be huge amounts of time wasted waiting for various apps to deploy. This is especially noticeable when the apps with 10+ deploy targets aren’t getting a release and something would be scheduled to run immediately after that.
Best example that I can give of the above is that there’s projects A through H, they take 5 minutes each to deploy. Week 1, I deploy all the Apps. Week 2 I don’t need to deploy B,C,D, but deploy A,E,F,G,H. I’d be waiting 15 minutes for things to happen when I could get them all taken care of immediately and shorten the deploy window, thus giving my teammates more time in a day to react quicker if there’s a problem.
What are my options for trying to make such a task work?