Skip to content

Commit

Permalink
add pre-release flag, closes #3
Browse files Browse the repository at this point in the history
  • Loading branch information
pete911 committed Jan 6, 2022
1 parent e178b99 commit be995e4
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 2 deletions.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -17,6 +17,8 @@ Usage of hcr:
The Helm charts location (default "charts")
-pages-branch string
The GitHub pages branch (default "gh-pages")
-pre-release
Whether the (chart) release should be marked as pre-release
-remote string
The Git remote for the GitHub Pages branch (default "origin")
-tag string
Expand Down
16 changes: 16 additions & 0 deletions internal/flag/flag.go
Expand Up @@ -5,11 +5,13 @@ import (
"flag"
"github.com/pete911/hcr/internal/hcr"
"os"
"strconv"
)

type flags struct {
pagesBranch string
chartsDir string
preRelease bool
tag string
remote string
token string
Expand All @@ -21,6 +23,7 @@ func ParseFlags() (hcr.Config, error) {

flagSet.StringVar(&f.pagesBranch, "pages-branch", getStringEnv("HCR_PAGES_BRANCH", "gh-pages"), "The GitHub pages branch")
flagSet.StringVar(&f.chartsDir, "charts-dir", getStringEnv("HCR_CHARTS_DIR", "charts"), "The Helm charts location")
flagSet.BoolVar(&f.preRelease, "pre-release", getBoolEnv("HCR_PRE_RELEASE", false), "Whether the (chart) release should be marked as pre-release")
flagSet.StringVar(&f.tag, "tag", getStringEnv("HCR_TAG", ""), "Release tag, defaults to chart version")
flagSet.StringVar(&f.remote, "remote", getStringEnv("HCR_REMOTE", "origin"), "The Git remote for the GitHub Pages branch")
flagSet.StringVar(&f.token, "token", getStringEnv("HCR_TOKEN", ""), "GitHub Auth Token")
Expand All @@ -36,6 +39,7 @@ func ParseFlags() (hcr.Config, error) {
return hcr.Config{
PagesBranch: f.pagesBranch,
ChartsDir: f.chartsDir,
PreRelease: f.preRelease,
Tag: f.tag,
Remote: f.remote,
Token: f.token,
Expand All @@ -62,3 +66,15 @@ func getStringEnv(envName string, defaultValue string) string {
}
return env
}

func getBoolEnv(envName string, defaultValue bool) bool {
env, ok := os.LookupEnv(envName)
if !ok {
return defaultValue
}

if v, err := strconv.ParseBool(env); err == nil {
return v
}
return defaultValue
}
4 changes: 3 additions & 1 deletion internal/hcr/config.go
Expand Up @@ -5,6 +5,7 @@ import "fmt"
type Config struct {
PagesBranch string
ChartsDir string
PreRelease bool
Tag string
Remote string
Token string
Expand All @@ -15,5 +16,6 @@ func (c Config) String() string {
if len(c.Token) == 0 {
token = "<empty>"
}
return fmt.Sprintf("pages-branch: %q, charts-dir: %q, tag: %q, remote: %q, token: %q", c.PagesBranch, c.ChartsDir, c.Tag, c.Remote, token)
return fmt.Sprintf("pages-branch: %q, charts-dir: %q, pre-release: %t, tag: %q, remote: %q, token: %q",
c.PagesBranch, c.ChartsDir, c.PreRelease, c.Tag, c.Remote, token)
}
2 changes: 1 addition & 1 deletion internal/hcr/releaser.go
Expand Up @@ -103,7 +103,7 @@ func (r Releaser) releaseAndUpdateIndex(ctx context.Context, ghPagesDir string,
Name: fmt.Sprintf("%s-%s", ch.Name(), ch.Metadata.Version),
Description: fmt.Sprintf("Kubernetes %s Helm chart", ch.Name()),
AssetPath: chPath,
PreRelease: false,
PreRelease: r.config.PreRelease,
}
assetUrl, err := r.ghClient.CreateRelease(ctx, owner, repo, tag, release)
if err != nil {
Expand Down

0 comments on commit be995e4

Please sign in to comment.