1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-02-19 19:44:27 +02:00

Fixed error handling gitHubPublishRelease (#1184)

This commit is contained in:
redehnroV 2020-02-14 14:56:23 +01:00 committed by GitHub
parent 87f0cb687a
commit 716ac7735d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 4 deletions

View File

@ -46,12 +46,12 @@ func runGithubPublishRelease(ctx context.Context, config *githubPublishReleaseOp
lastRelease, resp, err := ghRepoClient.GetLatestRelease(ctx, config.Owner, config.Repository)
if err != nil {
if resp.StatusCode == 404 {
if resp != nil && resp.StatusCode == 404 {
//no previous release found -> first release
config.AddDeltaToLastRelease = false
log.Entry().Debug("This is the first release.")
} else {
return errors.Wrap(err, "Error occured when retrieving latest GitHub release.")
return errors.Wrapf(err, "Error occured when retrieving latest GitHub release (%v/%v)", config.Owner, config.Repository)
}
}
publishedAt = lastRelease.GetPublishedAt()

View File

@ -52,6 +52,11 @@ func (g *ghRCMock) GetLatestRelease(ctx context.Context, owner string, repo stri
if g.latestStatusCode != 0 {
hc.StatusCode = g.latestStatusCode
}
if len(owner) == 0 {
return g.latestRelease, nil, g.latestErr
}
ghResp := github.Response{Response: &hc}
return g.latestRelease, &ghResp, g.latestErr
}
@ -188,10 +193,27 @@ func TestRunGithubPublishRelease(t *testing.T) {
ghRepoClient := ghRCMock{
latestErr: fmt.Errorf("Latest release error"),
}
myGithubPublishReleaseOptions := githubPublishReleaseOptions{}
myGithubPublishReleaseOptions := githubPublishReleaseOptions{
Owner: "TEST",
Repository: "test",
}
err := runGithubPublishRelease(ctx, &myGithubPublishReleaseOptions, &ghRepoClient, &ghIssueClient)
assert.Equal(t, "Error occured when retrieving latest GitHub release.: Latest release error", fmt.Sprint(err))
assert.Equal(t, "Error occured when retrieving latest GitHub release (TEST/test): Latest release error", fmt.Sprint(err))
})
t.Run("Error - get release no response", func(t *testing.T) {
ghIssueClient := ghICMock{}
ghRepoClient := ghRCMock{
latestErr: fmt.Errorf("Latest release error, no response"),
}
myGithubPublishReleaseOptions := githubPublishReleaseOptions{
Owner: "",
Repository: "test",
}
err := runGithubPublishRelease(ctx, &myGithubPublishReleaseOptions, &ghRepoClient, &ghIssueClient)
assert.Equal(t, "Error occured when retrieving latest GitHub release (/test): Latest release error, no response", fmt.Sprint(err))
})
t.Run("Error - create release", func(t *testing.T) {