Add 'use' input

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2020-08-12 15:10:05 +02:00
parent d0f7649930
commit 15c6a86f2d
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
5 changed files with 36 additions and 3 deletions

View file

@ -62,6 +62,28 @@ jobs:
run: | run: |
docker build --help docker build --help
use:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
use:
- true
- false
steps:
-
name: Checkout
uses: actions/checkout@v2.3.1
-
name: Set up Docker Buildx
id: buildx
uses: ./setup-buildx/
with:
use: ${{ matrix.use }}
-
name: List builder instances
run: docker buildx ls
driver: driver:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:

View file

@ -94,6 +94,7 @@ Following inputs can be used as `step.with` keys
| `driver` | String | `docker-container` | Sets the [builder driver](https://github.com/docker/buildx#--driver-driver) to be used. | | `driver` | String | `docker-container` | Sets the [builder driver](https://github.com/docker/buildx#--driver-driver) to be used. |
| `driver-opt` | String | | Passes additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options). e.g. `image=moby/buildkit:master` | | `driver-opt` | String | | Passes additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options). e.g. `image=moby/buildkit:master` |
| `install` | Bool | `false` | Sets up `docker build` command as an alias to `docker buildx` | | `install` | Bool | `false` | Sets up `docker build` command as an alias to `docker buildx` |
| `use` | Bool | `true` | Switch to this builder instance |
### outputs ### outputs

View file

@ -22,6 +22,10 @@ inputs:
description: 'Sets up docker build command as an alias to docker buildx' description: 'Sets up docker build command as an alias to docker buildx'
default: 'false' default: 'false'
required: false required: false
use:
description: 'Switch to this builder instance'
default: 'true'
required: false
outputs: outputs:
platforms: platforms:

5
setup-buildx/dist/index.js generated vendored
View file

@ -2495,6 +2495,7 @@ function run() {
const driver = core.getInput('driver') || 'docker-container'; const driver = core.getInput('driver') || 'docker-container';
const driverOpt = core.getInput('driver-opt'); const driverOpt = core.getInput('driver-opt');
const install = /true/i.test(core.getInput('install')); const install = /true/i.test(core.getInput('install'));
const use = /true/i.test(core.getInput('use'));
const dockerConfigHome = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); const dockerConfigHome = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker');
yield installer.buildx(buildxVer, dockerConfigHome); yield installer.buildx(buildxVer, dockerConfigHome);
core.info('📣 Buildx info'); core.info('📣 Buildx info');
@ -2503,7 +2504,6 @@ function run() {
let createArgs = [ let createArgs = [
'buildx', 'buildx',
'create', 'create',
'--use',
'--name', '--name',
`builder-${process.env.GITHUB_SHA}`, `builder-${process.env.GITHUB_SHA}`,
'--driver', '--driver',
@ -2512,6 +2512,9 @@ function run() {
if (driverOpt) { if (driverOpt) {
createArgs.push('--driver-opt', driverOpt); createArgs.push('--driver-opt', driverOpt);
} }
if (use) {
createArgs.push('--use');
}
yield exec.exec('docker', createArgs); yield exec.exec('docker', createArgs);
core.info('🏃 Booting builder...'); core.info('🏃 Booting builder...');
yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']);

View file

@ -17,6 +17,8 @@ async function run(): Promise<void> {
const driver: string = core.getInput('driver') || 'docker-container'; const driver: string = core.getInput('driver') || 'docker-container';
const driverOpt: string = core.getInput('driver-opt'); const driverOpt: string = core.getInput('driver-opt');
const install: boolean = /true/i.test(core.getInput('install')); const install: boolean = /true/i.test(core.getInput('install'));
const use: boolean = /true/i.test(core.getInput('use'));
const dockerConfigHome: string = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); const dockerConfigHome: string = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker');
await installer.buildx(buildxVer, dockerConfigHome); await installer.buildx(buildxVer, dockerConfigHome);
@ -27,16 +29,17 @@ async function run(): Promise<void> {
let createArgs: Array<string> = [ let createArgs: Array<string> = [
'buildx', 'buildx',
'create', 'create',
'--use',
'--name', '--name',
`builder-${process.env.GITHUB_SHA}`, `builder-${process.env.GITHUB_SHA}`,
'--driver', '--driver',
driver driver
]; ];
if (driverOpt) { if (driverOpt) {
createArgs.push('--driver-opt', driverOpt); createArgs.push('--driver-opt', driverOpt);
} }
if (use) {
createArgs.push('--use');
}
await exec.exec('docker', createArgs); await exec.exec('docker', createArgs);