Release Process

apimachinery

  • Make sure apimachinery master builds and create a release-* branch.
apimachinery (master) $ ./hack/make.py
Downloading:  https://raw.githubusercontent.com/appscode/libbuild/master/libbuild.py
Using existing version:  github.appscode.libbuild.libbuild
Ungrouping imports of dir: api
Ungrouping imports of dir: client
Ungrouping imports of dir: pkg
goimports -w api client pkg
gofmt -s -w api client pkg
go build ./pkg/... ./api/... ./client/...
apimachinery (master) $ git checkout release-0.1
Switched to branch 'release-0.1'
apimachinery (release-0.1) $ git merge master

postgres

  • Change the apimachinery dependency to release-* branch
  • Revendor glide slow
  • Make sure master branch compiles, commit any changes due to vendoring & push to origin master
  • Create a matching release-* branch
  • Apply a matching X.Y.Z tag
  • Push to origin release-* branch
  • Build and release docker image for pg operator.
  • Go back to master branch and change the dependency on apimachinery back to master branch.
postgres (master) $ glide slow
postgres (master) $ ./hack/make.py
postgres (master) $ git commit -a -m 'Vendor apimachinery release-0.1'
postgres (master) $ git push origin master

postgres (master) $ git checkout release-0.1
postgres (release-0.1) $ git merge master
postgres (release-0.1) $ git tag -fa 0.1.0
postgres (release-0.1) $ git push origin release-0.1 --tags
postgres (release-0.1) $ rm -rf dist
postgres (release-0.1) $ ./hack/docker/pg-operator/setup.sh; env APPSCODE_ENV=prod ./hack/docker/pg-operator/setup.sh release

postgres (release-0.1) $ git checkout master
postgres (master) $ git commit -a -m 'Start 0.2 development cycle'
postgres (master) $ git push origin master

elasticsearch

  • Change the apimachinery dependency to release-* branch
  • Revendor glide slow
  • Make sure master branch compiles, commit any changes due to vendoring & push to origin master
  • Create a matching release-* branch
  • Apply a matching X.Y.Z tag
  • Push to origin release-* branch
  • Build and release docker image for pg operator.
  • Go back to master branch and change the dependency on apimachinery back to master branch.
elasticsearch (master) $ glide slow
elasticsearch (master) $ ./hack/make.py
elasticsearch (master) $ git commit -a -m 'Vendor apimachinery release-0.1'
elasticsearch (master) $ git push origin master

elasticsearch (master) $ git checkout release-0.1
elasticsearch (release-0.1) $ git merge master
elasticsearch (release-0.1) $ git tag -fa 0.1.0
elasticsearch (release-0.1) $ git push origin release-0.1 --tags
elasticsearch (release-0.1) $ rm -rf dist
elasticsearch (release-0.1) $ ./hack/docker/es-operator/setup.sh; env APPSCODE_ENV=prod ./hack/docker/es-operator/setup.sh release

elasticsearch (release-0.1) $ git checkout master
elasticsearch (master) $ git commit -a -m 'Start 0.2 development cycle'
elasticsearch (master) $ git push origin master

operator

  • Change the apimachinery & specific db operator dependency to release-* branch
  • Revendor glide slow
  • Make sure master branch compiles, commit any changes due to vendoring & push to origin master
  • Create a matching release-* branch
  • Apply a matching X.Y.Z tag
  • Push to origin release-* branch
  • Build and release docker image for pg operator.
  • Go back to master branch and change the dependency on apimachinery & specific db operator dependency back to master branch.
operator (master) $ glide slow
operator (master) $ ./hack/make.py
operator (master) $ git commit -a -m 'Vendor apimachinery & db operator release-0.1'
operator (master) $ git push origin master

operator (master) $ git checkout release-0.1
operator (release-0.1) $ git merge master
operator (release-0.1) $ git tag -fa 0.1.0
operator (release-0.1) $ git push origin release-0.1 --tags
operator (release-0.1) $ rm -rf dist
operator (release-0.1) $ ./hack/docker/setup.sh; env APPSCODE_ENV=prod ./hack/docker/setup.sh release

operator (release-0.1) $ git checkout master
operator (master) $ git commit -a -m 'Start 0.2 development cycle'
operator (master) $ git push origin master

cli

  • Change the apimachinery dependency to release-* branch
  • Revendor glide slow
  • Make sure master branch compiles, commit any changes due to vendoring & push to origin master
  • Create a matching release-* branch
  • Apply a matching X.Y.Z tag
  • Push to origin release-* branch
  • Build and upload cli binaries to Github.
  • Go back to master branch and change the dependency on apimachinery back to master branch.
cli (master) $ glide slow
cli (master) $ ./hack/make.py
cli (master) $ git commit -a -m 'Vendor apimachinery release-0.1'
cli (master) $ git push origin master

cli (master) $ git checkout release-0.1
cli (release-0.1) $ git merge master
cli (release-0.1) $ git tag -fa 0.1.0
cli (release-0.1) $ git push origin release-0.1 --tags
cli (release-0.1) $ rm -rf dist
cli (release-0.1) $ env APPSCODE_ENV=prod ./hack/make.py build

cli (release-0.1) $ git checkout master
cli (master) $ git commit -a -m 'Start 0.2 development cycle'
cli (master) $ git push origin master

Subscribe to our free technical newsletter!

Join thousands of subscribers and stay up-to-date on AppsCode.