mirror of
https://github.com/hoverkraft-tech/compose-action.git
synced 2026-01-11 23:23:06 +08:00
feat: log docker-compose version
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
This commit is contained in:
parent
99447ae4bd
commit
8d12e916ef
54
.github/workflows/__check-action.yml
vendored
54
.github/workflows/__check-action.yml
vendored
@ -12,30 +12,28 @@ jobs:
|
|||||||
name: Test with services
|
name: Test with services
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose.yml"
|
compose-file: "./docker/docker-compose.yml"
|
||||||
services: |
|
services: |
|
||||||
helloworld2
|
service-b
|
||||||
helloworld3
|
service-c
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
run: |
|
||||||
docker-compose -f ./docker/docker-compose.yml ps
|
docker-compose -f ./docker/docker-compose.yml ps
|
||||||
|
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | grep docker-helloworld2-1
|
docker-compose -f ./docker/docker-compose.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | grep docker-helloworld3-1
|
docker-compose -f ./docker/docker-compose.yml ps | grep docker-service-c-1 || (echo "Service service-c is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | (grep docker-helloworld-1 && echo "Unexpected service helloworld is running" && exit 1) || true
|
(docker-compose -f ./docker/docker-compose.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true
|
||||||
|
|
||||||
test-action-with-down-flags:
|
test-action-with-down-flags:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Test compose action
|
name: Test compose action
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
@ -48,7 +46,6 @@ jobs:
|
|||||||
name: Test with compose flags
|
name: Test with compose flags
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
@ -59,33 +56,34 @@ jobs:
|
|||||||
|
|
||||||
- name: "Assert: profile is used"
|
- name: "Assert: profile is used"
|
||||||
run: |
|
run: |
|
||||||
docker-compose -f ./docker/docker-compose.yml -p profile-1 ps || (echo "Profile not used" && exit 1)
|
docker compose -f ./docker/docker-compose.yml -p profile-1 ps || (echo "Profile not used" && exit 1)
|
||||||
|
|
||||||
test-action-with-env:
|
test-action-with-env:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Test with env
|
name: Test with env
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose-with-env.yml"
|
compose-file: "./docker/docker-compose-with-env.yml"
|
||||||
env:
|
env:
|
||||||
IMAGE_NAME: hello-world
|
IMAGE_NAME: busybox
|
||||||
|
|
||||||
- name: "Assert: env is used"
|
- name: "Assert: env is used"
|
||||||
|
env:
|
||||||
|
IMAGE_NAME: busybox
|
||||||
run: |
|
run: |
|
||||||
docker-compose -f ./docker/docker-compose-with-env.yml ps
|
docker compose -f ./docker/docker-compose-with-env.yml ps
|
||||||
docker-compose -f ./docker/docker-compose-with-env.yml ps | grep docker-helloworld-1
|
|
||||||
|
docker compose -f ./docker/docker-compose-with-env.yml ps | grep docker-service-a-1 || (echo "Service service-a is not running" && exit 1)
|
||||||
|
|
||||||
test-action-with-multiple-compose-files:
|
test-action-with-multiple-compose-files:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Test with multiple compose files
|
name: Test with multiple compose files
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
@ -94,23 +92,23 @@ jobs:
|
|||||||
./docker/docker-compose.yml
|
./docker/docker-compose.yml
|
||||||
./docker/docker-compose.ci.yml
|
./docker/docker-compose.ci.yml
|
||||||
services: |
|
services: |
|
||||||
helloworld2
|
service-b
|
||||||
helloworld4
|
service-d
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
run: |
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps
|
docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-helloworld2-1
|
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-helloworld4-1
|
docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | (grep docker-helloworld-1 && echo "Unexpected service is running" && exit 1) || true
|
docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-d-1 || (echo "Service service-d is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | (grep docker-helloworld3-1 && echo "Unexpected service is running" && exit 1) || true
|
(docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true
|
||||||
|
(docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-c-1 && echo "Unexpected service service-c is running" && exit 1) || true
|
||||||
|
|
||||||
test-action-with-cwd:
|
test-action-with-cwd:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Test with cwd
|
name: Test with cwd
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: hoverkraft-tech/ci-github-nodejs/actions/setup-node@0.4.2
|
|
||||||
|
|
||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
@ -118,13 +116,13 @@ jobs:
|
|||||||
compose-file: "docker-compose.yml"
|
compose-file: "docker-compose.yml"
|
||||||
cwd: "./docker"
|
cwd: "./docker"
|
||||||
services: |
|
services: |
|
||||||
helloworld2
|
service-b
|
||||||
helloworld3
|
service-c
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
run: |
|
||||||
docker-compose -f ./docker/docker-compose.yml ps
|
docker compose -f ./docker/docker-compose.yml ps
|
||||||
|
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | grep docker-helloworld2-1
|
docker compose -f ./docker/docker-compose.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | grep docker-helloworld3-1
|
docker compose -f ./docker/docker-compose.yml ps | grep docker-service-c-1 || (echo "Service service-c is not running" && exit 1)
|
||||||
docker-compose -f ./docker/docker-compose.yml ps | (grep docker-helloworld-1 && echo "Unexpected service helloworld is running" && exit 1) || true
|
(docker compose -f ./docker/docker-compose.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true
|
||||||
|
|||||||
8
dist/index.js
generated
vendored
8
dist/index.js
generated
vendored
@ -25994,6 +25994,10 @@ class DockerComposeService {
|
|||||||
output: out,
|
output: out,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
async version(inputs) {
|
||||||
|
const result = await docker_compose_1.v2.version(this.getCommonOptions(inputs));
|
||||||
|
return result.data.version;
|
||||||
|
}
|
||||||
getCommonOptions(inputs) {
|
getCommonOptions(inputs) {
|
||||||
return {
|
return {
|
||||||
config: inputs.composeFiles,
|
config: inputs.composeFiles,
|
||||||
@ -36440,8 +36444,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
*/
|
*/
|
||||||
const runner_1 = __nccwpck_require__(3878);
|
const runner_1 = __nccwpck_require__(3878);
|
||||||
const callback = async (inputs, loggerService, dockerComposeService) => {
|
const callback = async (inputs, loggerService, dockerComposeService) => {
|
||||||
|
const composeVersion = await dockerComposeService.version(inputs);
|
||||||
|
loggerService.info(`docker-compose version: ${composeVersion}`);
|
||||||
await dockerComposeService.up(inputs);
|
await dockerComposeService.up(inputs);
|
||||||
loggerService.info("compose started");
|
loggerService.info("docker-compose is up");
|
||||||
};
|
};
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
(0, runner_1.run)(callback);
|
(0, runner_1.run)(callback);
|
||||||
|
|||||||
11
dist/post.js
generated
vendored
11
dist/post.js
generated
vendored
@ -25994,6 +25994,10 @@ class DockerComposeService {
|
|||||||
output: out,
|
output: out,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
async version(inputs) {
|
||||||
|
const result = await docker_compose_1.v2.version(this.getCommonOptions(inputs));
|
||||||
|
return result.data.version;
|
||||||
|
}
|
||||||
getCommonOptions(inputs) {
|
getCommonOptions(inputs) {
|
||||||
return {
|
return {
|
||||||
config: inputs.composeFiles,
|
config: inputs.composeFiles,
|
||||||
@ -36440,13 +36444,14 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
*/
|
*/
|
||||||
const runner_1 = __nccwpck_require__(3878);
|
const runner_1 = __nccwpck_require__(3878);
|
||||||
const callback = async (inputs, loggerService, dockerComposeService) => {
|
const callback = async (inputs, loggerService, dockerComposeService) => {
|
||||||
|
console.log("ok");
|
||||||
const { error, output } = await dockerComposeService.logs(inputs);
|
const { error, output } = await dockerComposeService.logs(inputs);
|
||||||
if (error) {
|
if (error) {
|
||||||
loggerService.debug("compose error:\n" + error);
|
loggerService.debug("docker-compose error:\n" + error);
|
||||||
}
|
}
|
||||||
loggerService.debug("compose logs:\n" + output);
|
loggerService.debug("docker-compose logs:\n" + output);
|
||||||
await dockerComposeService.down(inputs);
|
await dockerComposeService.down(inputs);
|
||||||
loggerService.info("compose removed");
|
loggerService.info("docker-compose is down");
|
||||||
};
|
};
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
(0, runner_1.run)(callback);
|
(0, runner_1.run)(callback);
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
version: '3.8'
|
version: "3.8"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
test_volume: {}
|
test_volume: {}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
helloworld:
|
service-a:
|
||||||
image: ${IMAGE_NAME}
|
image: ${IMAGE_NAME}
|
||||||
|
command: ["tail", "-f", "/dev/null"]
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
version: '3.8'
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
helloworld4:
|
service-d:
|
||||||
|
image: busybox
|
||||||
|
command: ["tail", "-f", "/dev/null"]
|
||||||
profiles: [profile-2]
|
profiles: [profile-2]
|
||||||
image: hello-world
|
|
||||||
|
|||||||
@ -1,16 +1,19 @@
|
|||||||
version: '3.8'
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
service-a:
|
||||||
|
image: busybox
|
||||||
|
command: ["tail", "-f", "/dev/null"]
|
||||||
|
volumes:
|
||||||
|
- test_volume:/test:Z
|
||||||
|
service-b:
|
||||||
|
image: busybox
|
||||||
|
command: ["tail", "-f", "/dev/null"]
|
||||||
|
profiles: [profile-1]
|
||||||
|
service-c:
|
||||||
|
image: busybox
|
||||||
|
command: ["tail", "-f", "/dev/null"]
|
||||||
|
profiles: [profile-2]
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
test_volume: {}
|
test_volume: {}
|
||||||
|
|
||||||
services:
|
|
||||||
helloworld:
|
|
||||||
image: hello-world
|
|
||||||
volumes:
|
|
||||||
- test_volume:/test:Z
|
|
||||||
helloworld2:
|
|
||||||
profiles: [profile-1]
|
|
||||||
image: hello-world
|
|
||||||
helloworld3:
|
|
||||||
profiles: [profile-2]
|
|
||||||
image: hello-world
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ let setFailedMock: jest.SpiedFunction<typeof core.setFailed>;
|
|||||||
let getInputsMock: jest.SpiedFunction<typeof InputService.prototype.getInputs>;
|
let getInputsMock: jest.SpiedFunction<typeof InputService.prototype.getInputs>;
|
||||||
let debugMock: jest.SpiedFunction<typeof LoggerService.prototype.debug>;
|
let debugMock: jest.SpiedFunction<typeof LoggerService.prototype.debug>;
|
||||||
let infoMock: jest.SpiedFunction<typeof LoggerService.prototype.info>;
|
let infoMock: jest.SpiedFunction<typeof LoggerService.prototype.info>;
|
||||||
|
let versionMock: jest.SpiedFunction<typeof DockerComposeService.prototype.version>;
|
||||||
let upMock: jest.SpiedFunction<typeof DockerComposeService.prototype.up>;
|
let upMock: jest.SpiedFunction<typeof DockerComposeService.prototype.up>;
|
||||||
|
|
||||||
describe("index", () => {
|
describe("index", () => {
|
||||||
@ -17,6 +18,7 @@ describe("index", () => {
|
|||||||
infoMock = jest.spyOn(LoggerService.prototype, "info").mockImplementation();
|
infoMock = jest.spyOn(LoggerService.prototype, "info").mockImplementation();
|
||||||
debugMock = jest.spyOn(LoggerService.prototype, "debug").mockImplementation();
|
debugMock = jest.spyOn(LoggerService.prototype, "debug").mockImplementation();
|
||||||
getInputsMock = jest.spyOn(InputService.prototype, "getInputs");
|
getInputsMock = jest.spyOn(InputService.prototype, "getInputs");
|
||||||
|
versionMock = jest.spyOn(DockerComposeService.prototype, "version");
|
||||||
upMock = jest.spyOn(DockerComposeService.prototype, "up");
|
upMock = jest.spyOn(DockerComposeService.prototype, "up");
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -30,10 +32,14 @@ describe("index", () => {
|
|||||||
cwd: "/current/working/dir",
|
cwd: "/current/working/dir",
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
versionMock.mockResolvedValueOnce("1.2.3");
|
||||||
upMock.mockResolvedValueOnce();
|
upMock.mockResolvedValueOnce();
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||||
await require("../src/index");
|
await require("../src/index");
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||||
|
|
||||||
|
expect(infoMock).toHaveBeenNthCalledWith(1, "docker-compose version: 1.2.3");
|
||||||
|
|
||||||
// Verify that all of the functions were called correctly
|
// Verify that all of the functions were called correctly
|
||||||
expect(debugMock).toHaveBeenNthCalledWith(
|
expect(debugMock).toHaveBeenNthCalledWith(
|
||||||
@ -51,6 +57,6 @@ describe("index", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
expect(setFailedMock).not.toHaveBeenCalled();
|
expect(setFailedMock).not.toHaveBeenCalled();
|
||||||
expect(infoMock).toHaveBeenCalledWith("compose started");
|
expect(infoMock).toHaveBeenNthCalledWith(2, "docker-compose is up");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -11,8 +11,11 @@ const callback: RunCallback = async (
|
|||||||
loggerService: LoggerService,
|
loggerService: LoggerService,
|
||||||
dockerComposeService: DockerComposeService
|
dockerComposeService: DockerComposeService
|
||||||
) => {
|
) => {
|
||||||
|
const composeVersion = await dockerComposeService.version(inputs);
|
||||||
|
loggerService.info(`docker-compose version: ${composeVersion}`);
|
||||||
|
|
||||||
await dockerComposeService.up(inputs);
|
await dockerComposeService.up(inputs);
|
||||||
loggerService.info("compose started");
|
loggerService.info("docker-compose is up");
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
|
|||||||
@ -54,7 +54,7 @@ describe("post", () => {
|
|||||||
cwd: "/current/working/dir",
|
cwd: "/current/working/dir",
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(debugMock).toHaveBeenNthCalledWith(2, "compose logs:\nlog");
|
expect(debugMock).toHaveBeenNthCalledWith(2, "docker-compose logs:\nlog");
|
||||||
|
|
||||||
expect(downMock).toHaveBeenCalledWith({
|
expect(downMock).toHaveBeenCalledWith({
|
||||||
composeFiles: ["docker-compose.yml"],
|
composeFiles: ["docker-compose.yml"],
|
||||||
@ -66,6 +66,6 @@ describe("post", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
expect(setFailedMock).not.toHaveBeenCalled();
|
expect(setFailedMock).not.toHaveBeenCalled();
|
||||||
expect(infoMock).toHaveBeenCalledWith("compose removed");
|
expect(infoMock).toHaveBeenCalledWith("docker-compose is down");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -11,17 +11,18 @@ const callback: RunCallback = async (
|
|||||||
loggerService: LoggerService,
|
loggerService: LoggerService,
|
||||||
dockerComposeService: DockerComposeService
|
dockerComposeService: DockerComposeService
|
||||||
) => {
|
) => {
|
||||||
|
console.log("ok");
|
||||||
const { error, output } = await dockerComposeService.logs(inputs);
|
const { error, output } = await dockerComposeService.logs(inputs);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
loggerService.debug("compose error:\n" + error);
|
loggerService.debug("docker-compose error:\n" + error);
|
||||||
}
|
}
|
||||||
|
|
||||||
loggerService.debug("compose logs:\n" + output);
|
loggerService.debug("docker-compose logs:\n" + output);
|
||||||
|
|
||||||
await dockerComposeService.down(inputs);
|
await dockerComposeService.down(inputs);
|
||||||
|
|
||||||
loggerService.info("compose removed");
|
loggerService.info("docker-compose is down");
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
|
|||||||
@ -10,6 +10,7 @@ describe("DockerComposeService", () => {
|
|||||||
let upManyMock: jest.SpiedFunction<typeof v2.upMany>;
|
let upManyMock: jest.SpiedFunction<typeof v2.upMany>;
|
||||||
let downMock: jest.SpiedFunction<typeof v2.down>;
|
let downMock: jest.SpiedFunction<typeof v2.down>;
|
||||||
let logsMock: jest.SpiedFunction<typeof v2.logs>;
|
let logsMock: jest.SpiedFunction<typeof v2.logs>;
|
||||||
|
let versionMock: jest.SpiedFunction<typeof v2.version>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
service = new DockerComposeService();
|
service = new DockerComposeService();
|
||||||
@ -17,6 +18,7 @@ describe("DockerComposeService", () => {
|
|||||||
upManyMock = jest.spyOn(v2, "upMany").mockImplementation();
|
upManyMock = jest.spyOn(v2, "upMany").mockImplementation();
|
||||||
downMock = jest.spyOn(v2, "down").mockImplementation();
|
downMock = jest.spyOn(v2, "down").mockImplementation();
|
||||||
logsMock = jest.spyOn(v2, "logs").mockImplementation();
|
logsMock = jest.spyOn(v2, "logs").mockImplementation();
|
||||||
|
versionMock = jest.spyOn(v2, "version").mockImplementation();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@ -114,4 +116,35 @@ describe("DockerComposeService", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("version", () => {
|
||||||
|
it("should call version with correct options", async () => {
|
||||||
|
const inputs: Inputs = {
|
||||||
|
composeFiles: ["docker-compose.yml"],
|
||||||
|
services: [],
|
||||||
|
composeFlags: [],
|
||||||
|
upFlags: [],
|
||||||
|
downFlags: [],
|
||||||
|
cwd: "/current/working/dir",
|
||||||
|
};
|
||||||
|
|
||||||
|
versionMock.mockResolvedValue({
|
||||||
|
exitCode: 0,
|
||||||
|
out: "",
|
||||||
|
err: "",
|
||||||
|
data: {
|
||||||
|
version: "1.2.3",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await service.version(inputs);
|
||||||
|
|
||||||
|
expect(versionMock).toHaveBeenCalledWith({
|
||||||
|
composeOptions: [],
|
||||||
|
config: ["docker-compose.yml"],
|
||||||
|
log: true,
|
||||||
|
cwd: "/current/working/dir",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -39,6 +39,11 @@ export class DockerComposeService {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async version(inputs: Inputs): Promise<string> {
|
||||||
|
const result = await v2.version(this.getCommonOptions(inputs));
|
||||||
|
return result.data.version;
|
||||||
|
}
|
||||||
|
|
||||||
private getCommonOptions(inputs: Inputs): IDockerComposeOptions {
|
private getCommonOptions(inputs: Inputs): IDockerComposeOptions {
|
||||||
return {
|
return {
|
||||||
config: inputs.composeFiles,
|
config: inputs.composeFiles,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user