Skip to content

[Documentation] Release and Deployment Strategy #79

Description

@TanmoySG

A Release and Deploy Strategy is an essential part of Software Delivery Workflow. Not all Commits need to make it to deployment or release. A versioning system is also a cornerstone of this workflow. Hence a strategic approach is required to keep commits and deployment workflows separate. Currently, on a commit to the deploy branch triggers the deployment to Azure which is fine till a separate feature branch exists, but maintaining separate feature branches get tougher with project growing, hence thus Workflow too needs to be triggered only by specific actions like a version tagging or release.

There are three deployments that are to be put into this strategy -

  • Automated GitHub Releases on Git Version Tagging
  • Automated Dockerization and Deployment to GitHub Packages for Containers
  • Deployment to Azure (this will be deprecated/torndown Soon)

[Checkpoints]

  • Plan out a deployment strategy
  • Integrate GitHub Release, Publishing Docker Container to GitHub Package Registry
  • Integrate Azure Deployment - Replace Existing Workflow
  • Create Workflows using GitHub Actions
  • Test Strategies - Compare and Decide
  • Publish v0.1.0-alpha , First Release with the Workflow.

[Issues]

[JFYI]

Versioning

A proper versioning system that should be used in this project is

Major.Minor.Patch-target

In the Above

  • Major - Major Feature Additions, Breaking API Changes and other Major Changes that can effect the dependant systems.
  • Minor - Minor Feature Additions, Backward Compatible, Usage Experience Enhancements and Minor Changes.
  • Patch - Bug Fixes, Backward Compatible and Enhancement Fixes and Changes.
  • target - Build Targets (OS Specific/OS Version Specific/Architecture Specific Targets) or pre-releases (beta/alpha) or audience/user Targets (general/Pro/internal/etc.)

Refer to semver.org or versioning section in notes

Adopted Strategy

Strategy B, triggers builds/workflows only if the version tagged and committed is a Major or Minor Update as well as Patch updates - so that both Feature-Ready/Feature-full releases and Bug Fixes are published to the artefacts.

On the other hand this strategy may also lead to frequent adoption changes on the user end.

Strategy B

Deployment Strategy-Strategy B (1)

Metadata

Metadata

Assignees

Labels

architecture | designArchitectural and System Design Exploration and Planning for the SystemdeploymentDeployment ActivitiesdocumentationImprovements or additions to documentation

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions