Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 2.22 KB

RELEASE.md

File metadata and controls

90 lines (63 loc) · 2.22 KB

Release procedure

This document describes how to release a new version of cke.

Versioning

Given a version number MAJOR.MINOR.PATCH. The MAJOR and MINOR version matches that of Kubernetes. The patch version is increased with CKE update.

Prepare change log entries

Add notable changes since the last release to CHANGELOG.md. It should look like:

(snip)
## [Unreleased]

### Added
- Implement ... (#35)

### Changed
- Fix a bug in ... (#33)

### Removed
- Deprecated `-option` is removed ... (#39)

(snip)

Bump version

  1. Determine a new version number. Then set VERSION variable.

    # Set VERSION and confirm it. It should not have "v" prefix.
    $ VERSION=x.y.z
    $ echo $VERSION
  2. Make a branch to release

    $ git checkout main
    $ git pull
    $ git checkout -b "bump-$VERSION"
  3. Update version.go.

  4. Edit CHANGELOG.md for the new version (example).

  5. Commit the change and create a pull request.

    $ git commit -a -m "Bump version to $VERSION"
    $ git push -u origin HEAD
    $ gh pr create -f
  6. When updating to x.y.0 or its RC, run Sonobuoy test manually and make sure that it has been passed.

  7. Merge the pull request.

  8. Add a git tag to the main HEAD, then push it.

    # Set VERSION again.
    $ VERSION=x.y.z
    $ echo $VERSION
    
    $ git checkout main
    $ git pull
    $ git tag -a -m "Release v$VERSION" "v$VERSION"
    
    # Make sure the release tag exists.
    $ git tag -ln | grep $VERSION
    
    $ git push origin "v$VERSION"

Then GitHub Actions automatically builds and pushes the tagged container image to ghcr.io.

GitHub Actions also creates a GitHub release automatically after running sonobuoy tests. So, DO NOT MANUALLY CREATE GITHUB RELEASES. The test results will be attached to the GitHub release that can be submitted to cncf/k8s-conformance.

Maintain docker compose

After new CKE released, update cke image on docker-compose.yml.