Skip to content

Commit

Permalink
fix: sha256sum for oci artifact (#85)
Browse files Browse the repository at this point in the history
# Why:
- fix relation between sha256 and origin file


![image](https://github.com/PingCAP-QE/ee-apps/assets/10222426/091a82ed-5386-4c63-a011-f05abb22abd4)

---------

Signed-off-by: lijie <lijie@pingcap.com>
  • Loading branch information
lijie authored Feb 28, 2024
1 parent 09b2641 commit 0b258d7
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 6 deletions.
13 changes: 12 additions & 1 deletion tibuild/pkg/rest/service/dev_build_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,9 @@ func (s DevbuildServer) inflate(entity *DevBuild) {
if bin.URL == "" && bin.OciFile != nil {
entity.Status.BuildReport.Binaries[i].URL = s.ociFileToUrl(*bin.OciFile)
}
if bin.Sha256OciFile != nil {
entity.Status.BuildReport.Binaries[i].Sha256URL = s.ociFileToUrl(*bin.Sha256OciFile)
}
}
}
if tek := entity.Status.TektonStatus; tek != nil {
Expand Down Expand Up @@ -455,8 +458,16 @@ func getLatestEndAt(pipelines []TektonPipeline) *time.Time {

func ociArtifactToFiles(platform Platform, artifact OciArtifact) []BinArtifact {
var rt []BinArtifact
var sha256s = make(map[string]*OciFile)
for _, file := range artifact.Files {
rt = append(rt, BinArtifact{Platform: platform, OciFile: &OciFile{Repo: artifact.Repo, Tag: artifact.Tag, File: file}})
if origin, isSha256 := strings.CutSuffix(file, ".sha256"); isSha256 {
sha256s[origin] = &OciFile{Repo: artifact.Repo, Tag: artifact.Tag, File: file}
} else {
rt = append(rt, BinArtifact{Platform: platform, OciFile: &OciFile{Repo: artifact.Repo, Tag: artifact.Tag, File: file}})
}
}
for idx := 0; idx < len(rt); idx += 1 {
rt[idx].Sha256OciFile = sha256s[rt[idx].OciFile.File]
}
return rt
}
Expand Down
15 changes: 15 additions & 0 deletions tibuild/pkg/rest/service/dev_build_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -420,3 +420,18 @@ func TestTektonStatusMerge(t *testing.T) {
})

}

func TestOciArtifactToFiles(t *testing.T) {
files := ociArtifactToFiles(LinuxAmd64,
OciArtifact{Repo: "repo", Tag: "tag",
Files: []string{
"f1.tar.gz",
"f1.tar.gz.sha256",
"f2.tar.gz.sha256",
"f2.tar.gz"},
},
)
require.Equal(t, 2, len(files))
require.NotNil(t, files[0].Sha256OciFile)
require.NotNil(t, files[1].Sha256OciFile)
}
11 changes: 6 additions & 5 deletions tibuild/pkg/rest/service/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,11 +296,12 @@ var (
)

type BinArtifact struct {
Component string `json:"component,omitempty"`
Platform Platform `json:"platform"`
URL string `json:"url"`
Sha256URL string `json:"sha256URL"`
OciFile *OciFile `json:"ociFile,omitempty"`
Component string `json:"component,omitempty"`
Platform Platform `json:"platform"`
URL string `json:"url"`
Sha256URL string `json:"sha256URL"`
OciFile *OciFile `json:"ociFile,omitempty"`
Sha256OciFile *OciFile `json:"sha256OciFile,omitempty"`
}

type OciFile struct {
Expand Down

0 comments on commit 0b258d7

Please sign in to comment.