From f867794b33fc9216b15b34b7982eb3521839ffed Mon Sep 17 00:00:00 2001 From: Nicolas Guibourge Date: Tue, 13 Oct 2020 10:41:22 -0700 Subject: [PATCH] enable fetching RPMs from pacakges.microsoft.com for Docker based build --- .../repocloner/rpmrepocloner/rpmrepocloner.go | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/toolkit/tools/internal/packagerepo/repocloner/rpmrepocloner/rpmrepocloner.go b/toolkit/tools/internal/packagerepo/repocloner/rpmrepocloner/rpmrepocloner.go index 0a421ea7baf..9c5fa71709c 100644 --- a/toolkit/tools/internal/packagerepo/repocloner/rpmrepocloner/rpmrepocloner.go +++ b/toolkit/tools/internal/packagerepo/repocloner/rpmrepocloner/rpmrepocloner.go @@ -26,6 +26,7 @@ const ( leaveChrootFilesOnDisk = false updateRepoID = "mariner-official-update" fetcherRepoID = "fetcher-cloned-repo" + cacheRepoDir = "/upstream-cached-rpms" ) var ( @@ -333,14 +334,31 @@ func (r *RpmRepoCloner) SearchAndClone(cloneDeps bool, singlePackageToClone *pkg // ConvertDownloadedPackagesIntoRepo initializes the downloaded RPMs into an RPM repository. func (r *RpmRepoCloner) ConvertDownloadedPackagesIntoRepo() (err error) { - fullRpmDownloadDir := buildpipeline.GetRpmsDir(r.chroot.RootDir(), chrootDownloadDir) + srcDir := filepath.Join(r.chroot.RootDir(), chrootDownloadDir) + repoDir := srcDir - err = rpmrepomanager.OrganizePackagesByArch(fullRpmDownloadDir, fullRpmDownloadDir) + if !buildpipeline.IsRegularBuild() { + // Docker based build don't use overlay so repo folder + // must be explicitely set to the RPMs cache folder + repoDir = filepath.Join(r.chroot.RootDir(), cacheRepoDir) + } + + err = rpmrepomanager.OrganizePackagesByArch(srcDir, repoDir) if err != nil { return } err = r.initializeMountedChrootRepo(chrootDownloadDir) + if err != nil { + return + } + + if !buildpipeline.IsRegularBuild() { + // Docker based build don't use overlay so cache repo + // must be explicitely initialized + err = r.initializeMountedChrootRepo(cacheRepoDir) + } + return }