Skip to content

Commit 2a57b4b

Browse files
fix: rename ambiguous --skip-build to --require-built-images (#5619)
- hide skip-build flag, print warning when --skip-build is used Signed-off-by: Ivan Mikheykin <ivan.mikheykin@flant.com> Co-authored-by: Aleksei Igrychev <alexey.igrychev@flant.com>
1 parent fbd44ce commit 2a57b4b

File tree

30 files changed

+114
-73
lines changed

30 files changed

+114
-73
lines changed

cmd/werf/bundle/export/export.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ func NewCmd(ctx context.Context) *cobra.Command {
139139
common.SetupParallelOptions(&commonCmdData, cmd, common.DefaultBuildParallelTasksLimit)
140140

141141
common.SetupSkipBuild(&commonCmdData, cmd)
142+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
142143
commonCmdData.SetupPlatform(cmd)
143144

144145
common.SetupDisableAutoHostCleanup(&commonCmdData, cmd)
@@ -296,7 +297,7 @@ func runExport(ctx context.Context, imagesToProcess build.ImagesToProcess) error
296297
defer conveyorWithRetry.Terminate()
297298

298299
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
299-
if *commonCmdData.SkipBuild {
300+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
300301
shouldBeBuiltOptions, err := common.GetShouldBeBuiltOptions(&commonCmdData, giterminismManager, werfConfig)
301302
if err != nil {
302303
return err

cmd/werf/bundle/publish/publish.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ func NewCmd(ctx context.Context) *cobra.Command {
137137
common.SetupDockerServerStoragePath(&commonCmdData, cmd)
138138

139139
common.SetupSkipBuild(&commonCmdData, cmd)
140+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
140141
commonCmdData.SetupPlatform(cmd)
141142

142143
commonCmdData.SetupHelmCompatibleChart(cmd, false)
@@ -302,7 +303,7 @@ func runPublish(ctx context.Context, imagesToProcess build.ImagesToProcess) erro
302303
defer conveyorWithRetry.Terminate()
303304

304305
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
305-
if *commonCmdData.SkipBuild {
306+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
306307
shouldBeBuiltOptions, err := common.GetShouldBeBuiltOptions(&commonCmdData, giterminismManager, werfConfig)
307308
if err != nil {
308309
return err

cmd/werf/common/cmd_data.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ type CmdData struct {
5454
SecondaryStagesStorage *[]string
5555
CacheStagesStorage *[]string
5656

57-
SkipBuild *bool
58-
StubTags *bool
57+
SkipBuild *bool
58+
RequireBuiltImages *bool
59+
StubTags *bool
5960

6061
AddCustomTag *[]string
6162
UseCustomTag *string

cmd/werf/common/common.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -800,9 +800,19 @@ IMAGE_NAME is the name of an image or artifact described in werf.yaml, the namel
800800
STAGE_NAME should be one of the following: `+strings.Join(allStagesNames(), ", "))
801801
}
802802

803+
// SetupSkipBuild
804+
// Deprecated. See [SetupRequireBuiltImages].
803805
func SetupSkipBuild(cmdData *CmdData, cmd *cobra.Command) {
804806
cmdData.SkipBuild = new(bool)
805-
cmd.Flags().BoolVarP(cmdData.SkipBuild, "skip-build", "Z", util.GetBoolEnvironmentDefaultFalse("WERF_SKIP_BUILD"), "Disable building of docker images, cached images in the repo should exist in the repo if werf.yaml contains at least one image description (default $WERF_SKIP_BUILD)")
807+
cmd.Flags().BoolVarP(cmdData.SkipBuild, "skip-build", "", util.GetBoolEnvironmentDefaultFalse("WERF_SKIP_BUILD"), "DEPRECATED: use --require-built-images.")
808+
_ = cmd.Flags().MarkHidden("skip-build")
809+
}
810+
811+
// SetupRequireBuiltImages adds --require-built-images flag.
812+
// See also [quireBuiltImages].
813+
func SetupRequireBuiltImages(cmdData *CmdData, cmd *cobra.Command) {
814+
cmdData.RequireBuiltImages = new(bool)
815+
cmd.Flags().BoolVarP(cmdData.RequireBuiltImages, "require-built-images", "Z", util.GetBoolEnvironmentDefaultFalse("WERF_REQUIRE_BUILT_IMAGES"), "Requires all used images to be previously built and exist in repo. Exits with error if needed images are not cached and so require to run build instructions (default $WERF_REQUIRE_BUILT_IMAGES)")
806816
}
807817

808818
func SetupStubTags(cmdData *CmdData, cmd *cobra.Command) {
@@ -1166,6 +1176,20 @@ func GetOptionalRelease(cmdData *CmdData) string {
11661176
return *cmdData.Release
11671177
}
11681178

1179+
// GetRequireBuiltImages returns true if --require-built-images is set or --skip-build is set.
1180+
// There is no way to determine if both options are used, so no warning.
1181+
func GetRequireBuiltImages(ctx context.Context, cmdData *CmdData) bool {
1182+
if cmdData.RequireBuiltImages != nil && *cmdData.RequireBuiltImages {
1183+
return true
1184+
}
1185+
// Support for deprecated option.
1186+
if cmdData.SkipBuild != nil && *cmdData.SkipBuild {
1187+
logboek.Context(ctx).Warn().LogF("DEPRECATED: use --require-built-images ($WERF_REQUIRE_BUILT_IMAGES) instead of --skip-build\n")
1188+
return true
1189+
}
1190+
return false
1191+
}
1192+
11691193
func GetIntrospectOptions(cmdData *CmdData, werfConfig *config.WerfConfig) (build.IntrospectOptions, error) {
11701194
isStageExist := func(sName string) bool {
11711195
for _, stageName := range allStagesNames() {

cmd/werf/compose/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ func newCmd(ctx context.Context, composeCmdName string, options *newCmdOptions)
193193
common.SetupFinalRepo(&commonCmdData, cmd)
194194

195195
common.SetupSkipBuild(&commonCmdData, cmd)
196+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
196197

197198
if options.FollowSupport {
198199
common.SetupFollow(&commonCmdData, cmd)
@@ -408,7 +409,7 @@ func run(ctx context.Context, containerBackend container_backend.ContainerBacken
408409
defer conveyorWithRetry.Terminate()
409410

410411
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
411-
if *commonCmdData.SkipBuild {
412+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
412413
if err := c.ShouldBeBuilt(ctx, build.ShouldBeBuiltOptions{}); err != nil {
413414
return err
414415
}

cmd/werf/converge/converge.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ werf converge --repo registry.mydomain.com/web --env production`,
173173

174174
common.SetupParallelOptions(&commonCmdData, cmd, common.DefaultBuildParallelTasksLimit)
175175
common.SetupSkipBuild(&commonCmdData, cmd)
176+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
176177
commonCmdData.SetupPlatform(cmd)
177178
common.SetupFollow(&commonCmdData, cmd)
178179

@@ -344,7 +345,7 @@ func run(ctx context.Context, containerBackend container_backend.ContainerBacken
344345
defer conveyorWithRetry.Terminate()
345346

346347
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
347-
if *commonCmdData.SkipBuild {
348+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
348349
shouldBeBuiltOptions, err := common.GetShouldBeBuiltOptions(&commonCmdData, giterminismManager, werfConfig)
349350
if err != nil {
350351
return err

cmd/werf/export/export.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ func NewExportCmd(ctx context.Context) *cobra.Command {
104104
common.SetupFinalRepo(&commonCmdData, cmd)
105105

106106
common.SetupSkipBuild(&commonCmdData, cmd)
107+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
107108

108109
common.SetupDockerConfig(&commonCmdData, cmd, "Command needs granted permissions to read and pull images from the specified repo")
109110
common.SetupInsecureRegistry(&commonCmdData, cmd)
@@ -265,7 +266,7 @@ func run(ctx context.Context, imagesToProcess build.ImagesToProcess, tagTemplate
265266
return c.Export(ctx, build.ExportOptions{
266267
BuildPhaseOptions: build.BuildPhaseOptions{
267268
BuildOptions: build.BuildOptions{SkipImageMetadataPublication: *commonCmdData.Dev},
268-
ShouldBeBuiltMode: *commonCmdData.SkipBuild,
269+
ShouldBeBuiltMode: common.GetRequireBuiltImages(ctx, &commonCmdData),
269270
},
270271
ExportPhaseOptions: build.ExportPhaseOptions{
271272
ExportImageNameList: imageNameList,

cmd/werf/kube_run/kube_run.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ func NewCmd(ctx context.Context) *cobra.Command {
171171
common.SetupFinalRepo(&commonCmdData, cmd)
172172

173173
common.SetupSkipBuild(&commonCmdData, cmd)
174+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
174175

175176
common.SetupFollow(&commonCmdData, cmd)
176177

@@ -406,7 +407,7 @@ func run(ctx context.Context, pod, secret, namespace string, werfConfig *config.
406407

407408
var image string
408409
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
409-
if *commonCmdData.SkipBuild {
410+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
410411
if err := c.ShouldBeBuilt(ctx, build.ShouldBeBuiltOptions{}); err != nil {
411412
return err
412413
}

cmd/werf/render/render.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ func NewCmd(ctx context.Context) *cobra.Command {
148148
common.SetupParallelOptions(&commonCmdData, cmd, common.DefaultBuildParallelTasksLimit)
149149

150150
common.SetupSkipBuild(&commonCmdData, cmd)
151+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
151152
commonCmdData.SetupPlatform(cmd)
152153

153154
cmd.Flags().BoolVarP(&cmdData.Validate, "validate", "", util.GetBoolEnvironmentDefaultFalse("WERF_VALIDATE"), "Validate your manifests against the Kubernetes cluster you are currently pointing at (default $WERF_VALIDATE)")
@@ -321,7 +322,7 @@ func runRender(ctx context.Context, imagesToProcess build.ImagesToProcess) error
321322

322323
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
323324
buildFunc := func(ctx context.Context) error {
324-
if *commonCmdData.SkipBuild {
325+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
325326
shouldBeBuiltOptions, err := common.GetShouldBeBuiltOptions(&commonCmdData, giterminismManager, werfConfig)
326327
if err != nil {
327328
return err

cmd/werf/run/run.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ func NewCmd(ctx context.Context) *cobra.Command {
132132
common.SetupFinalRepo(&commonCmdData, cmd)
133133

134134
common.SetupSkipBuild(&commonCmdData, cmd)
135+
common.SetupRequireBuiltImages(&commonCmdData, cmd)
135136

136137
common.SetupFollow(&commonCmdData, cmd)
137138

@@ -392,7 +393,7 @@ func run(ctx context.Context, containerBackend container_backend.ContainerBacken
392393

393394
var dockerImageName string
394395
if err := conveyorWithRetry.WithRetryBlock(ctx, func(c *build.Conveyor) error {
395-
if *commonCmdData.SkipBuild {
396+
if common.GetRequireBuiltImages(ctx, &commonCmdData) {
396397
if err := c.ShouldBeBuilt(ctx, build.ShouldBeBuiltOptions{}); err != nil {
397398
return err
398399
}

0 commit comments

Comments
 (0)