Release Instructions - adesutherland/vm-370 GitHub Wiki

Branches

  • master - Main Branch - only the release manager should merge into it after checking quality
  • develop - Main development branch. Trivial changes done here, or squash commits from a feature branch
  • feature/fnnnn - Feature Branches - where development happens

Release Types and Tags

  • Full e.g. v1.4.5 (also docker tagged latest - current release)
  • Test e.g. v1.4.5.test (also docker tagged test - current test release)
  • Builder e.g. v1.4.5.builder (also docker tagged builder - current build release). For using GCCLIB for downstream builds.

History

Release history should be added to file changelog.txt as well as to the Release History Wiki Page

Pull Requests (GitHub)

TBC - Currently we do not use pull requests (but we should)

Dev Workflow

0. Prelude

git fetch
git status

1. Create a feature branch

git checkout develop
git checkout -b feature/f000n

2. Changes / debugging

git fetch
git status
git add *
git commit -m "blah blah"

REPEAT :-)

3. Tested and ready to get it into develop as one simple commit

git checkout develop
git merge --squash feature/f00xx
git commit -m "f00xx"
git push

4. Delete Unwanted feature branch (i.e. AFTER merge to develop)

git branch -d feature/f00xx
git push origin --delete feature/f00xx

5. Tag a pre-release (will cause a release build draft in github)

git tag f000n
git push origin f000n

6. Delete Tag

git tag -d f00xx
git push --delete origin f00xx

7. Merge into master

git checkout master
git merge develop
git push

8. Tag to create a release (this also creates an image in DockerHub)

git tag v1.x.y
git push origin v1.x.y

Publish the created draft release in the GitHub web console, and tag image in DockerHub (see next).

9. Docker Tagging (builder, test and latest)

docker pull adriansutherland/vm370:1.x.y
docker tag adriansutherland/vm370:1.x.y adriansutherland/vm370:builder
docker push adriansutherland/vm370:builder

10. Upload Image to Google Cloud

GCLOUD SDK needs to be installed, then linked to Docker Desktop:

gcloud auth configure-docker

Then you can push image to Google

docker tag adriansutherland/vm370:test gcr.io/utility-ridge-243715/vm370:test
docker push gcr.io/utility-ridge-243715/vm370:test