Support pre release

This commit is contained in:
Adham Helal
2016-08-01 14:23:39 +02:00
parent 7d10e39540
commit cc5e9dc7f5
4 changed files with 14 additions and 1 deletions

View File

@@ -28,6 +28,11 @@ Fetches and creates versioned GitHub resources.
will be detected and published. Note that releases must have semver compliant will be detected and published. Note that releases must have semver compliant
tags to be detected, even if they're drafts. tags to be detected, even if they're drafts.
* `pre_release`: *Optional. Default `false`.* When set to `true`, `put` produces
pre-release and `check` only detects prereleases. If `false`, only non-prerelease releases
will be detected and published. Note that releases must have semver compliant
tags to be detected.
### Example ### Example
``` yaml ``` yaml

View File

@@ -35,6 +35,10 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
if request.Source.Drafts != *release.Draft { if request.Source.Drafts != *release.Draft {
continue continue
} }
if request.Source.PreRelease != *release.Prerelease {
continue
}
if release.TagName == nil { if release.TagName == nil {
continue continue
} }
@@ -67,7 +71,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
for _, release := range filteredReleases { for _, release := range filteredReleases {
if !upToLatest { if !upToLatest {
if *release.Draft { if *release.Draft || *release.Prerelease {
id := *release.ID id := *release.ID
upToLatest = request.Version.ID == strconv.Itoa(id) upToLatest = request.Version.ID == strconv.Itoa(id)
} else { } else {

View File

@@ -58,12 +58,14 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
} }
draft := request.Source.Drafts draft := request.Source.Drafts
prerelease := request.Source.PreRelease
release := &github.RepositoryRelease{ release := &github.RepositoryRelease{
Name: github.String(name), Name: github.String(name),
TagName: github.String(tag), TagName: github.String(tag),
Body: github.String(body), Body: github.String(body),
Draft: github.Bool(draft), Draft: github.Bool(draft),
Prerelease: github.Bool(prerelease),
TargetCommitish: github.String(targetCommitish), TargetCommitish: github.String(targetCommitish),
} }
@@ -89,6 +91,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
existingRelease.Name = github.String(name) existingRelease.Name = github.String(name)
existingRelease.TargetCommitish = github.String(targetCommitish) existingRelease.TargetCommitish = github.String(targetCommitish)
existingRelease.Draft = github.Bool(draft) existingRelease.Draft = github.Bool(draft)
existingRelease.Prerelease = github.Bool(prerelease)
if bodySpecified { if bodySpecified {
existingRelease.Body = github.String(body) existingRelease.Body = github.String(body)

View File

@@ -8,6 +8,7 @@ type Source struct {
GitHubUploadsURL string `json:"github_uploads_url"` GitHubUploadsURL string `json:"github_uploads_url"`
AccessToken string `json:"access_token"` AccessToken string `json:"access_token"`
Drafts bool `json:"drafts"` Drafts bool `json:"drafts"`
PreRelease bool `json:"pre_release"`
} }
type CheckRequest struct { type CheckRequest struct {