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

Automate Version Tagging Process to trigger the release #58

Open
serdardalgic opened this issue Nov 15, 2022 · 5 comments
Open

Automate Version Tagging Process to trigger the release #58

serdardalgic opened this issue Nov 15, 2022 · 5 comments
Labels
enhancement New feature or request github_actions Pull requests that update GitHub Actions code question Further information is requested

Comments

@serdardalgic
Copy link
Contributor

Our release process right now is semi-automated:

  • Someone with the correct rights creates a v<semantic_version> tag. This part is manual.
  • This triggers the release workflow.
  • Release workflow creates the release by running go-releaser so that we have executables for different OS and architecture types. (See Releases)

We need to automate the version tagging part. Current options are:

  • We could have a process to automate the Changelog creation, as we're enforcing the conventional-commits. This would give us the flexibility of releasing whenever we prefer to release.
  • Another option could be implementing the Semantic Releasing process. Semantic releasing advocates for releasing on every push to the main. We need to decide if that's what we want.
@serdardalgic serdardalgic added enhancement New feature or request github_actions Pull requests that update GitHub Actions code question Further information is requested labels Nov 15, 2022
@serdardalgic
Copy link
Contributor Author

There is a repository https://github.com/loopwerk/tag-changelog that automatically generates a changelog since the last tag, using the conventional commit format. Might be useful if we don't choose the Semantic Releasing Process.

@nstott
Copy link
Contributor

nstott commented Nov 16, 2022

Just to make sure that I understand properly. Is your primary question whether we want to
a. build automation that will perform tasks such as creating a change log, publishing documentation, etc. and leave the creation of the version tag manu
or
b. build automation that will automate the tagging of the repo on a push to main, and then perform the automatic tasks above?

How to other terraform providers operate? If you look through a random selection of providers, how do they manage this process? I would prefer not to re-invent the wheel, and use the same approach that other providers take.

@serdardalgic
Copy link
Contributor Author

Btw, I came across this Versioning and Changelog best practices document in terraform documentation.

Yeah, sorry, I wasn't so clear in the description. I think we should have

  • An automated way of generating a Changelog
  • An automated way of tagging a commit with a release version and adding this Changelog as the tag message.

The second one is trivial when we have a correct Changelog generation system in place. Tagging can also be done manually, I don't have a strong opinion on that.

@serdardalgic
Copy link
Contributor Author

I will check the Versioning and Changelog document and try to come up with a PR tomorrow.

@serdardalgic
Copy link
Contributor Author

Oh, I've also found this repository, it might come in handy.

https://github.com/hashicorp/ghaction-terraform-provider-release

Reusable GitHub Action Workflows for releasing HashiCorp, partner, and community Terraform Providers. These workflows can be called directly or used as examples for implementing a custom workflow.

If you are using the terraform-provider-scaffolding template repository, the .github/workflow/release.yml file will require modifications from the original template files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request github_actions Pull requests that update GitHub Actions code question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants