Add functionality to support Release and Prerelease together

This commit is contained in:
Adham Helal
2016-09-15 16:31:32 +02:00
parent cc5e9dc7f5
commit ee96e0d46b
6 changed files with 29 additions and 9 deletions

View File

@@ -23,16 +23,22 @@ Fetches and creates versioned GitHub resources.
for uploading. If `github_api_url` is set, this value defaults to the same
value, but if you have your own endpoint, this field will override it.
* `release`: *Optional. Default `true`.* When set to `true`, `put` produces
release and `check` will detects releases. If `false`, `put` and `check` will ignore releases.
Note that releases must have semver compliant tags to be detected.
* `pre_release`: *Optional. Default `false`.* When set to `true`, `put` produces
pre-release and `check` detects prereleases. If `false`, only non-prerelease releases
will be detected and published. Note that releases must have semver compliant
tags to be detected.
If `release` and `pre_release` are set to `true` `put` produces
release and `check` will detects prereleases and releases.
* `drafts`: *Optional. Default `false`.* When set to `true`, `put` produces
drafts and `check` only detects drafts. If `false`, only non-draft releases
will be detected and published. Note that releases must have semver compliant
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
``` yaml

View File

@@ -35,7 +35,11 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
if request.Source.Drafts != *release.Draft {
continue
}
if request.Source.PreRelease != *release.Prerelease {
// Should we skip this release
// a- prerelease condition dont match our source config
// b- release condition match prerealse in github since github has true/false to describe release/prerelase
if request.Source.PreRelease != *release.Prerelease && request.Source.Release == *release.Prerelease {
continue
}

View File

@@ -8,7 +8,7 @@ import (
)
func main() {
var request resource.CheckRequest
request := resource.NewCheckRequest()
inputRequest(&request)
github, err := resource.NewGitHubClient(request.Source)

View File

@@ -13,7 +13,7 @@ func main() {
os.Exit(1)
}
var request resource.OutRequest
request := resource.NewCheckRequest()
inputRequest(&request)
sourceDir := os.Args[1]

View File

@@ -58,7 +58,10 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
}
draft := request.Source.Drafts
prerelease := request.Source.PreRelease
prerelease := false
if request.Source.PreRelease == true && request.Source.Release == false {
prerelease = request.Source.PreRelease
}
release := &github.RepositoryRelease{
Name: github.String(name),

View File

@@ -9,6 +9,7 @@ type Source struct {
AccessToken string `json:"access_token"`
Drafts bool `json:"drafts"`
PreRelease bool `json:"pre_release"`
Release bool `json:"release"`
}
type CheckRequest struct {
@@ -16,6 +17,12 @@ type CheckRequest struct {
Version Version `json:"version"`
}
func NewCheckRequest() CheckRequest {
res := CheckRequest{}
res.Source.Release = true
return res
}
type InRequest struct {
Source Source `json:"source"`
Version *Version `json:"version"`