Skip to content

Commit a33bbcd

Browse files
authored
Merge pull request #170 from replicatedhq/javier-addCreateLintAuto
- Add lint to --auto
2 parents b01a5b3 + 230fb4c commit a33bbcd

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

cli/cmd/release_create.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import (
44
"encoding/base64"
55
"encoding/json"
66
"fmt"
7-
"github.com/manifoldco/promptui"
8-
"github.com/replicatedhq/replicated/cli/print"
97
"io/ioutil"
108
"os"
119
"path/filepath"
1210
"strings"
1311
"time"
1412

13+
"github.com/manifoldco/promptui"
14+
"github.com/replicatedhq/replicated/cli/print"
15+
1516
"github.com/go-git/go-git/v5"
1617
"github.com/go-git/go-git/v5/plumbing"
1718
"github.com/pkg/errors"
@@ -46,6 +47,10 @@ func (r *runners) InitReleaseCreate(parent *cobra.Command) error {
4647
cmd.Flags().StringVar(&r.args.createReleasePromote, "promote", "", "Channel name or id to promote this release to")
4748
cmd.Flags().StringVar(&r.args.createReleasePromoteNotes, "release-notes", "", "When used with --promote <channel>, sets the **markdown** release notes")
4849
cmd.Flags().StringVar(&r.args.createReleasePromoteVersion, "version", "", "When used with --promote <channel>, sets the version label for the release in this channel")
50+
// Fail-on linting flag (from release_lint.go)
51+
cmd.Flags().StringVar(&r.args.lintReleaseFailOn, "fail-on", "error", "The minimum severity to cause the command to exit with a non-zero exit code. Supported values are [info, warn, error, none].")
52+
// Replicated release create lint flag
53+
cmd.Flags().BoolVar(&r.args.createReleaseLint, "lint", false, "Lint a manifests directory prior to creation of the KOTS Release.")
4954
cmd.Flags().BoolVar(&r.args.createReleasePromoteRequired, "required", false, "When used with --promote <channel>, marks this release as required during upgrades.")
5055
cmd.Flags().BoolVar(&r.args.createReleasePromoteEnsureChannel, "ensure-channel", false, "When used with --promote <channel>, will create the channel if it doesn't exist")
5156
cmd.Flags().BoolVar(&r.args.createReleaseAutoDefaults, "auto", false, "generate default values for use in CI")
@@ -146,11 +151,12 @@ func (r *runners) setKOTSDefaultReleaseParams() error {
146151
}
147152

148153
r.args.createReleasePromoteEnsureChannel = true
149-
154+
r.args.createReleaseLint = true
155+
150156
return nil
151157
}
152158

153-
func (r *runners) releaseCreate(_ *cobra.Command, _ []string) error {
159+
func (r *runners) releaseCreate(cmd *cobra.Command, args []string) error {
154160

155161
log := print.NewLogger(r.w)
156162

@@ -172,8 +178,9 @@ Prepared to create release with defaults:
172178
version %q
173179
release-notes %q
174180
ensure-channel %t
181+
lint-release %t
175182
176-
`, r.args.createReleaseYamlDir, r.args.createReleasePromote, r.args.createReleasePromoteVersion, r.args.createReleasePromoteNotes, r.args.createReleasePromoteEnsureChannel)
183+
`, r.args.createReleaseYamlDir, r.args.createReleasePromote, r.args.createReleasePromoteVersion, r.args.createReleasePromoteNotes, r.args.createReleasePromoteEnsureChannel, r.args.createReleaseLint)
177184
if !r.args.createReleaseAutoDefaultsAccept {
178185
confirmed, err := promptForConfirm()
179186
if err != nil {
@@ -191,6 +198,17 @@ Prepared to create release with defaults:
191198
return errors.Wrap(err, "validate params")
192199
}
193200

201+
// Check if --lint argument has been passed in by the enduser
202+
if r.args.createReleaseLint {
203+
// Request lint release yaml directory to check
204+
r.args.lintReleaseYamlDir = r.args.createReleaseYamlDir
205+
// Call release_lint.go releaseLint function
206+
err := r.releaseLint(cmd, args)
207+
if err != nil {
208+
return errors.Wrap(err, "lint yaml")
209+
}
210+
}
211+
194212
if r.args.createReleaseYaml == "-" {
195213
bytes, err := ioutil.ReadAll(r.stdin)
196214
if err != nil {
@@ -300,6 +318,7 @@ func (r *runners) validateReleaseCreateParams() error {
300318
if r.args.createReleaseYaml != "" && r.appType == "kots" {
301319
return errors.Errorf("the --yaml flag is not supported for KOTS applications, use --yaml-dir instead")
302320
}
321+
303322
return nil
304323
}
305324

@@ -398,7 +417,7 @@ func promptForConfirm() (string, error) {
398417
}
399418

400419
prompt := promptui.Prompt{
401-
Label: "Create with these properties? [Y/n]",
420+
Label: "Create with these properties? (default Yes) [Y/n]",
402421
Templates: templates,
403422
Default: "y",
404423
Validate: func(input string) error {

cli/cmd/runner.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ type runnerArgs struct {
6060
createReleasePromoteNotes string
6161
createReleasePromoteVersion string
6262
createReleasePromoteEnsureChannel bool
63+
// Add Create Release Lint
64+
createReleaseLint bool
6365
lintReleaseYamlDir string
6466
lintReleaseFailOn string
6567
releaseOptional bool

0 commit comments

Comments
 (0)