Skip to content

Commit

Permalink
docs: create runbook to backport changes to older versions (#330)
Browse files Browse the repository at this point in the history
This PR contains runbook with backporting changes to older versions.

---------

Co-authored-by: Artem Rys <[email protected]>
Co-authored-by: Marcin Bruzda <[email protected]>
  • Loading branch information
3 people authored Sep 9, 2024
1 parent 1551fcc commit 3958686
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions runbooks/backporting-changes-to-older-version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Runbook to backport changes to previous versions of `addonfactory-workflow-addon-release`
`addonfactory-workflow-addon-release` is utilized by all supported TAs. While it is strongly recommended to use the latest minor version of the reusable action, not all TAs consistently follow this guideline. As a result, there are cases when crucial updates introduced in the latest reusable workflow version need to be backported to its older versions that are still in use.

This runbook shows a real example of backporting changes correlated to `ta-automation-k8s-manifests`. In the example:
- current version of `addonfactory-workflow-addon-release` is `v4.17.0`
- there was a bug in `ta-automation-k8s-manifests` affecting all TAs
- there is a need to make a fix and release `v4.17.1` containing fixed `ta-automation-k8s-manifests` version ([PR](https://github.com/splunk/addonfactory-workflow-addon-release/pull/329))
- there is need to backport it to `v4.16` (the old version which is still in use by some TAs)
- the latest patch release of `v4.16` is `v4.16.14`
### Steps
- make release `v4.17.1` with necessary changes
- fetch all existing tags from `addonfactory-workflow-addon-release`:
```
git checkout main
git pull
git fetch --tags
```
- checkout to the latest tag of the minor release you want to backport the changes to
```
git checkout v4.16.14
```
- create a new branch based on the tag you are currently checked out to
```
git checkout -b fix/bump-k8s-manifest-version
```
- changes made in `ta-automation-k8s-manifests` were correlated with changes in `addonfactory-workflow-addon-release`, so there is a need to backport **only necessary** changes to `v4.16`. There are two ways to do that: by cherrypicking specific commits (and resolving the conflicts if they exist) or by commiting necessary changes manually.
- for example make necessary changes and commit them:
```
git add .github/workflows/reusable-build-test-release.yml
git commit -m "fix: bump k8s-manifest version"
```
- push newly created branch to the remote repository
- ```git push -u origin fix/bump-k8s-manifest-version```
- in GitHub UI:
- navigate to releases
- draft a new release
- `Choose a tag`: type the tag that will be created, i.e. `v4.16.15`
- `Target` - newly created branch `fix/bump-k8s-manifest-version`
- click on `Generate release notes`
- `Title of release` should be `v4.16.15 backport`
- write description of the changes
- uncheck `Set as the latest release` box
- click `Publish release`
- check if the release is available, and it points at the proper version - https://github.com/splunk/addonfactory-workflow-addon-release/tags tag `v4.16` should point to the same commit as tag `v4.16.15`
<img src="images/backporting/compare-tags.png" alt="tags"/>
- run the workflow for some TA using v4.16 to verify if the pipeline works as expected.
Binary file added runbooks/images/backporting/compare-tags.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3958686

Please sign in to comment.