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