open-telemetry / opentelemetry-collector-releases

OpenTelemetry Collector Official Releases
https://opentelemetry.io
Apache License 2.0
253 stars 162 forks source link

[chore] add update version automation workflow for artifacts release #684

Open jackgopack4 opened 1 month ago

jackgopack4 commented 1 month ago

Add quality-of-life enhancement to automate bumping version number in the Makefile as well as the various distribution manifests (as the number of distros grows, this step will become more of a pain).

Feel free to run in your own fork to verify; also see the successful run in my fork: https://github.com/jackgopack4/opentelemetry-collector-releases/actions/runs/11297355358 As well as the generated PR in my fork: https://github.com/jackgopack4/opentelemetry-collector-releases/pull/19

This is obviously not required to be used, but since I have already updated the documentation in core repo for release: https://github.com/open-telemetry/opentelemetry-collector/pull/11234, I split this file out of the ocb docker release PR (https://github.com/open-telemetry/opentelemetry-collector-releases/pull/671) to make this easier to merge in prior to v0.111.0 release

EDIT: I have added stable and beta version update capability. One of either 'stable' or 'beta' arguments are needed, and if a 'next' stable/beta version is not provided, then minor version will be bumped by default (e.g. v0.110.0 -> v0.111.0).

This can be overridden by providing a manual version number update (like v0.110.0 -> v0.110.1, as in my sample run)

jackgopack4 commented 1 month ago

I 💯 agree that bumping the version should be a simple, single step. This change implements this as a series of steps in GitHub Actions, which makes it not usable if you want to run it outside of GitHub Actions. I'd rather see a shell script written that does the version updates, and that script called as a single step in GitHub Actions. Committing changes should be separate from the script, so that anyone can run the script locally and preview the changes before making it a commit.

Would be happy to do it this way, just was modeling it after the existing action script in collector core: https://github.com/open-telemetry/opentelemetry-collector/blob/main/.github/workflows/prepare-release.yml

(EDIT: just realized that only uses github actions to take in the variables and passes them to a Bash script; will make similar changes)

Note that there are (to my knowledge) three potentially different versions that need to be bumped in the manifests, as described here:

  • stable components all use the stable version - currently v1.15.0
  • unstable components from core repository use the core's version - currently v0.109.0
  • unstable components from contrib repository use the contrib's version - currently v0.109.0

Got it, will add stable and beta component update

jackgopack4 commented 1 month ago

@andrzej-stencel made the changes you requested; runs in one bash script that can be ran locally in addition to in github actions and adds stable/beta functionality