Skip to content
Snippets Groups Projects
dev-releases.md 1.84 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Releases
    
    Making a dex release involves:
    
    * Tagging a git commit and pushing the tag to GitHub.
    
    
    From this, Quay will build and tag an image via a build trigger.
    
    This requires the following permissions.
    
    * Push access to the github.com/dexidp/dex git 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.
    
    ```
    
    git tag -s v2.0.0 ea4c04fde83bd6c48f4d43862c406deb4ea9dba2
    
    Push that tag to the Dex repo.
    
    git push git@github.com:dexidp/dex.git v2.0.0
    
    ```
    
    Draft releases on GitHub and summarize the changes since the last release. See
    previous releases for the expected format.
    
    
    https://github.com/dexidp/dex/releases
    
    ## 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
    
    git push git@github.com:dexidp/dex.git v2.1.x
    
    ## 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.