@ Override public RepositoryManagerResult extractBuildArtifacts ( ) throws RepositoryManagerException { TrackedContentDTO report ; try { IndyFoloAdminClientModule foloAdmin = indy . module ( IndyFoloAdminClientModule . class ) ; boolean sealed = foloAdmin . sealTrackingRecord ( buildContentId ) ; if ( ! sealed ) { throw new RepositoryManagerException ( "Failed to seal content-tracking record for: %s." , buildContentId ) ; } report = foloAdmin . getTrackingReport ( buildContentId ) ; } catch ( IndyClientException e ) { throw new RepositoryManagerException ( "Failed to retrieve tracking report for: %s. Reason: %s" , e , buildContentId , e . getMessage ( ) ) ; } if ( report == null ) { throw new RepositoryManagerException ( "Failed to retrieve tracking report for: %s." , buildContentId ) ; } Comparator < Artifact > comp = ( one , two ) -> one . getIdentifier ( ) . compareTo ( two . getIdentifier ( ) ) ; List < Artifact > uploads = processUploads ( report ) ; Collections . sort ( uploads , comp ) ; List < Artifact > downloads = processDownloads ( report ) ; Collections . sort ( downloads , comp ) ; try { StoreKey key = new StoreKey ( packageType , StoreType . group , buildContentId ) ; serviceAccountIndy . stores ( ) . delete ( key , "[Post-Build] Removing build aggregation group: " + buildContentId ) ; } catch ( IndyClientException e ) { throw new RepositoryManagerException ( "Failed to retrieve Indy stores module. Reason: %s" , e , e . getMessage ( ) ) ; } Logger logger = LoggerFactory . getLogger ( getClass ( ) ) ; logger . info ( "Returning built artifacts / dependencies:\nUploads:\n {}\n\nDownloads:\n {}\n\n" , StringUtils . join ( uploads , "\n " ) , StringUtils . join ( downloads , "\n " ) ) ; String log = "" ; CompletionStatus status = CompletionStatus . SUCCESS ; try { promoteToBuildContentSet ( uploads ) ; } catch ( RepositoryManagerException rme ) { status = CompletionStatus . FAILED ; log = rme . getMessage ( ) ; logger . error ( "Promotion validation error(s): \n" + log ) ; userLog . error ( "Artifact promotion failed. Promotion validation error(s): {}" , log ) ; // prevent saving artifacts and dependencies to a failed build downloads = Collections . emptyList ( ) ; uploads = Collections . emptyList ( ) ; } return new IndyRepositoryManagerResult ( uploads , downloads , buildContentId , log , status ) ; }
Retrieve tracking report from repository manager . Add each tracked download to the dependencies of the build result . Add each tracked upload to the built artifacts of the build result . Promote uploaded artifacts to the product - level storage . Finally clear the tracking report and delete the hosted repository + group associated with the completed build .