Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unit Test SB Release Pipeline #4408

Open
ellahathaway opened this issue May 17, 2024 · 3 comments
Open

Unit Test SB Release Pipeline #4408

ellahathaway opened this issue May 17, 2024 · 3 comments
Labels
area-release-infra Release infrastructure owned by .NET Product Construction

Comments

@ellahathaway
Copy link
Member

Currently, we validate changes to the SB release pipeline by running PRs for changes against fake release runs. If the test pipeline run succeeds, then the changes are considered "successful". This type of validation falls into the category of functional testing where it's about validating that the software behaves as expected and works, but it doesn't check the actual content or internal structures.

While this type of testing is important, we should consider writing tests and validating changes against the actual content of the pipeline. For example, we should write tests that address the following questions:

  1. Does the created PR contain the expected content
  2. Does the pipeline correctly find an SDK diff run with the expected tag
  3. Is the release info in "Read Release Info" what we expect
  4. Are the associated pipeline runs the expected runs
  5. Does the draft announcement contain the correct content
  6. Is the mirrored tag in the expected repo
  7. Does the mirrored tag point to the correct commit
  8. Does the 6.0 PR get created, does it point to the expected commit
  9. Do the download paths for the artifacts contain the artifacts that we expect
@mthalman
Copy link
Member

Ideally we would minimize changes to the actual pipeline to do this testing. The intent is that the validation pipeline behaves the same as the official pipeline. So I'd like to avoid injecting steps into the existing stages that are used by the validation and official pipeline. One possibility is to introduce a new stage at the end that is only used by the validation pipeline. It would include steps which does this kind of validation, either by examining artifacts or querying AzDO to get log output of the current build.

@ellahathaway
Copy link
Member Author

ellahathaway commented May 17, 2024

Ideally we would minimize changes to the actual pipeline to do this testing.
One possibility is to introduce a new stage at the end that is only used by the validation pipeline.

Agreed. I don't think that these tests should be a part of the actual pipeline - my thinking is that these tests would help validate changes to the release pipeline rather than validate runs of the actual pipeline, if that makes sense. In other words, these tests help us to ensure that the changes we're making don't cause unintended consequences.

@MichaelSimons MichaelSimons added area-release-infra Release infrastructure owned by .NET Product Construction and removed area-ci-testing labels May 17, 2024
@MichaelSimons
Copy link
Member

@oleksandr-didyk - Is this the type of validation you were intending in #4131 or orthogonal?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-release-infra Release infrastructure owned by .NET Product Construction
Projects
Status: 9.0
Development

No branches or pull requests

3 participants