Skip to content
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

Add release process #783

Merged
merged 3 commits into from
Jul 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions release-process.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Release Process

This document outlines the steps involved in the release process for the NGINX Prometheus Exporter.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
## Table of Contents

- [Versioning](#versioning)
- [Release Planning and Development](#release-planning-and-development)
- [Releasing a New Version](#releasing-a-new-version)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Versioning

The project follows [Semantic Versioning](https://semver.org/).

## Release Planning and Development

The features that will go into the next release are reflected in the
corresponding [milestone](https://github.com/nginxinc/nginx-prometheus-exporter/milestones). Refer to
the [Issue Lifecycle](/ISSUE_LIFECYCLE.md) document for information on issue creation and assignment to releases.

## Releasing a New Version

1. Create an issue to define and track release-related activities. Choose a title that follows the
format `Release X.Y.Z`.
2. Stop merging any new work into the main branch.
3. Check the release draft under the [GitHub releases](https://github.com/nginxinc/nginx-prometheus-exporter/releases) page
to ensure that everything is in order.
4. Create a PR to update the version in the `Makefile` and [README](README.md) to the new version, and any other necessary
changes.
5. Once the PR is merged, create a new release tag in the format `vX.Y.Z`:

```bash
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.Z
```

As a result, the CI/CD pipeline will:
- Build the Docker image and push it to the registries.
- Publish the release to Snapcraft, Homebrew, Scoop, and Nix.
- Create a GitHub release with the autogenerated changelog and artifacts attached.
- Announce the release in the community Slack.
Loading