Skip to content

Commit 7151b91

Browse files
committed
Fix goreleaser confusing major and full tag versions
1 parent 5698f88 commit 7151b91

File tree

4 files changed

+30
-20
lines changed

4 files changed

+30
-20
lines changed

.github/workflows/tag-and-release.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ jobs:
3838
id: tag
3939
run: |
4040
set +e
41-
task -x tag
41+
task -x tag 2>versions.txt
42+
43+
echo "requested_version=$(cut -d',' -f 1 versions.txt)" >> $GITHUB_OUTPUT
44+
echo "previous_version=$(cut -d',' -f 2 versions.txt)" >> $GITHUB_OUTPUT
45+
4246
tag_result="$?"
4347
echo "tag_result=$tag_result" >> $GITHUB_OUTPUT
4448
# The range between 8 and 63 inclusive is reserved for custom
@@ -88,3 +92,5 @@ jobs:
8892
env:
8993
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
9094
HOMEBREW_TAP_TOKEN: ${{ secrets.GORELEASER_HOMEBREW_TAP_TOKEN }}
95+
GORELEASER_CURRENT_TAG: ${{ needs.tag.outputs.requested_version }}
96+
GORELEASER_PREVIOUS_TAG: ${{ needs.tag.outputs.previous_version }}

mockery-tools.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION=v3.0.0-alpha.3
1+
VERSION=v3.0.0-alpha.4

tools/cmd/root.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func NewRootCmd() *cobra.Command {
4242
}
4343

4444
logger = zerolog.New(zerolog.ConsoleWriter{
45-
Out: os.Stdout,
45+
Out: os.Stderr,
4646
}).Hook(timestampHook{})
4747

4848
subCommands := []func(v *viper.Viper) (*cobra.Command, error){
@@ -64,8 +64,8 @@ func printStack(err error) {
6464
}
6565
newErr, ok := err.(*errors.Error)
6666
if ok {
67-
fmt.Printf("%v\n", newErr.ErrorStack())
67+
fmt.Fprintf(os.Stderr, "%v\n", newErr.ErrorStack())
6868
} else {
69-
fmt.Printf("%v\n", err)
69+
fmt.Fprintf(os.Stderr, "%v\n", err)
7070
}
7171
}

tools/cmd/tag.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ func NewTagCmd(v *viper.Viper) (*cobra.Command, error) {
3232
printStack(err)
3333
os.Exit(1)
3434
}
35-
if err := tagger.Tag(); err != nil {
35+
requestedVersion, previousVersion, err := tagger.Tag()
36+
if requestedVersion != nil && previousVersion != nil {
37+
fmt.Fprintf(os.Stdout, "%s,%s", requestedVersion.String(), previousVersion.String())
38+
}
39+
if err != nil {
3640
if errors.Is(ErrNoNewVersion, err) {
3741
os.Exit(EXIT_CODE_NO_NEW_VERSION)
3842
}
@@ -147,25 +151,25 @@ type Tagger struct {
147151
Version string `mapstructure:"version" validate:"required"`
148152
}
149153

150-
func (t *Tagger) Tag() error {
154+
func (t *Tagger) Tag() (requestedVersion *semver.Version, previousVersion *semver.Version, err error) {
151155
repo, err := git.PlainOpen(".")
152156
if err != nil {
153-
return errors.New(err)
157+
return nil, nil, errors.New(err)
154158
}
155159

156-
requestedVersion, err := semver.NewVersion(t.Version)
160+
requestedVersion, err = semver.NewVersion(t.Version)
157161
if err != nil {
158162
logger.Err(err).Str("requested-version", string(t.Version)).Msg("error when constructing semver from version config")
159-
return errors.New(err)
163+
return requestedVersion, nil, errors.New(err)
160164
}
161165

162-
largestTag, err := t.largestTagSemver(repo, requestedVersion.Major())
166+
previousVersion, err = t.largestTagSemver(repo, requestedVersion.Major())
163167
if err != nil {
164-
return err
168+
return requestedVersion, previousVersion, err
165169
}
166-
taggedVersion, err := semver.NewVersion(largestTag.String())
170+
taggedVersion, err := semver.NewVersion(previousVersion.String())
167171
if err != nil {
168-
return errors.New(err)
172+
return requestedVersion, previousVersion, errors.New(err)
169173
}
170174
logger := logger.With().
171175
Stringer("tagged-version", taggedVersion).Logger()
@@ -178,28 +182,28 @@ func (t *Tagger) Tag() error {
178182
if !requestedVersion.GreaterThan(taggedVersion) {
179183
logger.Info().
180184
Msg("VERSION is not greater than latest git tag, nothing to do.")
181-
return ErrNoNewVersion
185+
return requestedVersion, previousVersion, ErrNoNewVersion
182186
}
183187

184188
worktree, err := repo.Worktree()
185189
if err != nil {
186-
return errors.New(err)
190+
return requestedVersion, previousVersion, errors.New(err)
187191
}
188192

189193
status, err := worktree.Status()
190194
if err != nil {
191-
return errors.New(err)
195+
return requestedVersion, previousVersion, errors.New(err)
192196
}
193197
if !status.IsClean() {
194198
logger.Error().Msg("git is in a dirty state, can't tag.")
195199
fmt.Println(status.String())
196-
return errors.New("dirty git state")
200+
return requestedVersion, previousVersion, errors.New("dirty git state")
197201
}
198202

199203
if err := t.createTag(repo, fmt.Sprintf("v%s", requestedVersion.String())); err != nil {
200-
return err
204+
return requestedVersion, previousVersion, err
201205
}
202206
logger.Info().Msg("created new tag. Push to origin still required.")
203207

204-
return nil
208+
return requestedVersion, previousVersion, nil
205209
}

0 commit comments

Comments
 (0)