-
Notifications
You must be signed in to change notification settings - Fork 5
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
docs: create runbook to backport changes to older versions #330
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
d9d727b
docs: create runbook to backport changes to olderversions
kdoroszko-splunk 605db73
chore: rescale the picture
kdoroszko-splunk 587dbf9
chore: minor changes
kdoroszko-splunk 30276a3
chore: add quotation marks
kdoroszko-splunk 5f9f6ec
chore: replace v.4 with v4
kdoroszko-splunk 8249846
chore: move runbook picture
kdoroszko-splunk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love the real example!