Fix out bugs

This commit is contained in:
Ed
2018-12-18 00:02:07 -05:00
parent 44f8ef502d
commit 7688a7faf8

View File

@@ -29,12 +29,12 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
// return OutResponse{}, err
// }
tag, err := c.fileContents(filepath.Join(sourceDir, request.Params.TagPath))
tag_name, err := c.fileContents(filepath.Join(sourceDir, request.Params.TagPath))
if err != nil {
return OutResponse{}, err
}
tag = request.Params.TagPrefix + tag
tag_name = request.Params.TagPrefix + tag_name
targetCommitish, err := c.fileContents(filepath.Join(sourceDir, request.Params.CommitishPath))
if err != nil {
@@ -48,26 +48,25 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
// }
// }
tagExists := false
_, err = c.gitlab.GetTag(tag)
tagExists := true
tag, err := c.gitlab.GetTag(tag_name)
if err != nil {
//TODO: improve the check to be based on the specific error
tagExists = true
tagExists = false
}
// create the tag first, as next sections assume the tag exists
if !tagExists {
_, err := c.gitlab.CreateTag(targetCommitish, tag)
tag, err = c.gitlab.CreateTag(targetCommitish, tag_name)
if err != nil {
return OutResponse{}, err
}
}
// create a new release
_, err = c.gitlab.CreateRelease(tag, "Auto-generated from Concourse GitLab Release Resource")
// create a new release if it doesn't exist yet
if tag.Release == nil {
_, err = c.gitlab.CreateRelease(tag_name, "Auto-generated from Concourse GitLab Release Resource")
if err != nil {
// if 409 error occurs, this means the release already existed, so just skip to the next section (update the release)
if err.Error() != "release already exists" {
return OutResponse{}, err
}
}
@@ -94,17 +93,14 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
}
// update the release
_, err = c.gitlab.UpdateRelease(tag, strings.Join(fileLinks, "\n"))
// get tag
savedTag, err := c.gitlab.GetTag(tag)
_, err = c.gitlab.UpdateRelease(tag_name, strings.Join(fileLinks, "\n"))
if err != nil {
return OutResponse{}, errors.New("could not get saved tag")
}
return OutResponse{
Version: Version{Tag: tag},
Metadata: metadataFromTag(savedTag),
Version: Version{Tag: tag_name},
Metadata: metadataFromTag(tag),
}, nil
}