resolve issue with reference a branch on a github action
This commit is contained in:
parent
c668a410c3
commit
44e21b102e
2 changed files with 10 additions and 4 deletions
|
@ -73,6 +73,7 @@ func TestParseImageGithub(t *testing.T) {
|
||||||
{"nektos/act/foo", "https://github.com/nektos/act", "master", "foo", true},
|
{"nektos/act/foo", "https://github.com/nektos/act", "master", "foo", true},
|
||||||
{"nektos/act@xxxxx", "https://github.com/nektos/act", "xxxxx", ".", true},
|
{"nektos/act@xxxxx", "https://github.com/nektos/act", "xxxxx", ".", true},
|
||||||
{"nektos/act/bar/baz@zzzzz", "https://github.com/nektos/act", "zzzzz", "bar/baz", true},
|
{"nektos/act/bar/baz@zzzzz", "https://github.com/nektos/act", "zzzzz", "bar/baz", true},
|
||||||
|
{"assimovt/actions-github-deploy/github-deploy@deployment-status-metadata", "https://github.com/assimovt/actions-github-deploy", "deployment-status-metadata", "github-deploy", true},
|
||||||
{"nektos/zzzzundefinedzzzz", "", "", "", false},
|
{"nektos/zzzzundefinedzzzz", "", "", "", false},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -185,11 +185,14 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
|
||||||
cloneLock.Lock()
|
cloneLock.Lock()
|
||||||
defer cloneLock.Unlock()
|
defer cloneLock.Unlock()
|
||||||
|
|
||||||
|
refName := plumbing.ReferenceName(fmt.Sprintf("refs/heads/%s", input.Ref))
|
||||||
|
|
||||||
r, err := git.PlainOpen(input.Dir)
|
r, err := git.PlainOpen(input.Dir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
r, err = git.PlainClone(input.Dir, false, &git.CloneOptions{
|
r, err = git.PlainClone(input.Dir, false, &git.CloneOptions{
|
||||||
URL: input.URL.String(),
|
URL: input.URL.String(),
|
||||||
Progress: input.Logger.WriterLevel(log.DebugLevel),
|
Progress: input.Logger.WriterLevel(log.DebugLevel),
|
||||||
|
ReferenceName: refName,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -206,10 +209,12 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
|
||||||
|
|
||||||
err = w.Checkout(&git.CheckoutOptions{
|
err = w.Checkout(&git.CheckoutOptions{
|
||||||
//Branch: plumbing.NewHash(ref),
|
//Branch: plumbing.NewHash(ref),
|
||||||
Hash: plumbing.NewHash(input.Ref),
|
Branch: refName,
|
||||||
|
//Hash: plumbing.NewHash(input.Ref),
|
||||||
|
Force: true,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
input.Logger.Error(err)
|
input.Logger.Errorf("Unable to checkout %s: %v", refName, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue