Skip to content

Commit c6dc7b3

Browse files
committed
added test cases
1 parent 4116e7f commit c6dc7b3

File tree

6 files changed

+721
-22
lines changed

6 files changed

+721
-22
lines changed

buildtools/cli.go

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/jfrog/jfrog-cli-artifactory/artifactory/commands/container/strategies"
1515
"github.com/jfrog/jfrog-cli-artifactory/artifactory/commands/python"
1616
"github.com/jfrog/jfrog-cli-artifactory/artifactory/commands/setup"
17+
artutils "github.com/jfrog/jfrog-cli-artifactory/artifactory/utils"
1718
"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
1819
"github.com/jfrog/jfrog-cli-core/v2/utils/ioutils"
1920
"github.com/jfrog/jfrog-cli-security/utils/techutils"
@@ -558,8 +559,13 @@ func MvnCmd(c *cli.Context) (err error) {
558559
return err
559560
}
560561

561-
// FlexPack bypasses all config file requirements
562-
if os.Getenv("JFROG_RUN_NATIVE") == "true" {
562+
configFilePath, configExists, err := project.GetProjectConfFilePath(project.Maven)
563+
if err != nil {
564+
return err
565+
}
566+
567+
// FlexPack bypasses all config file requirements (only when no config exists)
568+
if artutils.ShouldRunNative(configFilePath) && !configExists {
563569
log.Debug("Routing to Maven native implementation")
564570
// Extract build configuration for FlexPack
565571
args := cliutils.ExtractCommand(c)
@@ -572,9 +578,11 @@ func MvnCmd(c *cli.Context) (err error) {
572578
return commands.Exec(mvnCmd)
573579
}
574580

575-
configFilePath, err := getProjectConfigPathOrThrow(project.Maven, "mvn", "mvn-config")
576-
if err != nil {
577-
return err
581+
// If config file is missing and not in native mode, return the standard missing-config error.
582+
if !configExists {
583+
if configFilePath, err = getProjectConfigPathOrThrow(project.Maven, "mvn", "mvn-config"); err != nil {
584+
return err
585+
}
578586
}
579587

580588
if c.NArg() < 1 {
@@ -629,11 +637,35 @@ func GradleCmd(c *cli.Context) (err error) {
629637
return err
630638
}
631639

632-
nativeMode := os.Getenv("JFROG_RUN_NATIVE") == "true"
640+
resolveServer := func(args []string) ([]string, *coreConfig.ServerDetails, error) {
641+
cleanedArgs, serverID, err := coreutils.ExtractServerIdFromCommand(args)
642+
if err != nil {
643+
return nil, nil, fmt.Errorf("failed to extract server ID: %w", err)
644+
}
645+
646+
if serverID == "" {
647+
serverDetails, err := coreConfig.GetDefaultServerConf()
648+
if err != nil {
649+
return cleanedArgs, nil, err
650+
}
651+
if serverDetails == nil {
652+
return cleanedArgs, nil, fmt.Errorf("no default server configuration found. Please configure a server using 'jfrog config add' or specify a server using --server-id")
653+
}
654+
return cleanedArgs, serverDetails, nil
655+
}
656+
657+
serverDetails, err := coreConfig.GetSpecificConfig(serverID, true, true)
658+
if err != nil {
659+
return nil, nil, fmt.Errorf("failed to get server configuration for ID '%s': %w", serverID, err)
660+
}
661+
return cleanedArgs, serverDetails, nil
662+
}
663+
633664
configFilePath, configExists, err := project.GetProjectConfFilePath(project.Gradle)
634665
if err != nil {
635666
return err
636667
}
668+
nativeMode := artutils.ShouldRunNative(configFilePath)
637669

638670
// FlexPack native mode for Gradle (bypasses config file requirements)
639671
if nativeMode && !configExists {
@@ -642,13 +674,17 @@ func GradleCmd(c *cli.Context) (err error) {
642674
return cliutils.WrongNumberOfArgumentsHandler(c)
643675
}
644676
args := cliutils.ExtractCommand(c)
677+
args, serverDetails, err := resolveServer(args)
678+
if err != nil {
679+
return err
680+
}
645681
filteredGradleArgs, buildConfiguration, err := build.ExtractBuildDetailsFromArgs(args)
646682
if err != nil {
647683
return err
648684
}
649685

650686
// Create Gradle command with FlexPack (no config file needed)
651-
gradleCmd := gradle.NewGradleCommand().SetConfiguration(buildConfiguration).SetTasks(filteredGradleArgs).SetConfigPath("")
687+
gradleCmd := gradle.NewGradleCommand().SetConfiguration(buildConfiguration).SetTasks(filteredGradleArgs).SetConfigPath("").SetServerDetails(serverDetails)
652688
return commands.Exec(gradleCmd)
653689
}
654690

@@ -664,6 +700,10 @@ func GradleCmd(c *cli.Context) (err error) {
664700
return cliutils.WrongNumberOfArgumentsHandler(c)
665701
}
666702
args := cliutils.ExtractCommand(c)
703+
args, serverDetails, err := resolveServer(args)
704+
if err != nil {
705+
return err
706+
}
667707
filteredGradleArgs, buildConfiguration, err := build.ExtractBuildDetailsFromArgs(args)
668708
if err != nil {
669709
return err
@@ -695,7 +735,7 @@ func GradleCmd(c *cli.Context) (err error) {
695735
return err
696736
}
697737
printDeploymentView := log.IsStdErrTerminal()
698-
gradleCmd := gradle.NewGradleCommand().SetConfiguration(buildConfiguration).SetTasks(filteredGradleArgs).SetConfigPath(configFilePath).SetThreads(threads).SetDetailedSummary(detailedSummary || printDeploymentView).SetXrayScan(xrayScan).SetScanOutputFormat(scanOutputFormat)
738+
gradleCmd := gradle.NewGradleCommand().SetConfiguration(buildConfiguration).SetTasks(filteredGradleArgs).SetConfigPath(configFilePath).SetThreads(threads).SetDetailedSummary(detailedSummary || printDeploymentView).SetXrayScan(xrayScan).SetScanOutputFormat(scanOutputFormat).SetServerDetails(serverDetails)
699739
err = commands.Exec(gradleCmd)
700740
result := gradleCmd.Result()
701741
defer cliutils.CleanupResult(result, &err)
@@ -1533,7 +1573,7 @@ func pythonCmd(c *cli.Context, projectType project.ProjectType) error {
15331573
}
15341574

15351575
// FlexPack native mode for Poetry (bypasses config file requirements)
1536-
if os.Getenv("JFROG_RUN_NATIVE") == "true" && projectType == project.Poetry {
1576+
if artutils.ShouldRunNative("") && projectType == project.Poetry {
15371577
log.Debug("Routing to Poetry native implementation")
15381578
args := cliutils.ExtractCommand(c)
15391579
filteredArgs, buildConfiguration, err := build.ExtractBuildDetailsFromArgs(args)

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,9 @@ replace github.com/docker/docker => github.com/docker/docker v27.5.1+incompatibl
283283
replace github.com/gfleury/go-bitbucket-v1 => github.com/gfleury/go-bitbucket-v1 v0.0.0-20230825095122-9bc1711434ab
284284

285285
//replace github.com/jfrog/jfrog-cli-artifactory => github.com/naveenku-jfrog/jfrog-cli-artifactory v0.0.0-20251210184507-0c8d138690cb
286-
replace github.com/jfrog/jfrog-cli-artifactory => github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251212113004-4a4f4196e21a
286+
replace github.com/jfrog/jfrog-cli-artifactory => github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251217164045-f03027bdbbb8
287287

288-
replace github.com/jfrog/build-info-go => github.com/nitinp19/build-info-go v1.12.3-0.20251212112339-30e97816d426
288+
replace github.com/jfrog/build-info-go => github.com/nitinp19/build-info-go v1.12.3-0.20251217110410-139203aa7c26
289289

290290
// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/reshmifrog/jfrog-cli-core/v2 v2.58.5-0.20251110095124-ab9a4102ec5a
291291

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,10 +1323,10 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
13231323
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
13241324
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
13251325
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
1326-
github.com/nitinp19/build-info-go v1.12.3-0.20251212112339-30e97816d426 h1:HLDoHZLF1joioZV+A9NmffItJ7s34lmywFkBnbymKMs=
1327-
github.com/nitinp19/build-info-go v1.12.3-0.20251212112339-30e97816d426/go.mod h1:9W4U440fdTHwW1HiB/R0VQvz/5q8ZHsms9MWcq+JrdY=
1328-
github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251212113004-4a4f4196e21a h1:Z5CUCSaTbCwrU5cX3CdzL5S5whIJhmEYCfal/o/a8ZI=
1329-
github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251212113004-4a4f4196e21a/go.mod h1:APAsovKmrZC7fFw0IABhPoeZr73bpvxNhK1hr27S/FI=
1326+
github.com/nitinp19/build-info-go v1.12.3-0.20251217110410-139203aa7c26 h1:1n+hPJGWJ8KDJsjeCbs3ob3b3S2E+6QzBAXT3mLShJQ=
1327+
github.com/nitinp19/build-info-go v1.12.3-0.20251217110410-139203aa7c26/go.mod h1:9W4U440fdTHwW1HiB/R0VQvz/5q8ZHsms9MWcq+JrdY=
1328+
github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251217164045-f03027bdbbb8 h1:7JGcT/xGaPeOKTeY5ZGovVjx8MSeWyUFuhIhXYA4OSA=
1329+
github.com/nitinp19/jfrog-cli-artifactory v0.0.0-20251217164045-f03027bdbbb8/go.mod h1:1z7CuujOoLOFhHzumSfs0epvxoSyDFqJlrmZJPv/IX0=
13301330
github.com/nwaples/rardecode v1.1.3 h1:cWCaZwfM5H7nAD6PyEdcVnczzV8i/JtotnyW/dD9lEc=
13311331
github.com/nwaples/rardecode v1.1.3/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
13321332
github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=

0 commit comments

Comments
 (0)