Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 20 additions & 7 deletions build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"encoding/json"
"fmt"
"io"
"io/fs"
"maps"
"os"
"slices"
Expand All @@ -22,7 +21,6 @@ import (
noderesolver "github.com/docker/buildx/build/resolver"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/driver"
"github.com/docker/buildx/policy"
"github.com/docker/buildx/util/buildflags"
"github.com/docker/buildx/util/confutil"
"github.com/docker/buildx/util/desktop"
Expand Down Expand Up @@ -120,13 +118,24 @@ type Inputs struct {
policy *policyOpt
}

type policyOpt struct {
Files []policy.File
FS func() (fs.StatFS, func() error, error)
type policyFileSpec struct {
Filename string
Optional bool
Data []byte
}

type policyEvalOpt struct {
Strict bool
LogLevel *logrus.Level
}

type policyOpt struct {
Files []policyFileSpec
ContextDir string
ContextState *llb.State
policyEvalOpt
}

func withPolicyConfig(defaultPolicy policyOpt, configs []buildflags.PolicyConfig) ([]policyOpt, error) {
if len(configs) == 0 {
if len(defaultPolicy.Files) == 0 {
Expand Down Expand Up @@ -176,7 +185,10 @@ func withPolicyConfig(defaultPolicy policyOpt, configs []buildflags.PolicyConfig
}

opt := policyOpt{
Files: cfg.Files,
Files: make([]policyFileSpec, 0, len(cfg.Files)),
}
for _, f := range cfg.Files {
opt.Files = append(opt.Files, policyFileSpec{Filename: f.Filename})
}
if last.Strict != nil {
opt.Strict = *last.Strict
Expand All @@ -190,7 +202,8 @@ func withPolicyConfig(defaultPolicy policyOpt, configs []buildflags.PolicyConfig
if cfg.LogLevel != nil {
opt.LogLevel = cfg.LogLevel
}
opt.FS = defaultPolicy.FS
opt.ContextDir = defaultPolicy.ContextDir
opt.ContextState = defaultPolicy.ContextState
out = append(out, opt)
}

Expand Down
Loading