Select committed validation inputs by module
This commit is contained in:
@@ -4,6 +4,7 @@ package validation
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io"
|
||||
@@ -19,6 +20,7 @@ type Settings struct {
|
||||
Race bool
|
||||
FullVet bool
|
||||
CompileTargets []Target
|
||||
SharedFiles []string
|
||||
GoFormat bool
|
||||
Markdown *MarkdownSettings
|
||||
ModuleDistribution ModuleDistributionSettings
|
||||
@@ -51,6 +53,7 @@ type Target struct {
|
||||
// Request identifies the captured source and output used by shared validation.
|
||||
type Request struct {
|
||||
RepositoryDir string
|
||||
ModuleDir string
|
||||
Commit string
|
||||
Output io.Writer
|
||||
Settings Settings
|
||||
@@ -59,7 +62,10 @@ type Request struct {
|
||||
// ReadCandidateTree loads the committed-file inventory when a selected check
|
||||
// needs file-oriented input.
|
||||
func (request Request) ReadCandidateTree(ctx context.Context) (*CandidateTree, error) {
|
||||
return ReadCandidateTree(ctx, request.RepositoryDir, request.Commit)
|
||||
return ReadCandidateTreeForScope(ctx, request.RepositoryDir, request.Commit, TreeScope{
|
||||
ModuleDir: request.ModuleDir,
|
||||
SharedFiles: request.Settings.SharedFiles,
|
||||
})
|
||||
}
|
||||
|
||||
// Run executes shared validation for the captured candidate.
|
||||
@@ -118,9 +124,14 @@ func Run(ctx context.Context, request Request) (result error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if request.Settings.GoFormat || request.Settings.ModuleDistribution.WorkspaceFiles || request.Settings.ModuleDistribution.LocalReplacements || request.Settings.FileSize != nil || request.Settings.Markdown != nil {
|
||||
needsSharedSelection := len(request.Settings.SharedFiles) != 0
|
||||
if request.Settings.GoFormat || request.Settings.ModuleDistribution.WorkspaceFiles || request.Settings.ModuleDistribution.LocalReplacements || request.Settings.FileSize != nil || request.Settings.Markdown != nil || needsSharedSelection {
|
||||
tree, err := request.ReadCandidateTree(ctx)
|
||||
if err != nil {
|
||||
var failure *Failure
|
||||
if errors.As(err, &failure) {
|
||||
return failure
|
||||
}
|
||||
check := MarkdownLinks
|
||||
if request.Settings.FileSize != nil {
|
||||
check = FileSize
|
||||
|
||||
Reference in New Issue
Block a user