1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-22 04:08:49 +02:00
Alan Scherger 6c79a6c51a fix: be explicit when we query git for tags
When Jenkins is configured with 'Check out to matching local branch' the branch and tag name will conflict.
If we use explicit references to tags, then life is much better.

This patch also replaces our manual 'tag or not' boolean with a regex to check if the return is a SHA1.
If it is not a SHA1, it is assumed to be a tag. Hopefully this helps with future maintainability.
2018-10-06 22:21:46 -03:00

62 lines
1.5 KiB
Go

package testlib
import (
"testing"
"github.com/goreleaser/goreleaser/internal/git"
"github.com/stretchr/testify/assert"
)
// GitInit inits a new git project
func GitInit(t *testing.T) {
out, err := fakeGit("init")
assert.NoError(t, err)
assert.Contains(t, out, "Initialized empty Git repository")
assert.NoError(t, err)
}
// GitRemoteAdd adds the given url as remote
func GitRemoteAdd(t *testing.T, url string) {
out, err := fakeGit("remote", "add", "origin", url)
assert.NoError(t, err)
assert.Empty(t, out)
}
// GitCommit creates a git commits
func GitCommit(t *testing.T, msg string) {
out, err := fakeGit("commit", "--allow-empty", "-m", msg)
assert.NoError(t, err)
assert.Contains(t, out, "master", msg)
}
// GitTag creates a git tag
func GitTag(t *testing.T, tag string) {
out, err := fakeGit("tag", tag)
assert.NoError(t, err)
assert.Empty(t, out)
}
// GitAdd adds all files to stage
func GitAdd(t *testing.T) {
out, err := fakeGit("add", "-A")
assert.NoError(t, err)
assert.Empty(t, out)
}
func fakeGit(args ...string) (string, error) {
var allArgs = []string{
"-c", "user.name='GoReleaser'",
"-c", "user.email='test@goreleaser.github.com'",
"-c", "commit.gpgSign=false",
}
allArgs = append(allArgs, args...)
return git.Run(allArgs...)
}
// GitCheckoutBranch allows us to change the active branch that we're using.
func GitCheckoutBranch(t *testing.T, tag string) {
out, err := fakeGit("checkout", "-b", tag)
assert.NoError(t, err)
assert.Contains(t, out, tag)
}