From 746902d7a114b299f4ec137e63f2f4c0204bf4cb Mon Sep 17 00:00:00 2001 From: mtojek Date: Thu, 21 Jul 2022 11:48:10 +0200 Subject: [PATCH 1/2] Build command: skip package validation --- cmd/build.go | 1 + internal/builder/packages.go | 20 +++++++++++++++----- internal/cobraext/flags.go | 6 ++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/cmd/build.go b/cmd/build.go index 21220d77db..e6a8d94f19 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -37,6 +37,7 @@ func setupBuildCommand() *cobraext.Command { } cmd.Flags().Bool(cobraext.BuildZipFlagName, true, cobraext.BuildZipFlagDescription) cmd.Flags().Bool(cobraext.SignPackageFlagName, false, cobraext.SignPackageFlagDescription) + cmd.Flags().Bool(cobraext.BuildSkipValidationFlagName, false, cobraext.BuildSkipValidationFlagDescription) return cobraext.NewCommand(cmd, cobraext.ContextPackage) } diff --git a/internal/builder/packages.go b/internal/builder/packages.go index 7f34c48bfa..967bd8cd6a 100644 --- a/internal/builder/packages.go +++ b/internal/builder/packages.go @@ -23,8 +23,9 @@ const builtPackagesFolder = "packages" type BuildOptions struct { PackageRoot string - CreateZip bool - SignPackage bool + CreateZip bool + SignPackage bool + SkipValidation bool } // BuildDirectory function locates the target build directory. If the directory doesn't exist, it will create it. @@ -172,6 +173,11 @@ func BuildPackage(options BuildOptions) (string, error) { return buildZippedPackage(options, destinationDir) } + if options.SkipValidation { + logger.Debug("Skip validation of the built package") + return destinationDir, nil + } + err = validator.ValidateFromPath(destinationDir) if err != nil { return "", errors.Wrap(err, "invalid content found in built package") @@ -191,9 +197,13 @@ func buildZippedPackage(options BuildOptions, destinationDir string) (string, er return "", errors.Wrapf(err, "can't compress the built package (compressed file path: %s)", zippedPackagePath) } - err = validator.ValidateFromZip(zippedPackagePath) - if err != nil { - return "", errors.Wrapf(err, "invalid content found in built zip package") + if options.SkipValidation { + logger.Debug("Skip validation of the built .zip package") + } else { + err = validator.ValidateFromZip(zippedPackagePath) + if err != nil { + return "", errors.Wrapf(err, "invalid content found in built zip package") + } } if options.SignPackage { diff --git a/internal/cobraext/flags.go b/internal/cobraext/flags.go index 9a6aad5cfa..0fc600537b 100644 --- a/internal/cobraext/flags.go +++ b/internal/cobraext/flags.go @@ -26,8 +26,10 @@ const ( AgentPolicyFlagName = "agent-policy" AgentPolicyDescription = "name of the agent policy" - BuildZipFlagName = "zip" - BuildZipFlagDescription = "archive the built package" + BuildZipFlagName = "zip" + BuildZipFlagDescription = "archive the built package" + BuildSkipValidationFlagName = "skip-validation" + BuildSkipValidationFlagDescription = "skip validation of the built package, use only if all validation issues have been acknowledged" ChangelogAddNextFlagName = "next" ChangelogAddNextFlagDescription = "changelog entry is added in the next `major`, `minor` or `patch` version" From 1fd767f74ad43c33fe5035a83388f50da406807d Mon Sep 17 00:00:00 2001 From: mtojek Date: Thu, 21 Jul 2022 12:42:33 +0200 Subject: [PATCH 2/2] Fix: group and sort --- internal/cobraext/flags.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/cobraext/flags.go b/internal/cobraext/flags.go index 0fc600537b..abc1e1f0ed 100644 --- a/internal/cobraext/flags.go +++ b/internal/cobraext/flags.go @@ -26,11 +26,12 @@ const ( AgentPolicyFlagName = "agent-policy" AgentPolicyDescription = "name of the agent policy" - BuildZipFlagName = "zip" - BuildZipFlagDescription = "archive the built package" BuildSkipValidationFlagName = "skip-validation" BuildSkipValidationFlagDescription = "skip validation of the built package, use only if all validation issues have been acknowledged" + BuildZipFlagName = "zip" + BuildZipFlagDescription = "archive the built package" + ChangelogAddNextFlagName = "next" ChangelogAddNextFlagDescription = "changelog entry is added in the next `major`, `minor` or `patch` version"