crucible build parity (#14)
forces build parity with crucible = local builds and CI/CD builds use different tools. Reviewed-on: #14 Co-authored-by: vickydotbat <vickydotbat@tutamail.com> Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
This commit was merged in pull request #14.
This commit is contained in:
+28
-11
@@ -1620,16 +1620,20 @@ func runBuildTopData(ctx context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
opts, err := parseBuildTopDataArgs("build-topdata", ctx.args[1:])
|
||||
parsed, err := parseBuildTopDataArgs("build-topdata", ctx.args[1:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if parsed.skipLFS {
|
||||
os.Setenv("CRUCIBLE_SKIP_LFS", "1") //nolint:errcheck
|
||||
}
|
||||
|
||||
console := newTopdataConsole(ctx, p, "build-topdata")
|
||||
spin.configure(ctx.stderr, console.spinnerEnabled)
|
||||
spin.start("Build Topdata: starting")
|
||||
defer spin.stop()
|
||||
result, err := topdata.BuildAndPackageWithOptions(p, opts, console.progress)
|
||||
result, err := topdata.BuildAndPackageWithOptions(p, parsed.opts, console.progress)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1644,15 +1648,19 @@ func runBuildTopPackage(ctx context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
opts, err := parseBuildTopDataArgs("build-top-package", ctx.args[1:])
|
||||
parsed, err := parseBuildTopDataArgs("build-top-package", ctx.args[1:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if opts.BuildWiki {
|
||||
if parsed.opts.BuildWiki {
|
||||
return fmt.Errorf("--wiki is not supported with build-top-package; use build-topdata when wiki generation is required")
|
||||
}
|
||||
|
||||
if parsed.skipLFS {
|
||||
os.Setenv("CRUCIBLE_SKIP_LFS", "1") //nolint:errcheck
|
||||
}
|
||||
|
||||
console := newTopdataConsole(ctx, p, "build-top-package")
|
||||
spin.configure(ctx.stderr, console.spinnerEnabled)
|
||||
spin.start("Build Top Package: starting")
|
||||
@@ -1666,21 +1674,30 @@ func runBuildTopPackage(ctx context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func parseBuildTopDataArgs(commandName string, args []string) (topdata.BuildAndPackageOptions, error) {
|
||||
opts := topdata.BuildAndPackageOptions{}
|
||||
type buildTopDataArgs struct {
|
||||
opts topdata.BuildAndPackageOptions
|
||||
skipLFS bool
|
||||
}
|
||||
|
||||
func parseBuildTopDataArgs(commandName string, args []string) (buildTopDataArgs, error) {
|
||||
var parsed buildTopDataArgs
|
||||
for _, arg := range args {
|
||||
switch arg {
|
||||
case "--force":
|
||||
opts.Force = true
|
||||
parsed.opts.Force = true
|
||||
case "--wiki":
|
||||
opts.BuildWiki = true
|
||||
parsed.opts.BuildWiki = true
|
||||
case "--skip-lfs":
|
||||
// ponytail: CRUCIBLE_SKIP_LFS env is the single skip mechanism; set it at
|
||||
// the CLI entry point rather than carrying a dead field through BuildAndPackageOptions.
|
||||
parsed.skipLFS = true
|
||||
case "-h", "--help":
|
||||
return opts, fmt.Errorf("usage: %s [--force] [--wiki]", commandName)
|
||||
return parsed, fmt.Errorf("usage: %s [--force] [--wiki] [--skip-lfs]", commandName)
|
||||
default:
|
||||
return opts, fmt.Errorf("unknown %s argument %q", commandName, arg)
|
||||
return parsed, fmt.Errorf("unknown %s argument %q", commandName, arg)
|
||||
}
|
||||
}
|
||||
return opts, nil
|
||||
return parsed, nil
|
||||
}
|
||||
|
||||
func runCompareTopData(ctx context) error {
|
||||
|
||||
Reference in New Issue
Block a user