mirror of
https://github.com/docker/setup-docker-action.git
synced 2025-06-13 15:17:11 +02:00
Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
78318f8be5 | |||
54f3988321 | |||
f437b67409 | |||
06b9bc80b3 | |||
a6fae2d4e8 | |||
a4ef905acc | |||
41a5151e81 | |||
e96e0e2c98 | |||
8d0a8e33ff | |||
9bd97ff018 | |||
bca5e4d3e2 | |||
031a2987b7 | |||
753106f35c | |||
a1e4314d8f | |||
a7f3aad3f5 | |||
faa196892b | |||
796ce734cb | |||
3eb24de4f6 | |||
5bddaa4323 | |||
17819a1af9 | |||
d20884258e | |||
b74351ab97 | |||
0f5a011c3d | |||
99cad45695 | |||
aceee1722e | |||
0cb459c59a | |||
81886c7276 | |||
fdc6583d4e | |||
a4b15f09d5 | |||
c2351bbd0b | |||
c14b6e1c32 | |||
f1d16883d0 | |||
5de1d6bef5 | |||
7d4fd999a5 | |||
38c07112bd | |||
c6f8a8a2ba | |||
2960188cea | |||
8e060aa468 | |||
fc6fa62ba9 | |||
7864da88cb | |||
36eedea576 | |||
95a170fa60 | |||
1ea15ee881 | |||
729d91c21f | |||
c553dd0c3f | |||
a307846a9f | |||
57929789e6 |
56
.github/workflows/ci.yml
vendored
56
.github/workflows/ci.yml
vendored
@ -1,5 +1,9 @@
|
||||
name: ci
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@ -13,7 +17,7 @@ on:
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
DOCKER_VERSION: v23.0.6
|
||||
DOCKER_VERSION: v24.0.9
|
||||
|
||||
jobs:
|
||||
main:
|
||||
@ -23,8 +27,8 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
- macos-13
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
version:
|
||||
- pinned
|
||||
@ -57,7 +61,8 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
- macos-13
|
||||
- windows-latest
|
||||
steps:
|
||||
-
|
||||
@ -67,7 +72,7 @@ jobs:
|
||||
name: Set up Docker
|
||||
uses: ./
|
||||
with:
|
||||
version: v23.0.0-rc.4
|
||||
version: v24.0.0-rc.4
|
||||
channel: test
|
||||
-
|
||||
name: Dump context
|
||||
@ -81,7 +86,8 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
- macos-13
|
||||
- windows-latest
|
||||
steps:
|
||||
-
|
||||
@ -110,7 +116,8 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
- macos-13
|
||||
- windows-latest
|
||||
steps:
|
||||
-
|
||||
@ -132,7 +139,8 @@ jobs:
|
||||
uses: crazy-max/ghaction-dump-context@v2
|
||||
|
||||
lima-start-args:
|
||||
runs-on: macos-latest
|
||||
#runs-on: macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
runs-on: macos-13
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
@ -145,10 +153,21 @@ jobs:
|
||||
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
containerd:
|
||||
- containerd-system
|
||||
- containerd-tarball
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Uninstall containerd
|
||||
if: matrix.containerd == 'containerd-tarball'
|
||||
run: |
|
||||
sudo apt-get remove -y containerd.io
|
||||
-
|
||||
name: Set up Docker
|
||||
uses: ./
|
||||
@ -187,8 +206,9 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
|
||||
- macos-13
|
||||
- macos-latest
|
||||
- macos-12
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
@ -249,3 +269,23 @@ jobs:
|
||||
name: Dump context
|
||||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v2
|
||||
|
||||
set-host:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Set up Docker
|
||||
uses: ./
|
||||
with:
|
||||
set-host: true
|
||||
-
|
||||
name: List contexts
|
||||
run: |
|
||||
docker context ls
|
||||
-
|
||||
name: Dump context
|
||||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v2
|
||||
|
7
.github/workflows/test.yml
vendored
7
.github/workflows/test.yml
vendored
@ -1,5 +1,9 @@
|
||||
name: test
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@ -21,6 +25,7 @@ jobs:
|
||||
targets: test
|
||||
-
|
||||
name: Upload coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
file: ./coverage/clover.xml
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
4
.github/workflows/validate.yml
vendored
4
.github/workflows/validate.yml
vendored
@ -1,5 +1,9 @@
|
||||
name: validate
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
874
.yarn/releases/yarn-3.6.3.cjs
vendored
874
.yarn/releases/yarn-3.6.3.cjs
vendored
File diff suppressed because one or more lines are too long
@ -11,5 +11,3 @@ nodeLinker: node-modules
|
||||
plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||
spec: "@yarnpkg/plugin-interactive-tools"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.6.3.cjs
|
||||
|
21
README.md
21
README.md
@ -9,6 +9,11 @@
|
||||
GitHub Action to set up (download and install) [Docker CE](https://docs.docker.com/engine/).
|
||||
Works on Linux, macOS and Windows.
|
||||
|
||||
> [!WARNING]
|
||||
> Does not work on macOS runners with ARM architecture (no nested virtualization):
|
||||
> * https://github.com/crazy-max/ghaction-setup-docker/pull/53
|
||||
> * https://github.com/docker/actions-toolkit/issues/317
|
||||
|
||||

|
||||
|
||||
___
|
||||
@ -19,6 +24,7 @@ ___
|
||||
* [Define custom `limactl start` arguments (macOS)](#define-custom-limactl-start-arguments-macos)
|
||||
* [Customizing](#customizing)
|
||||
* [inputs](#inputs)
|
||||
* [outputs](#outputs)
|
||||
* [Contributing](#contributing)
|
||||
* [License](#license)
|
||||
|
||||
@ -38,7 +44,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Set up Docker
|
||||
uses: crazy-max/ghaction-setup-docker@v2
|
||||
uses: crazy-max/ghaction-setup-docker@v3
|
||||
```
|
||||
|
||||
### Daemon configuration
|
||||
@ -60,7 +66,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Set up Docker
|
||||
uses: crazy-max/ghaction-setup-docker@v2
|
||||
uses: crazy-max/ghaction-setup-docker@v3
|
||||
with:
|
||||
daemon-config: |
|
||||
{
|
||||
@ -88,7 +94,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Set up Docker
|
||||
uses: crazy-max/ghaction-setup-docker@v2
|
||||
uses: crazy-max/ghaction-setup-docker@v3
|
||||
env:
|
||||
LIMA_START_ARGS: --cpus 4 --memory 8
|
||||
```
|
||||
@ -105,6 +111,15 @@ The following inputs can be used as `step.with` keys
|
||||
| `channel` | String | `stable` | Docker CE [channel](https://download.docker.com/linux/static/) (e.g, `stable`, `edge` or `test`). |
|
||||
| `daemon-config` | String | | [Docker daemon JSON configuration](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) |
|
||||
| `context` | String | `setup-docker-action` | Docker context name. |
|
||||
| `set-host` | Bool | `false` | Set `DOCKER_HOST` environment variable to docker socket path. |
|
||||
|
||||
### outputs
|
||||
|
||||
The following outputs are available
|
||||
|
||||
| Name | Type | Description |
|
||||
|--------|--------|--------------------|
|
||||
| `sock` | String | Docker socket path |
|
||||
|
||||
## Contributing
|
||||
|
||||
|
@ -17,38 +17,45 @@ describe('getInputs', () => {
|
||||
[
|
||||
0,
|
||||
new Map<string, string>([
|
||||
['version', 'v23.0.1'],
|
||||
['version', 'v24.0.8'],
|
||||
['set-host', 'false'],
|
||||
]),
|
||||
{
|
||||
version: 'v23.0.1',
|
||||
version: 'v24.0.8',
|
||||
channel: '',
|
||||
context: '',
|
||||
daemonConfig: '',
|
||||
setHost: false
|
||||
} as context.Inputs
|
||||
],
|
||||
[
|
||||
1,
|
||||
new Map<string, string>([
|
||||
['version', 'v23.0.0-rc.4'],
|
||||
['version', 'v24.0.0-rc.4'],
|
||||
['channel', 'test'],
|
||||
['context', 'foo'],
|
||||
['daemon-config', `{"debug":true,"features":{"containerd-snapshotter":true}}`],
|
||||
['set-host', 'false'],
|
||||
]),
|
||||
{
|
||||
version: 'v23.0.0-rc.4',
|
||||
version: 'v24.0.0-rc.4',
|
||||
channel: 'test',
|
||||
context: 'foo',
|
||||
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`,
|
||||
setHost: false
|
||||
} as context.Inputs
|
||||
],
|
||||
[
|
||||
2,
|
||||
new Map<string, string>([]),
|
||||
new Map<string, string>([
|
||||
['set-host', 'true'],
|
||||
]),
|
||||
{
|
||||
version: 'latest',
|
||||
channel: '',
|
||||
context: '',
|
||||
daemonConfig: '',
|
||||
setHost: true
|
||||
} as context.Inputs
|
||||
]
|
||||
])(
|
||||
|
10
action.yml
10
action.yml
@ -8,7 +8,7 @@ branding:
|
||||
|
||||
inputs:
|
||||
version:
|
||||
description: 'Docker CE version. (e.g, v23.0.1)'
|
||||
description: 'Docker CE version. (e.g, v24.0.9)'
|
||||
required: false
|
||||
default: 'latest'
|
||||
channel:
|
||||
@ -20,6 +20,14 @@ inputs:
|
||||
context:
|
||||
description: 'Docker context name. (default setup-docker-action)'
|
||||
required: false
|
||||
set-host:
|
||||
description: 'Set DOCKER_HOST environment variable to docker socket path'
|
||||
default: 'false'
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
sock:
|
||||
description: "Docker socket path"
|
||||
|
||||
runs:
|
||||
using: 'node20'
|
||||
|
@ -4,8 +4,13 @@ ARG NODE_VERSION=20
|
||||
|
||||
FROM node:${NODE_VERSION}-alpine AS base
|
||||
RUN apk add --no-cache cpio findutils git
|
||||
RUN yarn config set --home enableTelemetry 0
|
||||
WORKDIR /src
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache <<EOT
|
||||
corepack enable
|
||||
yarn --version
|
||||
yarn config set --home enableTelemetry 0
|
||||
EOT
|
||||
|
||||
FROM base AS deps
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
|
94
dist/index.js
generated
vendored
94
dist/index.js
generated
vendored
File diff suppressed because one or more lines are too long
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
3298
dist/licenses.txt
generated
vendored
3298
dist/licenses.txt
generated
vendored
File diff suppressed because it is too large
Load Diff
@ -27,8 +27,8 @@
|
||||
"packageManager": "yarn@3.6.3",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.1",
|
||||
"@docker/actions-toolkit": "^0.16.0",
|
||||
"uuid": "^9.0.1"
|
||||
"@docker/actions-toolkit": "^0.25.0",
|
||||
"uuid": "^10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.6.0",
|
||||
|
@ -5,6 +5,7 @@ export interface Inputs {
|
||||
channel: string;
|
||||
daemonConfig?: string;
|
||||
context: string;
|
||||
setHost: boolean;
|
||||
}
|
||||
|
||||
export function getInputs(): Inputs {
|
||||
@ -12,6 +13,7 @@ export function getInputs(): Inputs {
|
||||
version: core.getInput('version') || 'latest',
|
||||
channel: core.getInput('channel'),
|
||||
daemonConfig: core.getInput('daemon-config'),
|
||||
context: core.getInput('context')
|
||||
context: core.getInput('context'),
|
||||
setHost: core.getBooleanInput('set-host')
|
||||
};
|
||||
}
|
||||
|
15
src/main.ts
15
src/main.ts
@ -13,7 +13,7 @@ actionsToolkit.run(
|
||||
// main
|
||||
async () => {
|
||||
const input: context.Inputs = context.getInputs();
|
||||
const runDir = path.join(os.homedir(), `setup-docker-action-${uuid.v4()}`);
|
||||
const runDir = path.join(os.homedir(), `setup-docker-action-${uuid.v4().slice(0, 8)}`);
|
||||
|
||||
if (input.context == 'default') {
|
||||
throw new Error(`'default' context cannot be used.`);
|
||||
@ -34,7 +34,18 @@ actionsToolkit.run(
|
||||
}
|
||||
if (toolDir) {
|
||||
stateHelper.setRunDir(runDir);
|
||||
await install.install();
|
||||
const sockPath = await install.install();
|
||||
await core.group(`Setting outputs`, async () => {
|
||||
core.info(`sock=${sockPath}`);
|
||||
core.setOutput('sock', sockPath);
|
||||
});
|
||||
|
||||
if (input.setHost) {
|
||||
await core.group(`Setting Docker host`, async () => {
|
||||
core.exportVariable('DOCKER_HOST', sockPath);
|
||||
core.info(`DOCKER_HOST=${sockPath}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await core.group(`Docker info`, async () => {
|
||||
|
Reference in New Issue
Block a user