woodpecker-ci / plugin-ready-release-go

Automatically creates release pull-request which when merged will trigger a release
MIT License
3 stars 2 forks source link

How to properly recreate a release #94

Open xoxys opened 6 months ago

xoxys commented 6 months ago

If something goes wrong with a release, it would be good to have a way to properly recreate it.

Just deleting the GH release and tag and recreate the tag manually does not fully work as e.g. the changelog is not getting recreated and the release notes of the new release is empty.

pat-s commented 6 months ago

Ref: release 1.2.0 in https://github.com/woodpecker-ci/helm

https://ci.woodpecker-ci.org/repos/8958/pipeline/719/4

When creating the tag manually, the RH doesn't find the intermediate commits:

# Loading config from /woodpecker/src/github.com/woodpecker-ci/helm/release-config.ts ...
# Loaded config from /woodpecker/src/github.com/woodpecker-ci/helm/release-config.ts
# CI detected 🤖
# Event type: push
# Commit message was: 🎉 Release 1.[2](https://ci.woodpecker-ci.org/repos/8958/pipeline/719/4#L2).0 (#161)
# Lastest tag is: 1.2.0
# Found 1 untagged commits
# No pull-request found for commit, skipping. [3](https://ci.woodpecker-ci.org/repos/8958/pipeline/719/4#L3)36ea5cf50d6a[4](https://ci.woodpecker-ci.org/repos/8958/pipeline/719/4#L4)2[5](https://ci.woodpecker-ci.org/repos/8958/pipeline/719/4#L5)38a5992d5be404ed288df397: "[skip ci] Update README.md"
# Next version will be: 1.2.0
# Release commit detected.
# Now releasing version: 1.2.0
# Creating release
# Successfully created release: https://github.com/woodpecker-ci/helm/releases/tag/1.2.0
# Successfully released version: 1.2.0
anbraten commented 6 months ago

Might be a tough one actually. In general I think best practice would be to restart pipelines and if necessary merge a new PR with a fix and just release the next patch version. Updating releases and tags often results in conflicts.

xoxys commented 6 months ago

I'm just curious (and have no deeper understanding how the plugin works), why is it hard to realize? If the old tag/release got deleted on the remote forge shouldn't the first step, get latest release => tag just detect the changes again and create the draft PR again?

anbraten commented 6 months ago

I guess it would probably, but the pugin needs to be executed by a pipeline running on your main branch again, so you probably need to push something.