Skip to content

🚧Create preview release workflow #215

@CalvinWilkinson

Description

@CalvinWilkinson

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:

  1. Make sure the entire workflow uses powershell as the default shell
  2. The version will be validated that it is a preview version
  3. The branch to validate will be validating that the head branch is a preview branch
    • This uses the BranchValidator GitHub action
  4. 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.
prev-workflow-dep-graph

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

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.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions