mirror of
https://github.com/docker/setup-docker-action.git
synced 2025-06-05 11:30:40 +02:00
setup regctl and undock
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
parent
b7bb1d4426
commit
63f2e57f85
24
.github/workflows/ci.yml
vendored
24
.github/workflows/ci.yml
vendored
@ -305,3 +305,27 @@ jobs:
|
|||||||
docker info
|
docker info
|
||||||
env:
|
env:
|
||||||
DOCKER_HOST: ${{ steps.setup_docker.outputs.tcp }}
|
DOCKER_HOST: ${{ steps.setup_docker.outputs.tcp }}
|
||||||
|
|
||||||
|
undock-regctl-version:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
undock_version:
|
||||||
|
- ''
|
||||||
|
- v0.9.0
|
||||||
|
regctl_version:
|
||||||
|
- ''
|
||||||
|
- v0.8.2
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Set up Docker
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
version: type=image
|
||||||
|
env:
|
||||||
|
UNDOCK_VERSION: ${{ matrix.undock_version }}
|
||||||
|
REGCTL_VERSION: ${{ matrix.regctl_version }}
|
||||||
|
38
src/main.ts
38
src/main.ts
@ -5,10 +5,17 @@ import * as core from '@actions/core';
|
|||||||
import * as actionsToolkit from '@docker/actions-toolkit';
|
import * as actionsToolkit from '@docker/actions-toolkit';
|
||||||
import {Install} from '@docker/actions-toolkit/lib/docker/install';
|
import {Install} from '@docker/actions-toolkit/lib/docker/install';
|
||||||
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
|
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
|
||||||
|
import {Install as RegclientInstall} from '@docker/actions-toolkit/lib/regclient/install';
|
||||||
|
import {Regctl} from '@docker/actions-toolkit/lib/regclient/regctl';
|
||||||
|
import {Install as UndockInstall} from '@docker/actions-toolkit/lib/undock/install';
|
||||||
|
import {Undock} from '@docker/actions-toolkit/lib/undock/undock';
|
||||||
|
|
||||||
import * as context from './context';
|
import * as context from './context';
|
||||||
import * as stateHelper from './state-helper';
|
import * as stateHelper from './state-helper';
|
||||||
|
|
||||||
|
const regctlDefaultVersion = 'v0.8.3';
|
||||||
|
const undockDefaultVersion = 'v0.10.0';
|
||||||
|
|
||||||
actionsToolkit.run(
|
actionsToolkit.run(
|
||||||
// main
|
// main
|
||||||
async () => {
|
async () => {
|
||||||
@ -19,6 +26,29 @@ actionsToolkit.run(
|
|||||||
throw new Error(`'default' context cannot be used.`);
|
throw new Error(`'default' context cannot be used.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (input.source.type === 'image') {
|
||||||
|
await core.group(`Download and install regctl`, async () => {
|
||||||
|
const regclientInstall = new RegclientInstall();
|
||||||
|
const regclientBinPath = await regclientInstall.download(
|
||||||
|
process.env.REGCTL_VERSION && process.env.REGCTL_VERSION.trim()
|
||||||
|
? process.env.REGCTL_VERSION
|
||||||
|
: regctlDefaultVersion,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
await regclientInstall.install(regclientBinPath);
|
||||||
|
});
|
||||||
|
await core.group(`Download and install undock`, async () => {
|
||||||
|
const undockInstall = new UndockInstall();
|
||||||
|
const undockBinPath = await undockInstall.download(
|
||||||
|
process.env.UNDOCK_VERSION && process.env.UNDOCK_VERSION.trim()
|
||||||
|
? process.env.UNDOCK_VERSION
|
||||||
|
: undockDefaultVersion,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
await undockInstall.install(undockBinPath);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let tcpPort: number | undefined;
|
let tcpPort: number | undefined;
|
||||||
let tcpAddress: string | undefined;
|
let tcpAddress: string | undefined;
|
||||||
if (input.tcpPort) {
|
if (input.tcpPort) {
|
||||||
@ -32,7 +62,9 @@ actionsToolkit.run(
|
|||||||
rootless: input.rootless,
|
rootless: input.rootless,
|
||||||
contextName: input.context || 'setup-docker-action',
|
contextName: input.context || 'setup-docker-action',
|
||||||
daemonConfig: input.daemonConfig,
|
daemonConfig: input.daemonConfig,
|
||||||
localTCPPort: tcpPort
|
localTCPPort: tcpPort,
|
||||||
|
regctl: new Regctl(),
|
||||||
|
undock: new Undock()
|
||||||
});
|
});
|
||||||
let toolDir;
|
let toolDir;
|
||||||
if (!(await Docker.isAvailable()) || input.source) {
|
if (!(await Docker.isAvailable()) || input.source) {
|
||||||
@ -71,7 +103,9 @@ actionsToolkit.run(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const install = new Install({
|
const install = new Install({
|
||||||
runDir: stateHelper.runDir
|
runDir: stateHelper.runDir,
|
||||||
|
regctl: new Regctl(),
|
||||||
|
undock: new Undock()
|
||||||
});
|
});
|
||||||
await install.tearDown();
|
await install.tearDown();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user