From 1b18b1078fb0c43533041fc2143e7b2f04c3c715 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 6 Sep 2020 16:37:52 +0200 Subject: [PATCH 1/5] Add context input (#16) Signed-off-by: CrazyMax --- README.md | 5 +++-- action.yml | 7 +++++-- dist/index.js | 6 +++++- src/context.ts | 4 +++- src/main.ts | 3 +++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3f7bb03..5b96039 100644 --- a/README.md +++ b/README.md @@ -128,12 +128,13 @@ Following inputs can be used as `step.with` keys | Name | Type | Description | |--------------------|---------|-----------------------------------| -| `version` | String | [Buildx](https://github.com/docker/buildx) version. (e.g. `v0.3.0`, `latest`) | +| `version` | String | [Buildx](https://github.com/docker/buildx) version. (eg. `v0.3.0`, `latest`) | | `driver` | String | Sets the [builder driver](https://github.com/docker/buildx#--driver-driver) to be used (default `docker-container`) | -| `driver-opts` | CSV | List of additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options) | +| `driver-opts` | CSV | List of additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options) (eg. `image=moby/buildkit:master`) | | `buildkitd-flags` | String | [Flags for buildkitd](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) daemon (since [buildx v0.3.0](https://github.com/docker/buildx/releases/tag/v0.3.0)) | | `install` | Bool | Sets up `docker build` command as an alias to `docker buildx` (default `false`) | | `use` | Bool | Switch to this builder instance (default `true`) | +| `context` | String | [Name of a context](https://github.com/docker/buildx#buildx-create-options-contextendpoint) from `docker context ls` or an endpoint as the address for docker socket (eg. `DOCKER_HOST` value) | > `CSV` type must be a newline-delimited string > ```yaml diff --git a/action.yml b/action.yml index c50254a..37f6a51 100644 --- a/action.yml +++ b/action.yml @@ -8,14 +8,14 @@ branding: inputs: version: - description: 'Buildx version. e.g. v0.3.0' + description: 'Buildx version. (eg. v0.3.0)' required: false driver: description: 'Sets the builder driver to be used' default: 'docker-container' required: false driver-opts: - description: 'List of additional driver-specific options. Eg. image=moby/buildkit:master' + description: 'List of additional driver-specific options. (eg. image=moby/buildkit:master)' required: false buildkitd-flags: description: 'Flags for buildkitd daemon' @@ -29,6 +29,9 @@ inputs: description: 'Switch to this builder instance' default: 'true' required: false + context: + description: 'Name of a context from docker context ls or an endpoint as the address for docker socket (eg. DOCKER_HOST value)' + required: false outputs: name: diff --git a/dist/index.js b/dist/index.js index 5c89cb5..86ade68 100644 --- a/dist/index.js +++ b/dist/index.js @@ -534,6 +534,9 @@ function run() { if (inputs.use) { createArgs.push('--use'); } + if (inputs.context) { + createArgs.push(inputs.context); + } yield exec.exec('docker', createArgs); core.info('🏃 Booting builder...'); yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); @@ -6553,7 +6556,8 @@ function getInputs() { buildkitdFlags: core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), - use: /true/i.test(core.getInput('use')) + use: /true/i.test(core.getInput('use')), + context: core.getInput('context') }; }); } diff --git a/src/context.ts b/src/context.ts index b8a3d9b..fa4d035 100644 --- a/src/context.ts +++ b/src/context.ts @@ -10,6 +10,7 @@ export interface Inputs { buildkitdFlags: string; install: boolean; use: boolean; + context: string; } export async function getInputs(): Promise { @@ -21,7 +22,8 @@ export async function getInputs(): Promise { core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), - use: /true/i.test(core.getInput('use')) + use: /true/i.test(core.getInput('use')), + context: core.getInput('context') }; } diff --git a/src/main.ts b/src/main.ts index 608d0f9..3bbedf2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -42,6 +42,9 @@ async function run(): Promise { if (inputs.use) { createArgs.push('--use'); } + if (inputs.context) { + createArgs.push(inputs.context); + } await exec.exec('docker', createArgs); core.info('🏃 Booting builder...'); From 76cbb33ee6c5e57ef6dce2939d3c95ca039bd301 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 6 Sep 2020 20:11:21 +0200 Subject: [PATCH 2/5] Add context job Signed-off-by: CrazyMax --- .github/workflows/ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4837fbc..42026b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,6 +143,39 @@ jobs: docker buildx inspect | grep Driver | grep docker docker buildx inspect | grep Status | grep running + context: + runs-on: ubuntu-latest + services: + dind: + image: docker:dind + options: >- + --privileged + --health-cmd "docker info" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + DOCKER_TLS_CERTDIR: "" + ports: + - 2375:2375 + steps: + - + name: Checkout + uses: actions/checkout@v2.3.2 + - + name: Create context + run: | + docker context create mycontext --docker host=tcp://127.0.0.1:2375 + - + name: Check context + run: | + docker --context mycontext info + - + name: Set up Docker Buildx + uses: ./ + with: + context: mycontext + with-qemu: runs-on: ubuntu-latest strategy: From 02b02ea52939a8b39a5c003dacadfbac3db6d66e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 6 Sep 2020 20:18:45 +0200 Subject: [PATCH 3/5] Update screenshot Signed-off-by: CrazyMax --- .github/setup-buildx-action.png | Bin 14625 -> 13534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/setup-buildx-action.png b/.github/setup-buildx-action.png index 05426704bc05dfe08ffc13cc669eedab704bf29a..64f879ef18c2f00573f90a02e36fc3c95c5c6075 100644 GIT binary patch literal 13534 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 literal 14625 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 Date: Tue, 8 Sep 2020 15:52:09 +0200 Subject: [PATCH 4/5] Rename endpoint Signed-off-by: CrazyMax --- .github/workflows/ci.yml | 4 ++-- README.md | 2 +- action.yml | 4 ++-- dist/index.js | 6 +++--- src/context.ts | 4 ++-- src/main.ts | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42026b5..e5de820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,7 +143,7 @@ jobs: docker buildx inspect | grep Driver | grep docker docker buildx inspect | grep Status | grep running - context: + endpoint: runs-on: ubuntu-latest services: dind: @@ -174,7 +174,7 @@ jobs: name: Set up Docker Buildx uses: ./ with: - context: mycontext + endpoint: mycontext with-qemu: runs-on: ubuntu-latest diff --git a/README.md b/README.md index 5b96039..9c8a316 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ Following inputs can be used as `step.with` keys | `buildkitd-flags` | String | [Flags for buildkitd](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) daemon (since [buildx v0.3.0](https://github.com/docker/buildx/releases/tag/v0.3.0)) | | `install` | Bool | Sets up `docker build` command as an alias to `docker buildx` (default `false`) | | `use` | Bool | Switch to this builder instance (default `true`) | -| `context` | String | [Name of a context](https://github.com/docker/buildx#buildx-create-options-contextendpoint) from `docker context ls` or an endpoint as the address for docker socket (eg. `DOCKER_HOST` value) | +| `endpoint` | String | [Address for docker socket](https://github.com/docker/buildx#buildx-create-options-contextendpoint) or context from `docker context ls` (eg. `DOCKER_HOST` value) | > `CSV` type must be a newline-delimited string > ```yaml diff --git a/action.yml b/action.yml index 37f6a51..6c38768 100644 --- a/action.yml +++ b/action.yml @@ -29,8 +29,8 @@ inputs: description: 'Switch to this builder instance' default: 'true' required: false - context: - description: 'Name of a context from docker context ls or an endpoint as the address for docker socket (eg. DOCKER_HOST value)' + endpoint: + description: 'Address for docker socket or context from `docker context ls (eg. DOCKER_HOST value)' required: false outputs: diff --git a/dist/index.js b/dist/index.js index 1e12345..44c944f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -534,8 +534,8 @@ function run() { if (inputs.use) { createArgs.push('--use'); } - if (inputs.context) { - createArgs.push(inputs.context); + if (inputs.endpoint) { + createArgs.push(inputs.endpoint); } yield exec.exec('docker', createArgs); core.info('🏃 Booting builder...'); @@ -6581,7 +6581,7 @@ function getInputs() { '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), use: /true/i.test(core.getInput('use')), - context: core.getInput('context') + endpoint: core.getInput('endpoint') }; }); } diff --git a/src/context.ts b/src/context.ts index a856601..4a39951 100644 --- a/src/context.ts +++ b/src/context.ts @@ -11,7 +11,7 @@ export interface Inputs { buildkitdFlags: string; install: boolean; use: boolean; - context: string; + endpoint: string; } export async function getInputs(): Promise { @@ -24,7 +24,7 @@ export async function getInputs(): Promise { '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), use: /true/i.test(core.getInput('use')), - context: core.getInput('context') + endpoint: core.getInput('endpoint') }; } diff --git a/src/main.ts b/src/main.ts index 3bbedf2..c9cc0cc 100644 --- a/src/main.ts +++ b/src/main.ts @@ -42,8 +42,8 @@ async function run(): Promise { if (inputs.use) { createArgs.push('--use'); } - if (inputs.context) { - createArgs.push(inputs.context); + if (inputs.endpoint) { + createArgs.push(inputs.endpoint); } await exec.exec('docker', createArgs); From a786350788bddc1c8895d69596b453b6385d3ab1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 8 Sep 2020 18:22:35 +0200 Subject: [PATCH 5/5] Fix endpoint description Signed-off-by: CrazyMax --- README.md | 2 +- action.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c8a316..5be017d 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ Following inputs can be used as `step.with` keys | `buildkitd-flags` | String | [Flags for buildkitd](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) daemon (since [buildx v0.3.0](https://github.com/docker/buildx/releases/tag/v0.3.0)) | | `install` | Bool | Sets up `docker build` command as an alias to `docker buildx` (default `false`) | | `use` | Bool | Switch to this builder instance (default `true`) | -| `endpoint` | String | [Address for docker socket](https://github.com/docker/buildx#buildx-create-options-contextendpoint) or context from `docker context ls` (eg. `DOCKER_HOST` value) | +| `endpoint` | String | [Optional address for docker socket](https://github.com/docker/buildx#buildx-create-options-contextendpoint) or context from `docker context ls` | > `CSV` type must be a newline-delimited string > ```yaml diff --git a/action.yml b/action.yml index 6c38768..f53d07a 100644 --- a/action.yml +++ b/action.yml @@ -30,7 +30,7 @@ inputs: default: 'true' required: false endpoint: - description: 'Address for docker socket or context from `docker context ls (eg. DOCKER_HOST value)' + description: 'Optional address for docker socket or context from `docker context ls`' required: false outputs: