From 9436c6ca6175c0a6a1189ab60b0433063c1c5ffd Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:49:58 +0100 Subject: [PATCH] builder: support features in inspect command Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- __tests__/buildx/builder.test.ts | 6 ++++++ __tests__/fixtures/inspect11.txt | 5 +++++ src/buildx/builder.ts | 9 +++++++++ src/types/builder.ts | 1 + 4 files changed, 21 insertions(+) diff --git a/__tests__/buildx/builder.test.ts b/__tests__/buildx/builder.test.ts index f6a77c0..2606690 100644 --- a/__tests__/buildx/builder.test.ts +++ b/__tests__/buildx/builder.test.ts @@ -415,6 +415,12 @@ describe('parseInspect', () => { "name": "builder0", "platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6", "status": "running", + "features": { + "Cache export": true, + "Docker exporter": true, + "Multi-platform build": true, + "OCI exporter": true, + }, "labels": { "org.mobyproject.buildkit.worker.executor": "oci", "org.mobyproject.buildkit.worker.hostname": "docker-desktop", diff --git a/__tests__/fixtures/inspect11.txt b/__tests__/fixtures/inspect11.txt index 0c7f9c8..f70f6fa 100644 --- a/__tests__/fixtures/inspect11.txt +++ b/__tests__/fixtures/inspect11.txt @@ -10,6 +10,11 @@ Status: running BuildKit daemon flags: --debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host --allow-insecure-entitlement=network.host BuildKit version: 37657a1 Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6 +Features: + Cache export: true + Docker exporter: true + Multi-platform build: true + OCI exporter: true Labels: org.mobyproject.buildkit.worker.executor: oci org.mobyproject.buildkit.worker.hostname: docker-desktop diff --git a/src/buildx/builder.ts b/src/buildx/builder.ts index 58d396b..66deb9a 100644 --- a/src/buildx/builder.ts +++ b/src/buildx/builder.ts @@ -149,6 +149,10 @@ export class Builder { currentNode.platforms = platforms.join(','); break; } + case lkey == 'features': + parsingType = 'features'; + currentNode.features = {}; + break; case lkey == 'labels': parsingType = 'label'; currentNode.labels = {}; @@ -162,6 +166,11 @@ export class Builder { break; default: { switch (parsingType || '') { + case 'features': { + currentNode.features = currentNode.features || {}; + currentNode.features[key.trim()] = Boolean(value); + break; + } case 'label': { currentNode.labels = currentNode.labels || {}; currentNode.labels[key.trim()] = value; diff --git a/src/types/builder.ts b/src/types/builder.ts index 617f434..52bf77e 100644 --- a/src/types/builder.ts +++ b/src/types/builder.ts @@ -32,6 +32,7 @@ export interface Node { export interface NodeInfo extends Node { status?: string; buildkit?: string; + features?: Record; labels?: Record; gcPolicy?: Array; }