Add functionality to support Release and Prerelease together
This commit is contained in:
16
README.md
16
README.md
@@ -23,16 +23,22 @@ Fetches and creates versioned GitHub resources.
|
|||||||
for uploading. If `github_api_url` is set, this value defaults to the same
|
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.
|
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`: *Optional. Default `false`.* When set to `true`, `put` produces
|
||||||
drafts and `check` only detects drafts. If `false`, only non-draft releases
|
drafts and `check` only detects drafts. If `false`, only non-draft releases
|
||||||
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
|
||||||
|
@@ -35,7 +35,11 @@ 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 {
|
|
||||||
|
// 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
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var request resource.CheckRequest
|
request := resource.NewCheckRequest()
|
||||||
inputRequest(&request)
|
inputRequest(&request)
|
||||||
|
|
||||||
github, err := resource.NewGitHubClient(request.Source)
|
github, err := resource.NewGitHubClient(request.Source)
|
||||||
|
@@ -13,7 +13,7 @@ func main() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
var request resource.OutRequest
|
request := resource.NewCheckRequest()
|
||||||
inputRequest(&request)
|
inputRequest(&request)
|
||||||
|
|
||||||
sourceDir := os.Args[1]
|
sourceDir := os.Args[1]
|
||||||
|
@@ -58,7 +58,10 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
draft := request.Source.Drafts
|
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{
|
release := &github.RepositoryRelease{
|
||||||
Name: github.String(name),
|
Name: github.String(name),
|
||||||
|
@@ -9,6 +9,7 @@ type Source struct {
|
|||||||
AccessToken string `json:"access_token"`
|
AccessToken string `json:"access_token"`
|
||||||
Drafts bool `json:"drafts"`
|
Drafts bool `json:"drafts"`
|
||||||
PreRelease bool `json:"pre_release"`
|
PreRelease bool `json:"pre_release"`
|
||||||
|
Release bool `json:"release"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CheckRequest struct {
|
type CheckRequest struct {
|
||||||
@@ -16,6 +17,12 @@ type CheckRequest struct {
|
|||||||
Version Version `json:"version"`
|
Version Version `json:"version"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewCheckRequest() CheckRequest {
|
||||||
|
res := CheckRequest{}
|
||||||
|
res.Source.Release = true
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
type InRequest struct {
|
type InRequest struct {
|
||||||
Source Source `json:"source"`
|
Source Source `json:"source"`
|
||||||
Version *Version `json:"version"`
|
Version *Version `json:"version"`
|
||||||
|
Reference in New Issue
Block a user