diff --git a/go.mod b/go.mod index fb1934190..83bc6d5a2 100644 --- a/go.mod +++ b/go.mod @@ -56,6 +56,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) + // replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v0.0.0-20241201000000-COMMIT_HASH // replace github.com/jfrog/gofrog => github.com/jfrog/gofrog v1.7.6-0.20240909061051-2d36ae4bd05a diff --git a/lifecycle/manager.go b/lifecycle/manager.go index f7012201d..3ef8dc51a 100644 --- a/lifecycle/manager.go +++ b/lifecycle/manager.go @@ -147,6 +147,11 @@ func (lcs *LifecycleServicesManager) ExportReleaseBundle(rbDetails lifecycle.Rel return rbService.ExportReleaseBundle(rbDetails, modifications, queryParams) } +func (lcs *LifecycleServicesManager) ExportReleaseBundleOnly(rbDetails lifecycle.ReleaseBundleDetails, modifications lifecycle.Modifications, queryParams lifecycle.CommonOptionalQueryParams) (exportResponse lifecycle.ReleaseBundleExportedStatusResponse, err error) { + rbService := lifecycle.NewReleaseBundlesService(lcs.config.GetServiceDetails(), lcs.client) + return rbService.ExportReleaseBundleOnly(rbDetails, modifications, queryParams) +} + func (lcs *LifecycleServicesManager) IsReleaseBundleExist(rbName, rbVersion, projectKey string) (bool, error) { rbService := lifecycle.NewReleaseBundlesService(lcs.config.GetServiceDetails(), lcs.client) return rbService.ReleaseBundleExists(rbName, rbVersion, projectKey) diff --git a/lifecycle/services/export.go b/lifecycle/services/export.go index 1d98dd0a9..42f3e2747 100644 --- a/lifecycle/services/export.go +++ b/lifecycle/services/export.go @@ -93,6 +93,23 @@ func (rbs *ReleaseBundlesService) ExportReleaseBundle(rbDetails ReleaseBundleDet return } +func (rbs *ReleaseBundlesService) ExportReleaseBundleOnly(rbDetails ReleaseBundleDetails, modifications Modifications, queryParams CommonOptionalQueryParams) (exportResponse ReleaseBundleExportedStatusResponse, err error) { + // Check the current status + if exportResponse, err = rbs.getExportedReleaseBundleStatus(rbDetails, queryParams); err != nil { + return + } + if exportResponse.Status == ExportCompleted { + return + } + // Trigger export only, don't wait for completion + if err = rbs.triggerReleaseBundleExportProcess(rbDetails, modifications, queryParams); err != nil { + return + } + // Return current status after triggering export + exportResponse, err = rbs.getExportedReleaseBundleStatus(rbDetails, queryParams) + return +} + func (rbs *ReleaseBundlesService) waitForExport(rbDetails ReleaseBundleDetails, queryParams CommonOptionalQueryParams) (response ReleaseBundleExportedStatusResponse, err error) { pollingAction := func() (shouldStop bool, responseBody []byte, err error) { response, err = rbs.getExportedReleaseBundleStatus(rbDetails, queryParams)