aws-observability / aws-rum-web

Amazon CloudWatch RUM Web Client
Apache License 2.0
119 stars 65 forks source link

cd: Create direct CDN deployment and NPM deprecation workflow #391

Closed adebayor123 closed 1 year ago

adebayor123 commented 1 year ago

Description

This PR introduces two new workflows to help with the deprecation process for both CDN and NPM releases. For CDN:

For NPM:


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

limhjgrace commented 1 year ago

question: In our rollback steps to deprecate CDN, the runbook indicates that we need to "Revert the affected major (M.x) and minor (M.m.x) auto-update versions to the previous good version by deleting the bad (most recent) version." Do we not have to still delete the bad (most recent) version? Or does deploying the previous stable version do this under the hood?

limhjgrace commented 1 year ago

question: In our rollback steps to deprecate CDN, the runbook indicates that we need to "Revert the affected major (M.x) and minor (M.m.x) auto-update versions to the previous good version by deleting the bad (most recent) version." Do we not have to still delete the bad (most recent) version? Or does deploying the previous stable version do this under the hood?

Synced offline that the intended behavior should be to only release previous stable version to update 1.x or 1.x.x, not remove the bad version. LGTM.

qhanam commented 1 year ago

Regarding the CDN workflow, is there any disadvantage to re-running the smoke tests? I feel like doing that validation after deployment can only be a good thing.

What do you think about merging these two scripts into a single "deprecate" workflow?

adebayor123 commented 1 year ago

Regarding the CDN workflow, is there any disadvantage to re-running the smoke tests? I feel like doing that validation after deployment can only be a good thing.

Validation is good, but my thought was that since this previous good version already went through smoke test during its release, we don't necessarily need to run the smoke tests again. More than happy to include smoke tests.

What do you think about merging these two scripts into a single "deprecate" workflow?

I've thought about it, and I prefer to separate them - NPM deprecation workflow allows you to select a specific version and add a deprecation message regardless of what branch you're on, as NPM version deprecation does not depend on the branching system we have for version releases. On the other hand, if we wish to trigger release for previous good version for CDN, we need to go to the specific release branch.

If we combine the workflows and we wish to deprecate 1.13.6 - we need to go to branch 1.13.5 or 1.12.x and run CDN while adding 1.13.6 as the version we wish to deprecate. This felt a bit more confusing than to running the NPM workflow then going to a specific branch to re-run the release.

Another issue I saw was just separation of concern for the use cases - what if we just need to deprecate a certain NPM version from the past? In that case, we don't need to trigger a new CDN release, necessarily.