Skip to main content
Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

GitHub Releases in the VA

What is a release?

A release is the distribution of the final version of an application or product. Releases can be made before the end of an iteration and are often the culmination of several iterations. You can create a release to provide packaged software, release notes, and binary files for other people to use.

Release vs. pull request

Unlike a release, a pull request lets you tell others about changes you’ve pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch. Pull requests should be made early in the development process, sometimes after just one commit, so your work is visible to team members, managers, and stakeholders.

Release management and semantic versioning

Most teams at the VA will tag and name releases following semantic versioning. We have created a separate TL;DR for semantic versioning. Some teams, namely those publishing redacted files for public consumption, will not follow the semantic versioning naming system. If you’re not sure what naming system your team should follow, open an issue.

To learn more about release management, including editing and deleting releases, read managing releases in a repository.

Git flow diagram showing master branch, release branch, two feature branches, and release versions

Creating a release

The reading-time-demo example code has a GitHub release done the VA way: reading-time-demo/releases/tag/v1.1.0.

1. Start a VDD Checklist Issue

The VDD is now a checklist that explains the steps you need to complete to create a release:
configuration-management/issues/new/choose

2. Create a release

From your code repository, choose Code > Releases > Draft a new release

Here’s what a completed release looks like.

Release example

3. Complete a Release Readiness Checklist

From your Product repository, create a new RRC issue. This should be completed by your product team. It links to the release that you just created, and any required compliance artifacts or user stories.

Automated releases

Releases and their drafts can easily be automated to work towards an efficient CI/CD DevOps model (Continuous Integration/Continuous Deployment). Both the DOTS and GitHub team at the VA can assist with release automation.

DOTS CI tools DOTS CD tools GitHub CI/CD tools
Actions Jenkins Actions
CircleCI    
Jenkins    

Get started with automated releases


Return to Guides