Azure / static-web-apps-cli

Azure Static Web Apps CLI ✨
https://aka.ms/swa/cli-local-development
MIT License
591 stars 116 forks source link

feat: ability to tear down preview environments #548

Open neilmispelaar opened 2 years ago

neilmispelaar commented 2 years ago

Is your feature request related to a problem? Please describe. I'm frustrated that I can not tear down preview environments using the swa tool.

Our organization is on a private gitlab installation and due to our insane security policies I can't use the regular image : registry.gitlab.com/static-web-apps/azure-static-web-apps-deploy because it's blocked. So I am installing the 'swa` tool in our node images to do deployments to our SWA instance as part of a job in Gitlab's pipeline.

So, I'm trying to setup GitLab's review apps in our project. I would love for when a pull request is closed / merged the on_stop job runs and then removes the preview environment created for that particular job. (NB: I create the preview environment during a deploy job using the swa tool earlier in the pipeline)

This would also be helpful as the free tier only has a limit of 3 (three) preview environments, so keeping the number of preview environments taken up to the absolute lowest is key.

Describe the solution you'd like A simple tear down flag on the deploy command so that when you run it, it removes a preview environment from your swa instance.

Options

swa deploy --tear-down-env "preview-environment-name"

Describe alternatives you've considered The only alternative I can think of is logging into the Azure portal and manually deleting the preview environments.

Additional context No additional context just to saw that I'm so happy you even created the swa tool. It's a lifesaver for me already, and I appreciate the continued support and enhancement to this tool and our unique use cases.

neilmispelaar commented 2 years ago

Actually, if I can update one thing:

What would be very helpful is if the tear down flag could also remove the oldest / stalest (?) preview environment by default. This way as team members create new MRs (PRs in GitHub) off main branch, as long as there aren't more than 3 on free, we can have preview environments for the last three MRs rotating through.

This way, I don't have to try to figure out what the existing preview environments are in the gitlab pipeline and then figure out the oldest one and tear down that one.

Options