-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automate release process #296
Comments
Are there any tools you'd recommend for this? (i.e. bash, python, or makefile) |
Python package related automationI would suggest that building and pushing the packages are automated via GitHub workflow jobs like in this github Workflow if a tag is pushed, and that a tag should only be pushed if one has updated the version in _version.py manually first for both packages. Docker image and and helm chart related automationI suggest this is automated via a github workflow either by a mix of using scaffold and chartpress or solely by using chartpress. I'm very experienced in using chartpress but very inexperienced in using skaffold. I think though that its probably best to let a single GitHub Workflow with one or more coupled jobs (via |
Currently the release process is manual, and has several error-prone steps. It would be good to automate much of this, both for ease of maintenance and to prevent mistakes. The artifacts from a release are:
dask-gateway
anddask-gateway-server
packages on pypi and conda-forgedaskgateway/dask-gateway
anddaskgateway/dask-gateway-server
images on docker hubReleasing the packages
Update the versions for both
dask-gateway
anddask-gateway-server
. These are currently stored in_version.py
files in each package.Commit and tag the release
dask-gateway
as ansdist
and abdist_wheel
, and upload to pypi:dask-gateway-server
as ansdist
and abdist_wheel
, and upload to pypi. Since this package has a binary component, this is a bit more involved:Releasing the helm chart and docker images
dask-gateway
anddask-gateway-server
docker images and upload to docker hub. If it's been a bit between releases and miniconda has updated a lot, we may also need to build thedask-gateway-base
image that's shared between those, updating miniconda to a newer release (that dockerfile lives here). Generally when releasing I also bump the dependencies in the provided docker images to the latest stable version. We advise users to build their owndask-gateway
images (since those run user code), but thedask-gateway-server
image should work for all users and should be thoroughly tested. There's almost certainly a better system than this.Update the helm chart with the new version info. We need to bump the
version
andapiVersion
fields in theChart.yaml
, and update the image versions for thedask-gateway
anddask-gateway-server
images in thevalues.yaml
file.Package the helm chart and push it to helm chart repo. I've been doing this manually, which isn't terrible, but has a few steps. Chartpress does this automatically, but I scripting our own process wouldn't be to hard either, and we don't need all of chartpress's functionality. The general process is:
The text was updated successfully, but these errors were encountered: