...
- Build new docker images from PR branch
- API: docker build -t ndslabs/apiserver:NDS-123 . && docker push ndslabs/apiserver:NDS-123
- GUI: ./build.sh -c && ./release.sh NDS-123 -t Tag / push new image to DockerHub (issue tag: push, latest: don't push)
- Mark ticket as "In Review" and assign to tester
New
...
Unstable "Latest" Release
Prerequisites:
- Any related PRs have been merged to master
- Ensure that smoke test passes
- Ensure documentation in Confluence is up-to-date
- Checkout your master branch
- git checkout master
- Sync with upstream
- git pull upstream master
- git push origin master
- Update ALL documentation in GitHub
Process:
- Build new docker images from master branch
- API: docker build -t ndslabs/apiserver . && docker push ndslabs/apiserver:latest
- GUI: ./build.sh -c && ./release.sh
- Tag / push new image to DockerHub (version tag: don't push, latest: push)
- Commit and push new build version / date(s) to upstream master on GitHub
...
- New "latest" Docker images are automatically built from the upstream master branch on GitHub.
- All new changes that make it into master on GitHub will automatically trigger a build on DockerHub
- For example: https://hub.docker.com/r/ndslabs/apiserver/builds/
Official Tagged Version Release (Stable)
Prerequisites:
- Ensure that all tests pass
- Ensure documentation in Confluence is up-to-date
- Checkout your master branch
- git checkout master
- Sync with upstream
- git pull upstream master
- git push origin master
- Update ALL documentation in GitHub
Process:
- Regenerate Swagger API / Client from spec (if the spec has changed)
- apiserver/???: generated Go swagger server
- gui/js/app/shared/api.js: generated AngularJS swagger client
- Create a new tag from master in GtiHub for the new version (i.e. 1.0.0, 1.0.1, etc)
- New versioned Docker images are automatically built from the upstream tags created on GitHub.
- All new tags that are created will trigger a build.
- For example: https://hub.docker.com/r/ndslabs/apiserver/builds/
- Roll forward version numbers in source
...
- and ensure that all values match on upstream master on GitHub:
- Swagger API
- apis/swagger-spec/ndslabs.yaml: NDS Labs swagger API spec version number
- API Server:
- apiserver/build.sh: NDS Labs API Server Docker image version tag
- apiserver/version.go: NDS Labs API / Server version number
- CLI Client:
- apictl/build.sh: NDS Labs CLI version number
- apictl/cmd/clientVersion.go: NDS Labs CLI / API version number
- UI Client:
- gui/Dockerfile.ndslabs-gui: NDS Labs UI / webserver Docker image version tag
- gui/js/package.json: NDS Labs UI / webserver NPM package version number
- gui/js/bower.json: NDS Labs UI Angular app Bower package version number
- gui/js/app/app.js: NDS Labs UI Angular app build version number
- Swagger API
...
- apiserver/???: generated Go swagger server
- gui/js/app/shared/api.js: generated AngularJS swagger client
...
- API: ./build.sh build && ./build.sh release
- GUI: ./build.sh -c && ./release.sh version-number
...
Repositories to Tag (in order)
...