mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-02-08 10:47:02 +00:00
Compare commits
3 commits
c8c88d37b1
...
84c5f2d490
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84c5f2d490 | ||
| fe3c9488b3 | |||
| d9c081d280 |
6 changed files with 52 additions and 31 deletions
|
|
@ -1,5 +1,11 @@
|
|||
# Changelog
|
||||
|
||||
## [v0.5.1](https://github.com/apricote/releaser-pleaser/releases/tag/v0.5.1)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- invalid version for subsequent pre-releases (#174)
|
||||
|
||||
## [v0.5.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.5.0)
|
||||
|
||||
### Features
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ inputs:
|
|||
outputs: {}
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: docker://ghcr.io/apricote/releaser-pleaser:v0.5.0 # x-releaser-pleaser-version
|
||||
image: docker://ghcr.io/apricote/releaser-pleaser:v0.5.1 # x-releaser-pleaser-version
|
||||
args:
|
||||
- run
|
||||
- --forge=github
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -12,7 +12,7 @@ require (
|
|||
github.com/spf13/cobra v1.9.1
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/teekennedy/goldmark-markdown v0.5.1
|
||||
github.com/xanzy/go-gitlab v0.114.0
|
||||
github.com/xanzy/go-gitlab v0.115.0
|
||||
github.com/yuin/goldmark v1.7.12
|
||||
)
|
||||
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -104,8 +104,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
|
|||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/teekennedy/goldmark-markdown v0.5.1 h1:2lIlJ3AcIwaD1wFl4dflJSJFMhRTKEsEj+asVsu6M/0=
|
||||
github.com/teekennedy/goldmark-markdown v0.5.1/go.mod h1:so260mNSPELuRyynZY18719dRYlD+OSnAovqsyrOMOM=
|
||||
github.com/xanzy/go-gitlab v0.114.0 h1:0wQr/KBckwrZPfEMjRqpUz0HmsKKON9UhCYv9KDy19M=
|
||||
github.com/xanzy/go-gitlab v0.114.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY=
|
||||
github.com/xanzy/go-gitlab v0.115.0 h1:6DmtItNcVe+At/liXSgfE/DZNZrGfalQmBRmOcJjOn8=
|
||||
github.com/xanzy/go-gitlab v0.115.0/go.mod h1:5XCDtM7AM6WMKmfDdOiEpyRWUqui2iS9ILfvCZ2gJ5M=
|
||||
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
|
||||
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
|
||||
github.com/yuin/goldmark v1.7.12 h1:YwGP/rrea2/CnCtUHgjuolG/PnMxdQtPMO5PvaE2/nY=
|
||||
|
|
|
|||
|
|
@ -179,34 +179,16 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
|||
logger.InfoContext(ctx, "no latest tag found")
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
commits, err := rp.forge.CommitsSince(ctx, lastReleaseCommit)
|
||||
// For stable releases, we want to consider all changes since the last stable release for version and changelog.
|
||||
// For prereleases, we want to consider all changes...
|
||||
// - since the last stable release for the version
|
||||
// - since the latest release (stable or prerelease) for the changelog
|
||||
analyzedCommitsForVersioning, err := rp.analyzedCommitsSince(ctx, releases.Stable)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
commits, err = parsePRBodyForCommitOverrides(commits)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.InfoContext(ctx, "Found releasable commits", "length", len(commits))
|
||||
|
||||
analyzedCommits, err := rp.commitParser.Analyze(commits)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.InfoContext(ctx, "Analyzed commits", "length", len(analyzedCommits))
|
||||
|
||||
if len(analyzedCommits) == 0 {
|
||||
if len(analyzedCommitsForVersioning) == 0 {
|
||||
if pr != nil {
|
||||
logger.InfoContext(ctx, "closing existing pull requests, no commits available", "pr.id", pr.ID, "pr.title", pr.Title)
|
||||
err = rp.forge.ClosePullRequest(ctx, pr)
|
||||
|
|
@ -220,7 +202,7 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
versionBump := versioning.BumpFromCommits(analyzedCommits)
|
||||
versionBump := versioning.BumpFromCommits(analyzedCommitsForVersioning)
|
||||
// TODO: Set version in release pr
|
||||
nextVersion, err := rp.versioning.NextVersion(releases, versionBump, releaseOverrides.NextVersionType)
|
||||
if err != nil {
|
||||
|
|
@ -228,6 +210,14 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
|||
}
|
||||
logger.InfoContext(ctx, "next version", "version", nextVersion)
|
||||
|
||||
analyzedCommitsForChangelog := analyzedCommitsForVersioning
|
||||
if releaseOverrides.NextVersionType.IsPrerelease() && releases.Latest != releases.Stable {
|
||||
analyzedCommitsForChangelog, err = rp.analyzedCommitsSince(ctx, releases.Latest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
logger.DebugContext(ctx, "cloning repository", "clone.url", rp.forge.CloneURL())
|
||||
repo, err := git.CloneRepo(ctx, logger, rp.forge.CloneURL(), rp.targetBranch, rp.forge.GitAuth())
|
||||
if err != nil {
|
||||
|
|
@ -242,7 +232,7 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
changelogData := changelog.New(commitparser.ByType(analyzedCommits), nextVersion, rp.forge.ReleaseURL(nextVersion), releaseOverrides.Prefix, releaseOverrides.Suffix)
|
||||
changelogData := changelog.New(commitparser.ByType(analyzedCommitsForChangelog), nextVersion, rp.forge.ReleaseURL(nextVersion), releaseOverrides.Prefix, releaseOverrides.Suffix)
|
||||
|
||||
changelogEntry, err := changelog.Entry(logger, changelog.DefaultTemplate(), changelogData, changelog.Formatting{})
|
||||
if err != nil {
|
||||
|
|
@ -330,3 +320,28 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rp *ReleaserPleaser) analyzedCommitsSince(ctx context.Context, since *git.Tag) ([]commitparser.AnalyzedCommit, error) {
|
||||
logger := rp.logger.With("method", "analyzedCommitsSince", "tag.hash", since.Hash, "tag.name", since.Name)
|
||||
|
||||
commits, err := rp.forge.CommitsSince(ctx, since)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
commits, err = parsePRBodyForCommitOverrides(commits)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logger.InfoContext(ctx, "Found releasable commits", "length", len(commits))
|
||||
|
||||
analyzedCommits, err := rp.commitParser.Analyze(commits)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logger.InfoContext(ctx, "Analyzed commits", "length", len(analyzedCommits))
|
||||
|
||||
return analyzedCommits, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ releaser-pleaser:
|
|||
# There is no way to run a pipeline when the MR description is updated :(
|
||||
- if: $CI_COMMIT_BRANCH == "$[[ inputs.branch ]]"
|
||||
image:
|
||||
name: ghcr.io/apricote/releaser-pleaser:v0.5.0 # x-releaser-pleaser-version
|
||||
name: ghcr.io/apricote/releaser-pleaser:v0.5.1 # x-releaser-pleaser-version
|
||||
entrypoint: [ "" ]
|
||||
variables:
|
||||
GITLAB_TOKEN: $[[ inputs.token ]]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue