mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 08:03:43 +08:00 
			
		
		
		
	build: add attests flag and sbom/provenance shorthands
Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
		| @@ -53,6 +53,7 @@ type buildOptions struct { | ||||
| 	printFunc      string | ||||
|  | ||||
| 	allow         []string | ||||
| 	attests       []string | ||||
| 	buildArgs     []string | ||||
| 	cacheFrom     []string | ||||
| 	cacheTo       []string | ||||
| @@ -85,6 +86,9 @@ type commonOptions struct { | ||||
|  | ||||
| 	exportPush bool | ||||
| 	exportLoad bool | ||||
|  | ||||
| 	sbom       string | ||||
| 	provenance string | ||||
| } | ||||
|  | ||||
| func runBuild(dockerCli command.Cli, in buildOptions) (err error) { | ||||
| @@ -212,9 +216,20 @@ func runBuild(dockerCli command.Cli, in buildOptions) (err error) { | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	opts.Exports = outputs | ||||
|  | ||||
| 	inAttests := append([]string{}, in.attests...) | ||||
| 	if in.provenance != "" { | ||||
| 		inAttests = append(inAttests, buildflags.CanonicalizeAttest("provenance", in.provenance)) | ||||
| 	} | ||||
| 	if in.sbom != "" { | ||||
| 		inAttests = append(inAttests, buildflags.CanonicalizeAttest("sbom", in.sbom)) | ||||
| 	} | ||||
| 	opts.Attests, err = buildflags.ParseAttests(inAttests) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	cacheImports, err := buildflags.ParseCacheEntry(in.cacheFrom) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| @@ -504,6 +519,10 @@ func buildCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command { | ||||
|  | ||||
| 	flags.Var(options.ulimits, "ulimit", "Ulimit options") | ||||
|  | ||||
| 	flags.StringArrayVar(&options.attests, "attest", []string{}, `Attestation parameters (format: "type=sbom,generator=image")`) | ||||
| 	flags.StringVar(&options.sbom, "sbom", "", `Shorthand for "--attest=type=sbom"`) | ||||
| 	flags.StringVar(&options.provenance, "provenance", "", `Shortand for "--attest=type=provenance"`) | ||||
|  | ||||
| 	if isExperimental() { | ||||
| 		flags.StringVar(&options.invoke, "invoke", "", "Invoke a command after the build [experimental]") | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Justin Chadwell
					Justin Chadwell