From d82a80313e5c8b7113ab5acc28577d13dfa46f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Thu, 1 Jun 2023 11:13:55 +0200 Subject: [PATCH] exporter: Add exptypes with Common exporter keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Paweł Gronowski --- exporter/containerimage/exptypes/keys.go | 4 +++- exporter/containerimage/exptypes/types.go | 1 - exporter/exptypes/keys.go | 15 +++++++++++++++ exporter/util/epoch/parse.go | 6 +++--- 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 exporter/exptypes/keys.go diff --git a/exporter/containerimage/exptypes/keys.go b/exporter/containerimage/exptypes/keys.go index 1b46d0707ca1..c43221849911 100644 --- a/exporter/containerimage/exptypes/keys.go +++ b/exporter/containerimage/exptypes/keys.go @@ -1,5 +1,7 @@ package exptypes +import commonexptypes "github.com/moby/buildkit/exporter/exptypes" + type ImageExporterOptKey string // Options keys supported by the image exporter output. @@ -55,7 +57,7 @@ var ( // Clamp produced timestamps. For more information see the // SOURCE_DATE_EPOCH specification. // Value: int (number of seconds since Unix epoch) - OptKeySourceDateEpoch ImageExporterOptKey = "source-date-epoch" + OptKeySourceDateEpoch ImageExporterOptKey = ImageExporterOptKey(commonexptypes.OptKeySourceDateEpoch) // Compression type for newly created and cached layers. // estargz should be used with OptKeyOCITypes set to true. diff --git a/exporter/containerimage/exptypes/types.go b/exporter/containerimage/exptypes/types.go index 07a6d4730056..c4d5721ea65d 100644 --- a/exporter/containerimage/exptypes/types.go +++ b/exporter/containerimage/exptypes/types.go @@ -12,7 +12,6 @@ const ( ExporterImageDescriptorKey = "containerimage.descriptor" ExporterInlineCache = "containerimage.inlinecache" ExporterPlatformsKey = "refs.platforms" - ExporterEpochKey = "source.date.epoch" ) // KnownRefMetadataKeys are the subset of exporter keys that can be suffixed by diff --git a/exporter/exptypes/keys.go b/exporter/exptypes/keys.go new file mode 100644 index 000000000000..4b568154fff1 --- /dev/null +++ b/exporter/exptypes/keys.go @@ -0,0 +1,15 @@ +package exptypes + +const ( + ExporterEpochKey = "source.date.epoch" +) + +type ExporterOptKey string + +// Options keys supported by all exporters. +var ( + // Clamp produced timestamps. For more information see the + // SOURCE_DATE_EPOCH specification. + // Value: int (number of seconds since Unix epoch) + OptKeySourceDateEpoch ExporterOptKey = "source-date-epoch" +) diff --git a/exporter/util/epoch/parse.go b/exporter/util/epoch/parse.go index ed080ed882a6..d5a01460817c 100644 --- a/exporter/util/epoch/parse.go +++ b/exporter/util/epoch/parse.go @@ -5,7 +5,7 @@ import ( "time" "github.com/moby/buildkit/exporter" - "github.com/moby/buildkit/exporter/containerimage/exptypes" + commonexptypes "github.com/moby/buildkit/exporter/exptypes" "github.com/pkg/errors" ) @@ -25,7 +25,7 @@ func ParseExporterAttrs(opt map[string]string) (*time.Time, map[string]string, e for k, v := range opt { switch k { - case string(exptypes.OptKeySourceDateEpoch): + case string(commonexptypes.OptKeySourceDateEpoch): var err error tm, err = parseTime(k, v) if err != nil { @@ -40,7 +40,7 @@ func ParseExporterAttrs(opt map[string]string) (*time.Time, map[string]string, e } func ParseSource(inp *exporter.Source) (*time.Time, bool, error) { - if v, ok := inp.Metadata[exptypes.ExporterEpochKey]; ok { + if v, ok := inp.Metadata[commonexptypes.ExporterEpochKey]; ok { epoch, err := parseTime("", string(v)) if err != nil { return nil, false, errors.Wrapf(err, "invalid SOURCE_DATE_EPOCH from frontend: %q", v)