github.com/amane3/goreleaser@v0.182.0/cmd/util_test.go (about) 1 package cmd 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/amane3/goreleaser/internal/testlib" 9 "github.com/stretchr/testify/require" 10 ) 11 12 type exitMemento struct { 13 code int 14 } 15 16 func (e *exitMemento) Exit(i int) { 17 e.code = i 18 } 19 20 func setup(t testing.TB) string { 21 _ = os.Unsetenv("GITHUB_TOKEN") 22 _ = os.Unsetenv("GITLAB_TOKEN") 23 24 previous, err := os.Getwd() 25 require.NoError(t, err) 26 27 t.Cleanup(func() { 28 require.NoError(t, os.Chdir(previous)) 29 }) 30 31 var folder = t.TempDir() 32 require.NoError(t, os.Chdir(folder)) 33 34 createGoreleaserYaml(t) 35 createMainGo(t) 36 goModInit(t) 37 testlib.GitInit(t) 38 testlib.GitAdd(t) 39 testlib.GitCommit(t, "asdf") 40 testlib.GitTag(t, "v0.0.1") 41 testlib.GitCommit(t, "asas89d") 42 testlib.GitCommit(t, "assssf") 43 testlib.GitCommit(t, "assd") 44 testlib.GitTag(t, "v0.0.2") 45 testlib.GitRemoteAdd(t, "git@github.com:goreleaser/fake.git") 46 47 return folder 48 } 49 50 func createFile(t testing.TB, filename, contents string) { 51 require.NoError(t, ioutil.WriteFile(filename, []byte(contents), 0644)) 52 } 53 54 func createMainGo(t testing.TB) { 55 createFile(t, "main.go", "package main\nfunc main() {println(0)}") 56 } 57 58 func goModInit(t testing.TB) { 59 createFile(t, "go.mod", `module foo 60 61 go 1.15 62 `) 63 } 64 65 func createGoreleaserYaml(t testing.TB) { 66 var yaml = `build: 67 binary: fake 68 goos: 69 - linux 70 goarch: 71 - amd64 72 release: 73 github: 74 owner: goreleaser 75 name: fake 76 ` 77 createFile(t, "goreleaser.yml", yaml) 78 }