mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-24 19:30:06 +01:00
b9231c715a
The automated push of release tags to Github require specifying the remote repository name when doing `git push <remote-repo-name> v1.xx.y`. The remote repository name can differ in different environments, so it cannot be put into Makefile rule. TODO: create a Makefile rule, which generates standard remote names for public and private repositories in Git, so `git push` for release tags could be automated then.
8.2 KiB
8.2 KiB
sort |
---|
18 |
Release process guidance
Prereqs
- Make sure you have enterprise remote configured
git remote add enterprise <url>
- Make sure you have singing key configured
- Make sure you have github token with at least
read:org, repo, write:packages
permissions exported underGITHUB_TOKEN
env variable. You can create token here
Release version and Docker images
- Make sure that the release commits have no security issues.
1a. Document all the changes for new release in CHANGELOG.md.
1b. Add
(available starting from v1.xx.y)
line to feature docs introduced in the upcoming release. - Create the following release tags:
git tag -s v1.xx.y
inmaster
branchgit tag -s v1.xx.y-cluster
incluster
branchgit tag -s v1.xx.y-enterprise
inenterprise
branchgit tag -s v1.xx.y-enterprise-cluster
inenterprise-cluster
branch
- Run
TAG=v1.xx.y make publish-release
. This command performs the following tasks: a) Build and package binaries in*.tar.gz
release archives with the corresponding_checksums.txt
files insidebin
directory. This step can be run manually with the commandmake release
from the needed git tag. b) Build and publish multi-platform Docker images for the givenTAG
,TAG-cluster
,TAG-enterprise
andTAG-enterprise-cluster
. The multi-platform Docker image is built for the following platforms:- linux/amd64
- linux/arm64
- linux/arm
- linux/ppc64le
- linux/386
This step can be run manually with the command
make publish
from the needed git tag.
- Push the tags created
v1.xx.y
andv1.xx.y-cluster
at step 2 to public GitHub repository at https://github.com/VictoriaMetrics/VictoriaMetrics . Important note: do not push enteprise tags to public GitHub repository - they must be pushed only to private repository. - Run
TAG=v1.xx.yy make github-create-release github-upload-assets
. This command performs the following tasks: a) Create draft GitHub release with the nameTAG
. This step can be run manually with the commandTAG=v1.xx.y make github-create-release
. The release id is stored at/tmp/vm-github-release
file. b) Upload all the binaries and checksums created at step3a
to that release. This step can be run manually with the commandmake github-upload-assets
. It is expected that the needed release id is stored at/tmp/vm-github-release
file, which must be created at the stepa
. If the upload process is interrupted by any reason, then the following recovery steps must be performed:- To delete the created draft release by running the command
make github-delete-release
. This command expects that the id of the release to delete is located at/tmp/vm-github-release
file created at the stepa
. - To run the command
TAG=v1.xx.y make github-create-release github-upload-assets
, so new release is created and all the needed assets are re-uploaded to it.
- To delete the created draft release by running the command
- Go to https://github.com/VictoriaMetrics/VictoriaMetrics/releases and verify that draft release with the name
TAG
has been created and this release contains all the needed binaries and checksums. - Update the release description with the CHANGELOG for this release.
- Remove the
draft
checkbox for theTAG
release and manually publish it. - Bump version of the VictoriaMetrics cluster in the sandbox environment by opening and merging PR.
Building snap package
pre-requirements:
- snapcraft binary, can be installed with commands:
for MacOS
brew install snapcraft
and install mutipass, for Ubuntu -sudo snap install snapcraft --classic
- exported snapcraft login to
~/.snap/login.json
withsnapcraft export-login login.json && mkdir -p ~/.snap && mv login.json ~/.snap/
- already created release at github (it operates
git describe
version, so git tag must be annotated).
- checkout to the latest git tag for single-node version.
- execute
make release-snap
- it must build and upload snap package. - promote release to current, if needed manually at release page snapcraft-releases
Public Announcement
- Publish message in Slack at https://victoriametrics.slack.com
- Post at Twitter at https://twitter.com/MetricsVictoria
- Post in Reddit at https://www.reddit.com/r/VictoriaMetrics/
- Post in Linkedin at https://www.linkedin.com/company/victoriametrics/
- Publish message in Telegram at https://t.me/VictoriaMetrics_en and https://t.me/VictoriaMetrics_ru1
- Publish message in google groups at https://groups.google.com/forum/#!forum/victorametrics-users
Helm Charts
The helm chart repository https://github.com/VictoriaMetrics/helm-charts/
Bump the version of images
- Update
vmagent
chart version invalues.yaml
andChart.yaml
- Update
vmalert
chart version invalues.yaml
andChart.yaml
- Update
vmauth
chart version invalues.yaml
andChart.yaml
- Update
cluster
chart versions invalues.yaml
, bump version forvmselect
,vminsert
andvmstorage
andChart.yaml
- Update
k8s-stack
chart versions invalues.yaml
, bump version forvmselect
,vminsert
,vmstorage
,vmsingle
,vmalert
,vmagent
andChart.yaml
- Update
single-node
chart version invalues.yaml
andChart.yaml
- Run
make gen-doc
- Run
make package
that creates or updates zip file with the packed chart - Run
make merge
. It creates or updates metadata for charts in index.yaml - Push changes to master.
master
is a source of truth - Push the changes to
gh-pages
branch
Ansible Roles
Bump the version of images
Repository https://github.com/VictoriaMetrics/ansible-playbooks