mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-22 04:08:49 +02:00
6c79a6c51a
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.
62 lines
1.5 KiB
Go
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)
|
|
}
|