department-of-veterans-affairs / notification-api

Notification API
MIT License
16 stars 9 forks source link

CD Pipeline to Staging #1709

Closed ldraney closed 6 months ago

ldraney commented 7 months ago

User Story - Business Need

We want a fully automated CD pipeline to quickly get code changes into Production. This ticket picks up after the "deploy to perf & merge to release branch" and asks that a pipeline to "release to staging" is created.

User Story(ies)

As a VANotify product manager and engineer I want to deploy the release branch to staging and run the regression after QA approval So that the CI/CD pipeline is more fully automated.

Additional Info and Resources

We have completed the work for the QA pipeline to merge to the Release branch upon QA approval. The next step is to deploy the Release branch to staging once there is a merge to the Release branch.

Then add one more permission stop for QA

Engineering Checklist

Acceptance Criteria

QA Considerations

Potential Dependencies

Setting up appropriate branch protections for the release branch and understanding their interaction with the github actions user

Out of Scope

Actually deploying to prod is out of scope of this ticket. Prod requires a versioning solution prior full implementation. ~Monitoring needs to be greatly enhanced before this is feasible. ~ Coordination needs to be discussed.

mjones-oddball commented 7 months ago

Hey team! Please add your planning poker estimate with Zenhub @cris-oddball @EvanParish @k-macmillan @kalbfled @ldraney @MackHalliday @mchlwellman

ldraney commented 6 months ago

Kyle was able to make a status check branch protection that requires the Actions approval only available to QA, so the user issue I may have faced has been resolved! Moving on.

ldraney commented 6 months ago

workflow completed, but haven't tested yet.
Probably need to test in my POC first but want to talk to Kyle, cause just by creating the new environments for approval I believe this is going to work just fine.

ldraney commented 6 months ago

talked to Kyle, remembered and fixed a few things; and also realized a release branch may not be necessary, reducing the chance of bugs and also reducing complexity.

sent a message to Kyle and Cris to sync on this.

I'll sync with Cris tomorrow morning (once she has confirmed) and then hopefully be ready to sync with Kyle for parking lot.

ldraney commented 6 months ago

Recent convo with Cris, and it seems assuming the latest release commit is fine moving forward.

I'll adjust the workflow, add some tests to the PR with the POC, then open the PR.

ldraney commented 6 months ago

Cannot yet test this code because of a situation in master. Will sync with QA tomorrow once that situation resolves.

ldraney commented 6 months ago

finally got this merged! asyncing with QA as this moves through the pipeline

cris-oddball commented 6 months ago

QA PASSES

Worked with Lucas after this workflow was merged.

Noted that the lines connecting the staging steps in the UI don't exactly match up with the perf lines, but the code functions as expected and so leaving that alone for now.

Screenshot 2024-04-04 at 12.54.04 PM.jpg Screenshot 2024-04-04 at 12.53.53 PM.jpg

Also had a minor branch protection issue that was resolved and then I received the final pause.

All steps work as expected. The release branch was confirmed as the branch sent to staging. The QA regression was confirmed as having regressed the correct commit.

Closing ticket.

cris-oddball commented 6 months ago

Re-opening ticket because we still need the follow-on ticket for finishing this pipeline out to Prod. @ldraney ^^^

cris-oddball commented 6 months ago

Two tix forthcoming: 1) versioning and 2) deploy to prod.

ldraney commented 6 months ago
  1. Here is the versioning ticket
ldraney commented 6 months ago
  1. Here is the deploy to prod ticket
  2. Here is another ticket to publish the release notes (once deploy to prod is setup in the pipeline).