Resolve committed module identity from Git objects
This commit is contained in:
@@ -52,7 +52,7 @@ func run(ctx context.Context, args []string, stdout, stderr io.Writer) int {
|
||||
}
|
||||
request := candidateRequest(invocation, settings, stderr)
|
||||
if invocation.Command == cli.PublishAction {
|
||||
if err := checkExpectedModule(invocation.Repository, invocation.ExpectedModule, settings.ModuleDir); err != nil {
|
||||
if err := checkExpectedModule(ctx, invocation.Repository, invocation.ExpectedModule, settings.ModuleDir); err != nil {
|
||||
fmt.Fprintf(stderr, "profile module selection: %v\n", err)
|
||||
return 2
|
||||
}
|
||||
@@ -220,15 +220,19 @@ func candidateFailureText(err error) string {
|
||||
return err.Error()
|
||||
}
|
||||
|
||||
func checkExpectedModule(repositoryDir, expectedModule, profileModule string) error {
|
||||
func checkExpectedModule(ctx context.Context, repositoryDir, expectedModule, profileModule string) error {
|
||||
if expectedModule == "" {
|
||||
return nil
|
||||
}
|
||||
expected, err := releaseidentity.ResolveSelection(repositoryDir, expectedModule)
|
||||
commit, err := git.CaptureHead(ctx, repositoryDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
expected, err := releaseidentity.ResolveCommittedSelection(ctx, repositoryDir, expectedModule, commit)
|
||||
if err != nil {
|
||||
return fmt.Errorf("normalize expected module %q: %w", expectedModule, err)
|
||||
}
|
||||
selected, err := releaseidentity.ResolveSelection(repositoryDir, profileModule)
|
||||
selected, err := releaseidentity.ResolveCommittedSelection(ctx, repositoryDir, profileModule, commit)
|
||||
if err != nil {
|
||||
return fmt.Errorf("normalize profile module %q: %w", profileModule, err)
|
||||
}
|
||||
@@ -282,7 +286,7 @@ func runCIDelivery(ctx context.Context, invocation cli.Invocation, stdout, stder
|
||||
fmt.Fprintf(stderr, "load profile: %v\n", err)
|
||||
return 2
|
||||
}
|
||||
if err := checkExpectedModule(invocation.Repository, invocation.ExpectedModule, settings.ModuleDir); err != nil {
|
||||
if err := checkExpectedModule(ctx, invocation.Repository, invocation.ExpectedModule, settings.ModuleDir); err != nil {
|
||||
fmt.Fprintf(stderr, "profile module selection: %v\n", err)
|
||||
return 2
|
||||
}
|
||||
@@ -343,7 +347,12 @@ func deliverWithDestination(ctx context.Context, invocation cli.Invocation, sett
|
||||
}
|
||||
if hasTargets {
|
||||
if invocation.AssetsDir != "" {
|
||||
selection, err := releaseidentity.ResolveSelection(invocation.Repository, settings.ModuleDir)
|
||||
commit, err := git.CaptureHead(ctx, invocation.Repository)
|
||||
if err != nil {
|
||||
fmt.Fprintf(stderr, "capture asset source commit: %v\n", err)
|
||||
return 1
|
||||
}
|
||||
selection, err := releaseidentity.ResolveCommittedSelection(ctx, invocation.Repository, settings.ModuleDir, commit)
|
||||
if err != nil {
|
||||
fmt.Fprintf(stderr, "resolve asset module directory: %v\n", err)
|
||||
return 1
|
||||
|
||||
Reference in New Issue
Block a user