diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-10-04 11:18:10 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-10-10 15:39:25 +0000 |
| commit | cd942402d6bc82fa3ea87e5c43509e1ec6cfafe2 (patch) | |
| tree | 4bcd4b26ad9f9a1a79d6530b2bc0bdccc1ea1015 /pkg/vcs | |
| parent | d7475276a82f2dbec772bce46ac82ce370fb4bef (diff) | |
syz-ci: introduce gitArchive parameters
Some commits don't live long remotely.
It sometimes happens we need them later to:
1. Merge coverage.
2. Mention during communication.
Diffstat (limited to 'pkg/vcs')
| -rw-r--r-- | pkg/vcs/fuchsia.go | 4 | ||||
| -rw-r--r-- | pkg/vcs/git.go | 9 | ||||
| -rw-r--r-- | pkg/vcs/vcs.go | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/pkg/vcs/fuchsia.go b/pkg/vcs/fuchsia.go index 2ad0e1878..704c0a9e6 100644 --- a/pkg/vcs/fuchsia.go +++ b/pkg/vcs/fuchsia.go @@ -107,3 +107,7 @@ func (ctx *fuchsia) MergeBases(firstCommit, secondCommit string) ([]*Commit, err func (ctx *fuchsia) CommitExists(string) (bool, error) { return false, fmt.Errorf("not implemented for fuchsia") } + +func (ctx *fuchsia) PushCommit(repo, commit string) error { + return ctx.repo.PushCommit(repo, commit) +} diff --git a/pkg/vcs/git.go b/pkg/vcs/git.go index d1a91404c..f8362dfb2 100644 --- a/pkg/vcs/git.go +++ b/pkg/vcs/git.go @@ -635,3 +635,12 @@ func (git *git) CommitExists(commit string) (bool, error) { } return true, nil } + +func (git *git) PushCommit(repo, commit string) error { + tagName := "tag-" + commit // assign tag to guarantee remote persistence + git.git("tag", tagName) // ignore errors on re-tagging + if _, err := git.git("push", repo, "tag", tagName); err != nil { + return fmt.Errorf("git push %s tag %s: %w", repo, tagName, err) + } + return nil +} diff --git a/pkg/vcs/vcs.go b/pkg/vcs/vcs.go index 0730ba721..23a302cbd 100644 --- a/pkg/vcs/vcs.go +++ b/pkg/vcs/vcs.go @@ -72,6 +72,9 @@ type Repo interface { // CommitExists check for the commit presence in local checkout. CommitExists(commit string) (bool, error) + + // PushCommit is used to store commit in remote repo. + PushCommit(repo, commit string) error } // Bisecter may be optionally implemented by Repo. |
