Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 4 additions & 47 deletions artifactory/commands/python/poetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (

"github.com/jfrog/build-info-go/build"
"github.com/jfrog/build-info-go/entities"
"github.com/jfrog/build-info-go/flexpack"
"github.com/jfrog/build-info-go/utils/pythonutils"
gofrogcmd "github.com/jfrog/gofrog/io"
"github.com/jfrog/jfrog-cli-artifactory/artifactory/commands/python/dependencies"
Expand Down Expand Up @@ -110,37 +109,6 @@ func (pc *PoetryCommand) publish(buildConfiguration *buildUtils.BuildConfigurati
return err
}

// Get current working directory
workingDir, err := os.Getwd()
if err != nil {
return err
}

// Use FlexPack to collect dependencies with checksums
if buildName != "" && buildNumber != "" {
log.Info("Using native approach to collect Poetry dependencies...")

// Create FlexPack Poetry configuration
config := flexpack.PoetryConfig{
WorkingDirectory: workingDir,
}

// Create Poetry FlexPack instance
poetryFlex, err := flexpack.NewPoetryFlexPack(config)
if err != nil {
return fmt.Errorf("failed to create Poetry FlexPack: %w", err)
}

// Collect build info using FlexPack
flexBuildInfo, err := poetryFlex.CollectBuildInfo(buildName, buildNumber)
if err != nil {
return fmt.Errorf("failed to collect build info with FlexPack: %w", err)
}

// Save FlexPack build info to be picked up by rt bp
return pc.saveFlexPackBuildInfo(flexBuildInfo)
}

// Run the publish command to upload artifacts
pc.args = publishCmdArgs
err = gofrogcmd.RunCmd(pc)
Expand All @@ -150,27 +118,16 @@ func (pc *PoetryCommand) publish(buildConfiguration *buildUtils.BuildConfigurati

// After successful publish, collect artifacts information
if buildName != "" && buildNumber != "" {
workingDir, err := os.Getwd()
if err != nil {
return err
}
return pc.collectPublishedArtifacts(buildConfiguration, pythonBuildInfo, workingDir)
}

return nil
}

// saveFlexPackBuildInfo saves FlexPack build info for jfrog-cli rt bp compatibility
func (pc *PoetryCommand) saveFlexPackBuildInfo(buildInfo *entities.BuildInfo) error {
// Create build-info service
service := build.NewBuildInfoService()

// Create or get build
buildInstance, err := service.GetOrCreateBuildWithProject(buildInfo.Name, buildInfo.Number, "")
if err != nil {
return fmt.Errorf("failed to create build: %w", err)
}

// Save the complete build info (this will be loaded by rt bp)
return buildInstance.SaveBuildInfo(buildInfo)
}

// collectPublishedArtifacts collects information about artifacts that were published
func (pc *PoetryCommand) collectPublishedArtifacts(buildConfiguration *buildUtils.BuildConfiguration, pythonBuildInfo *build.Build, workingDir string) error {
// Get the build directory from pyproject.toml configuration or use default
Expand Down
Loading