mirror of
https://github.com/Jguer/yay.git
synced 2025-10-04 00:03:11 -04:00
fix(installer): Fix the same pkgbase being built multiple times on error (#2561)
fix(installer): Fixes the same pkgbase being built multiple times on error The previous fix commit ec837c8 failed to address the case where the build fails, as packages are only added to builtPkgDests on a successful build. This commit addresses this by adding the package to the map earlier. Fixes #2560.
This commit is contained in:
parent
ff176c0dd2
commit
95fc0938fd
@ -240,6 +240,7 @@ func (installer *Installer) installAURPackages(ctx context.Context,
|
|||||||
installer.log.Debugln("building pkgbase", base, "package", name)
|
installer.log.Debugln("building pkgbase", base, "package", name)
|
||||||
pkgdests, errMake = installer.buildPkg(ctx, dir, base,
|
pkgdests, errMake = installer.buildPkg(ctx, dir, base,
|
||||||
installIncompatible, cmdArgs.ExistsArg("needed"), aurOrigTargetBases.Contains(base))
|
installIncompatible, cmdArgs.ExistsArg("needed"), aurOrigTargetBases.Contains(base))
|
||||||
|
builtPkgDests[base] = pkgdests
|
||||||
if errMake != nil {
|
if errMake != nil {
|
||||||
if !lastLayer {
|
if !lastLayer {
|
||||||
return fmt.Errorf("%s - %w", gotext.Get("error making: %s", base), errMake)
|
return fmt.Errorf("%s - %w", gotext.Get("error making: %s", base), errMake)
|
||||||
@ -249,8 +250,6 @@ func (installer *Installer) installAURPackages(ctx context.Context,
|
|||||||
installer.log.Errorln(gotext.Get("error making: %s", base), "-", errMake)
|
installer.log.Errorln(gotext.Get("error making: %s", base), "-", errMake)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
builtPkgDests[base] = pkgdests
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(pkgdests) == 0 {
|
if len(pkgdests) == 0 {
|
||||||
|
@ -612,8 +612,18 @@ func TestInstaller_CompileFailed(t *testing.T) {
|
|||||||
failed, err := installer.CompileFailedAndIgnored()
|
failed, err := installer.CompileFailedAndIgnored()
|
||||||
if tc.wantErrCompile {
|
if tc.wantErrCompile {
|
||||||
require.Error(td, err)
|
require.Error(td, err)
|
||||||
assert.ErrorContains(td, err, "yay")
|
for key := range failed {
|
||||||
assert.Len(t, failed, len(tc.targets))
|
assert.ErrorContains(td, err, key)
|
||||||
|
}
|
||||||
|
uniqueBases := make(map[string]struct{})
|
||||||
|
for _, layer := range tc.targets {
|
||||||
|
for _, info := range layer {
|
||||||
|
if info.AURBase != nil {
|
||||||
|
uniqueBases[*info.AURBase] = struct{}{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require.Len(td, failed, len(uniqueBases))
|
||||||
} else {
|
} else {
|
||||||
require.NoError(td, err)
|
require.NoError(td, err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user