-
-
Notifications
You must be signed in to change notification settings - Fork 7
🚧Create preview release workflow #215
Description
Complete The Item Below
- I have updated the title without removing the 🚧 emoji.
Description
Create a preview release workflow. This workflow will perform validation of various things before performing the release.
A release will consist of the combination of creating a NuGet package, publishing the package, creating a GitHub release with attached release notes, and announcing the release on Twitter.
Pay attention to the following:
- Make sure the entire workflow uses powershell as the default shell
- The version will be validated that it is a preview version
- The branch to validate will be validating that the head branch is a preview branch
- This uses the BranchValidator GitHub action
- The jobs need to have dependencies on other jobs to ensure certain operations are performed before that job is executed.
Note These dependencies can be seen in the graph below.
The diagram below shows the dependencies between the jobs in the workflow.

Acceptance Criteria
- Preview Release Workflow Created
- Workflow named preview-release.yml
- Job created to validate that the head branch is a preview branch
- Job created to pull the version from the .csproj file
Note Uses the VersionMiner action
- Job created to validate that the version is a preview version
Note Uses the validate-version.ts script
- Job created to validate that the tag is correct
Note Uses the validate-tag.ts script
- Job created to validate that the NuGet package exists
Note Uses the nuget-pkg-does-not-exist.ts script
- Job created to validate that the release notes exist and that the contents of the release notes
Note Uses 2 steps in a single job. Need to validate the existence of the release notes
first before we check the note's content- Uses the release-notes-exist.ts script
- Uses the validate-release-notes.ts script
- Job created to validate that the milestone exists and that the items are all closed
Note Uses 2 steps in a single job. Need to validate the existence of the milestone exists
first before we check if the milestone items are all closed- Uses the milestone-exists.ts script
- Uses the milestone-items-all-closed.ts script
- Job created to validate that a GitHub release does not already exist'
Note Uses the github-release-does-not-exist.ts
- Job created to build all projects
- Job created to run all tests
- Job created to perform the actual release
Note This will contain many steps for the release process.
- Create a NuGet package
- Publish NuGet Package
- Create GitHub release (Uses the soft props GitHub action
- Perform Twitter announcement
- Close Milestone
- Change default branch back to master
ToDo Items
- Change type labels added to this issue. Refer to the Change Type Labels section below.
- Priority label added to this issue. Refer to the Priority Type Labels section below.
- Issue linked to the correct project (if applicable).
- Issue linked to the correct milestone (if applicable).
- Draft pull request created and linked to this issue (only required with code changes).
Issue Dependencies
- 🚧Create twitter announcement script Infrastructure#27
- 🚧Create NuGet pkg check script Infrastructure#32
Related Work
No response
Additional Information:
Change Type Labels
| Change Type | Label |
|---|---|
| Bug Fixes | 🐛bug |
| Breaking Changes | 🧨breaking changes |
| New Feature | ✨new feature |
| CICD Changes | ♻️cicd |
| Code Doc Changes | 🗒️documentation/code |
| Product Doc Changes | 📝documentation/product |
Priority Type Labels
| Priority Type | Label |
|---|---|
| Low Priority | low priority |
| Medium Priority | medium priority |
| High Priority | high priority |
Code of Conduct
- I agree to follow this project's Code of Conduct.