2016-10-06 06:53:15 +05:30
# Releases
Making a dex release involves:
* Tagging a git commit and pushing the tag to GitHub.
* Building and pushing a Docker image.
This requires the following tools.
* Docker
And the following permissions.
2018-09-03 12:14:44 +05:30
* Push access to the github.com/dexidp/dex git repo.
2016-10-06 06:53:15 +05:30
* Push access to the quay.io/coreos/dex Docker repo.
## Tagging the release
Make sure you've [uploaded your GPG key ](https://github.com/settings/keys ) and
configured git to [use that signing key](
https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) either globally or
for the Dex repo. Note that the email the key is issued for must be the email
you use for git.
```
git config [--global] user.signingkey "{{ GPG key ID }}"
git config [--global] user.email "{{ Email associated with key }}"
```
Create a signed tag at the commit you wish to release. This action will prompt
you to enter a tag message, which can just be the release version.
```
2017-01-18 00:58:03 +05:30
git tag -s v2.0.0 ea4c04fde83bd6c48f4d43862c406deb4ea9dba2
2016-10-06 06:53:15 +05:30
```
Push that tag to the CoreOS repo.
```
2018-09-03 12:14:44 +05:30
git push git@github.com:dexidp/dex.git v2.0.0
2016-10-06 06:53:15 +05:30
```
Draft releases on GitHub and summarize the changes since the last release. See
previous releases for the expected format.
2018-09-03 12:14:44 +05:30
https://github.com/dexidp/dex/releases
2016-10-06 06:53:15 +05:30
2016-12-13 04:59:00 +05:30
## Minor releases - create a branch
If the release is a minor release (2.1.0, 2.2.0, etc.) create a branch for future patch releases.
```bash
git checkout -b v2.1.x tags/v2.1.0
2018-09-03 12:14:44 +05:30
git push git@github.com:dexidp/dex.git v2.1.x
2016-12-13 04:59:00 +05:30
```
2017-01-18 00:58:03 +05:30
## Patch releases - cherry pick required commits
If the release is a patch release (2.0.1, 2.0.2, etc.) checkout the desired release branch and cherry pick specific commits. A patch release is only meant for urgent bug or security fixes.
```bash
RELEASE_BRANCH="v2.0.x"
git checkout $RELEASE_BRANCH
git checkout -b "cherry-picked-change"
git cherry-pick (SHA of change)
git push origin "cherry-picked-change"
```
Open a PR onto $RELEASE_BRANCH to get the changes approved.
2016-10-06 06:53:15 +05:30
## Building the Docker image
Build the Docker image and push to Quay.
```bash
# checkout the tag
2017-01-18 00:58:03 +05:30
git checkout tags/v2.1.0
2016-10-06 06:53:15 +05:30
# will prompt for sudo password
make docker-image
2017-01-18 00:58:03 +05:30
sudo docker push quay.io/coreos/dex:v2.1.0
2016-10-06 06:53:15 +05:30
```