mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-02-11 04:07:05 +00:00
Compare commits
3 commits
1f39df03c5
...
44184a77f9
| Author | SHA1 | Date | |
|---|---|---|---|
| 44184a77f9 | |||
| 971b6e6ef7 | |||
| 693ca21e32 |
3 changed files with 43 additions and 30 deletions
|
|
@ -1,7 +1,6 @@
|
||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
|
|
@ -24,7 +23,6 @@ func version() string {
|
||||||
|
|
||||||
buildInfo, ok := debug.ReadBuildInfo()
|
buildInfo, ok := debug.ReadBuildInfo()
|
||||||
if ok {
|
if ok {
|
||||||
fmt.Println(buildInfo.String())
|
|
||||||
for _, setting := range buildInfo.Settings {
|
for _, setting := range buildInfo.Settings {
|
||||||
switch setting.Key {
|
switch setting.Key {
|
||||||
case "vcs.revision":
|
case "vcs.revision":
|
||||||
|
|
|
||||||
12
releasepr.go
12
releasepr.go
|
|
@ -61,7 +61,6 @@ func NewReleasePullRequest(head, branch, version, changelogEntry string) (*Relea
|
||||||
type ReleaseOverrides struct {
|
type ReleaseOverrides struct {
|
||||||
Prefix string
|
Prefix string
|
||||||
Suffix string
|
Suffix string
|
||||||
// TODO: Doing the changelog for normal releases after previews requires to know about this while fetching the commits
|
|
||||||
NextVersionType NextVersionType
|
NextVersionType NextVersionType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -92,6 +91,17 @@ func (n NextVersionType) String() string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (n NextVersionType) IsPrerelease() bool {
|
||||||
|
switch n {
|
||||||
|
case NextVersionTypeRC, NextVersionTypeBeta, NextVersionTypeAlpha:
|
||||||
|
return true
|
||||||
|
case NextVersionTypeUndefined, NextVersionTypeNormal:
|
||||||
|
return false
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Label is the string identifier of a pull/merge request label on the forge.
|
// Label is the string identifier of a pull/merge request label on the forge.
|
||||||
type Label string
|
type Label string
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,27 @@ func (rp *ReleaserPleaser) createPendingRelease(ctx context.Context, pr *Release
|
||||||
func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
||||||
logger := rp.logger.With("method", "runReconcileReleasePR")
|
logger := rp.logger.With("method", "runReconcileReleasePR")
|
||||||
|
|
||||||
|
rpBranch := fmt.Sprintf(PullRequestBranchFormat, rp.targetBranch)
|
||||||
|
rpBranchRef := plumbing.NewBranchReferenceName(rpBranch)
|
||||||
|
|
||||||
|
pr, err := rp.forge.PullRequestForBranch(ctx, rpBranch)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var releaseOverrides ReleaseOverrides
|
||||||
|
|
||||||
|
if pr != nil {
|
||||||
|
logger = logger.With("pr.id", pr.ID, "pr.title", pr.Title)
|
||||||
|
logger.InfoContext(ctx, "found existing release pull request")
|
||||||
|
|
||||||
|
releaseOverrides, err = pr.GetOverrides()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
releases, err := rp.forge.LatestTags(ctx)
|
releases, err := rp.forge.LatestTags(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -157,7 +178,15 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
||||||
logger.InfoContext(ctx, "no latest tag found")
|
logger.InfoContext(ctx, "no latest tag found")
|
||||||
}
|
}
|
||||||
|
|
||||||
releasableCommits, err := rp.forge.CommitsSince(ctx, releases.Stable)
|
// By default, we want to show everything that has happened since the last stable release
|
||||||
|
lastReleaseCommit := releases.Stable
|
||||||
|
if releaseOverrides.NextVersionType.IsPrerelease() {
|
||||||
|
// if the new release will be a prerelease,
|
||||||
|
// only show changes since the latest release (stable or prerelease)
|
||||||
|
lastReleaseCommit = releases.Latest
|
||||||
|
}
|
||||||
|
|
||||||
|
releasableCommits, err := rp.forge.CommitsSince(ctx, lastReleaseCommit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -172,22 +201,6 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
||||||
|
|
||||||
logger.InfoContext(ctx, "Analyzed commits", "length", len(analyzedCommits))
|
logger.InfoContext(ctx, "Analyzed commits", "length", len(analyzedCommits))
|
||||||
|
|
||||||
rpBranch := fmt.Sprintf(PullRequestBranchFormat, rp.targetBranch)
|
|
||||||
rpBranchRef := plumbing.NewBranchReferenceName(rpBranch)
|
|
||||||
// Check Forge for open PR
|
|
||||||
// Get any modifications from open PR
|
|
||||||
// Clone Repo
|
|
||||||
// Run Updaters + Changelog
|
|
||||||
// Upsert PR
|
|
||||||
pr, err := rp.forge.PullRequestForBranch(ctx, rpBranch)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if pr != nil {
|
|
||||||
logger.InfoContext(ctx, "found existing release pull request", "pr.id", pr.ID, "pr.title", pr.Title)
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(analyzedCommits) == 0 {
|
if len(analyzedCommits) == 0 {
|
||||||
if pr != nil {
|
if pr != nil {
|
||||||
logger.InfoContext(ctx, "closing existing pull requests, no commits available", "pr.id", pr.ID, "pr.title", pr.Title)
|
logger.InfoContext(ctx, "closing existing pull requests, no commits available", "pr.id", pr.ID, "pr.title", pr.Title)
|
||||||
|
|
@ -202,14 +215,6 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var releaseOverrides ReleaseOverrides
|
|
||||||
if pr != nil {
|
|
||||||
releaseOverrides, err = pr.GetOverrides()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
versionBump := VersionBumpFromCommits(analyzedCommits)
|
versionBump := VersionBumpFromCommits(analyzedCommits)
|
||||||
// TODO: Set version in release pr
|
// TODO: Set version in release pr
|
||||||
nextVersion, err := rp.nextVersion(releases, versionBump, releaseOverrides.NextVersionType)
|
nextVersion, err := rp.nextVersion(releases, versionBump, releaseOverrides.NextVersionType)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue