Skip to content

Commit

Permalink
Skip tests that use git when git is not available
Browse files Browse the repository at this point in the history
  • Loading branch information
meatballhat committed Oct 3, 2024
1 parent 865780a commit 277df70
Showing 1 changed file with 59 additions and 32 deletions.
91 changes: 59 additions & 32 deletions pkg/image/build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,17 @@ import (
"github.com/stretchr/testify/require"
)

var hasGit = (func() bool {
_, err := exec.LookPath("git")
return err == nil
})()

func setupGitWorkTree(t *testing.T) string {
if !hasGit {
t.Skip("no git executable available")
return ""
}

r := require.New(t)

tmp := t.TempDir()
Expand All @@ -27,39 +37,56 @@ func TestIsGitWorkTree(t *testing.T) {
}

func TestGitHead(t *testing.T) {
r := require.New(t)
tmp := setupGitWorkTree(t)

head, err := gitHead(tmp)
r.NoError(err)
r.NotEqual("", head)

head, err = gitHead("/dev/null")
r.Error(err)
r.Equal("", head)

t.Setenv("GITHUB_SHA", "fafafaf")

head, err = gitHead("/dev/null")
r.NoError(err)
r.Equal("fafafaf", head)
t.Run("via github env", func(t *testing.T) {
t.Setenv("GITHUB_SHA", "fafafaf")

head, err := gitHead("/dev/null")

require.NoError(t, err)
require.Equal(t, "fafafaf", head)
})

t.Run("via git", func(t *testing.T) {
tmp := setupGitWorkTree(t)
if tmp == "" {
return
}

head, err := gitHead(tmp)
require.NoError(t, err)
require.NotEqual(t, "", head)
})

t.Run("unavailable", func(t *testing.T) {
head, err := gitHead("/dev/null")
require.Error(t, err)
require.Equal(t, "", head)
})
}

func TestGitTag(t *testing.T) {
r := require.New(t)
tmp := setupGitWorkTree(t)

tag, err := gitTag(tmp)
r.NoError(err)
r.Equal("v0.0.1+walrus", tag)

tag, err = gitTag("/dev/null")
r.Error(err)
r.Equal("", tag)

t.Setenv("GITHUB_REF_NAME", "v0.0.1+manatee")

tag, err = gitTag("/dev/null")
r.NoError(err)
r.Equal("v0.0.1+manatee", tag)
t.Run("via github env", func(t *testing.T) {
t.Setenv("GITHUB_REF_NAME", "v0.0.1+manatee")

tag, err := gitTag("/dev/null")
require.NoError(t, err)
require.Equal(t, "v0.0.1+manatee", tag)
})

t.Run("via git", func(t *testing.T) {
tmp := setupGitWorkTree(t)
if tmp == "" {
return
}

tag, err := gitTag(tmp)
require.NoError(t, err)
require.Equal(t, "v0.0.1+walrus", tag)
})

t.Run("unavailable", func(t *testing.T) {
tag, err := gitTag("/dev/null")
require.Error(t, err)
require.Equal(t, "", tag)
})
}

0 comments on commit 277df70

Please sign in to comment.