Add experimental way to set a target platform when building

Add an --experimental-platform flag to the do command to allow
overriding the default auto-detected build platform until we find the
time to think about the definitive multi-platform builds UX

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
This commit is contained in:
Marcos Lilljedahl
2022-04-05 18:17:33 -03:00
parent 7d2f279c59
commit d80acf805b
9 changed files with 44 additions and 116 deletions

View File

@@ -44,6 +44,8 @@ type Config struct {
CacheExports []bk.CacheOptionsEntry
CacheImports []bk.CacheOptionsEntry
TargetPlatform *specs.Platform
}
func New(ctx context.Context, host string, cfg Config) (*Client, error) {
@@ -81,8 +83,9 @@ func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, fn DoFunc) e
lg := log.Ctx(ctx)
eg, gctx := errgroup.WithContext(ctx)
// if platform is set through plan config, skip detection.
if !pctx.Platform.IsSet() {
if c.cfg.TargetPlatform != nil {
pctx.Platform.Set(*c.cfg.TargetPlatform)
} else {
p, err := c.detectPlatform(ctx)
if err != nil {
return err