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 releases #1461

Open
nishkrishnan opened this issue Mar 17, 2021 · 5 comments
Open

Automate version releases #1461

nishkrishnan opened this issue Mar 17, 2021 · 5 comments
Assignees
Labels
build Relating to how we build Atlantis github-actions

Comments

@nishkrishnan
Copy link
Contributor

Large manual process to release a new Atlantis version, let's automate this away.

@nishkrishnan nishkrishnan added the build Relating to how we build Atlantis label Mar 17, 2021
@spirosoik
Copy link
Contributor

I can get this and come up with a Goreleaser implementation with Github Actions. Let me know guys

@nitrocode
Copy link
Member

I like this idea a lot. Currently all the releases are manual.

Future workflow

  1. new pr approved and merged
  2. if changes to the golang, continue
  3. goreleaser drafts a prerelease of the next version
  4. kick off new image which gets tagged with our naming convention + prerelease-latest tag
  5. next pr comes in and we repeat from step 1

Eventually when we're ready to do a real release, we can do a manual release.

The benefit of this approach is that we get per PR releases and still gate the main release until we feel that it has been vetted by a number of folks.

@krrrr38
Copy link
Contributor

krrrr38 commented Dec 10, 2022

jfyi. I just recommend to use https://github.com/Songmu/tagpr. It make release more open.

What support

  • tagpr
    • tag manage by draft PR for release
    • create changelog by .github/release.yml
    • automatically version increment
      • tag.prVersionFile supports any files such as main.go, kustomize/bundle.yaml and so on.
  • goreleaser
    • create assets

Flow

  • Contributors create feature PR and merge it into main branch
  • tagpr generates a next release PR if not exist.
    • such as Release for v0.22.0
    • in this PR, edit versions such as main.go automatically example
  • Owners manage the PR to change next version by changing PR labels
  • When owners want to release, just merge it. No need to edit files.
    • When merging it, create a new tag.
    • Then run next .github/actions/release.yaml by the new tag.

@nitrocode
Copy link
Member

How does tagpr compare with goreleaser? Seems like goreleaser has a lot more community support.

@krrrr38
Copy link
Contributor

krrrr38 commented Dec 11, 2022

Basically, tagpr cannot replace goreleaser. tagpr just create release PR with managed sem-ver, add commit to change version diff, and create a tag. That's all.
To create release assets such as binary and docker image, we still need goreleaser. For example after creating tag by merge tagpr PR, github action kick goreleaser action like .github/actions/release.yaml.

Seems like goreleaser has a lot more community support.

You are right, tagpr has not enough stars and don't have a community yet. So this is not a good point. But I think atlantis release manual operations are possible to replace by tagpr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Relating to how we build Atlantis github-actions
Projects
None yet
Development

No branches or pull requests

5 participants