@eclipse-che/che-e2e 7.102.0-next-fd9242b → 7.102.0-next-36ecc36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/FACTORY_TEST_CONSTANTS.ts +6 -0
- package/dist/constants/FACTORY_TEST_CONSTANTS.js +4 -0
- package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -1
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +23 -14
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -1
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +15 -1
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -1
- package/package.json +1 -1
- package/specs/api/BuildPushRunPodmanContainerAPI.spec.ts +26 -14
- package/specs/miscellaneous/KubedockPodmanTest.spec.ts +15 -1
|
@@ -20,6 +20,7 @@ export enum GitProviderType {
|
|
|
20
20
|
|
|
21
21
|
export const FACTORY_TEST_CONSTANTS: {
|
|
22
22
|
TS_SELENIUM_FACTORY_GIT_REPO_URL: string;
|
|
23
|
+
TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL: string;
|
|
23
24
|
TS_SELENIUM_PROJECT_NAME: string;
|
|
24
25
|
TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO: boolean;
|
|
25
26
|
TS_SELENIUM_FACTORY_GIT_PROVIDER: string;
|
|
@@ -36,6 +37,11 @@ export const FACTORY_TEST_CONSTANTS: {
|
|
|
36
37
|
*/
|
|
37
38
|
TS_SELENIUM_FACTORY_GIT_REPO_URL: process.env.TS_SELENIUM_FACTORY_GIT_REPO_URL || '',
|
|
38
39
|
|
|
40
|
+
/**
|
|
41
|
+
* url to create factory for airgap/disconnected environments
|
|
42
|
+
*/
|
|
43
|
+
TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL: process.env.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL || '',
|
|
44
|
+
|
|
39
45
|
/**
|
|
40
46
|
* git repository name
|
|
41
47
|
*/
|
|
@@ -29,6 +29,10 @@ exports.FACTORY_TEST_CONSTANTS = {
|
|
|
29
29
|
* url to create factory
|
|
30
30
|
*/
|
|
31
31
|
TS_SELENIUM_FACTORY_GIT_REPO_URL: process.env.TS_SELENIUM_FACTORY_GIT_REPO_URL || '',
|
|
32
|
+
/**
|
|
33
|
+
* url to create factory for airgap/disconnected environments
|
|
34
|
+
*/
|
|
35
|
+
TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL: process.env.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL || '',
|
|
32
36
|
/**
|
|
33
37
|
* git repository name
|
|
34
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FACTORY_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/FACTORY_TEST_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AACxE,+DAA4D;AAE5D,IAAY,eAOX;AAPD,WAAY,eAAe;IAC1B,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sEAAmD,CAAA;IACnD,sEAAmD,CAAA;IACnD,2DAAwC,CAAA;IACxC,gDAA6B,CAAA;AAC9B,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAEY,QAAA,sBAAsB,
|
|
1
|
+
{"version":3,"file":"FACTORY_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/FACTORY_TEST_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AACxE,+DAA4D;AAE5D,IAAY,eAOX;AAPD,WAAY,eAAe;IAC1B,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sEAAmD,CAAA;IACnD,sEAAmD,CAAA;IACnD,2DAAwC,CAAA;IACxC,gDAA6B,CAAA;AAC9B,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAEY,QAAA,sBAAsB,GAQ/B;IACH;;OAEG;IACH,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,eAAe,CAAC,MAAM;IAExG;;OAEG;IACH,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE;IAEpF;;OAEG;IACH,uCAAuC,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,EAAE;IAElG;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;IAEpE;;OAEG;IACH,uCAAuC,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,MAAM;IAEvG;;OAEG;IACH,mCAAmC,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,QAAQ;IAEhG;;OAEG;IACH,uBAAuB;QACtB,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,uBAAuB;YACnC,yCAAmB,CAAC,oBAAoB,GAAG,eAAe,GAAG,IAAI,CAAC,gCAAgC,CAClG,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -15,6 +15,7 @@ const inversify_types_1 = require("../../configs/inversify.types");
|
|
|
15
15
|
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
16
16
|
const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
|
|
17
17
|
const MochaHooks_1 = require("../MochaHooks");
|
|
18
|
+
const FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
|
|
18
19
|
suite(`Test podman build container functionality ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
19
20
|
const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
|
|
20
21
|
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
@@ -28,6 +29,16 @@ suite(`Test podman build container functionality ${BASE_TEST_CONSTANTS_1.BASE_TE
|
|
|
28
29
|
let originalBuildCapabilitiesSetting = '';
|
|
29
30
|
let devSpacesNamespace = '';
|
|
30
31
|
let cheClusterName = '';
|
|
32
|
+
/**
|
|
33
|
+
* test requires the following files to be present in the workspace root:
|
|
34
|
+
* - A Dockerfile named Dockerfile.${ARCH} with content:
|
|
35
|
+
* FROM scratch
|
|
36
|
+
* COPY hello /hello
|
|
37
|
+
* CMD ["/hello"]
|
|
38
|
+
* - A compiled 'hello' binary, that prints "Hello from Kubedock!" to output.
|
|
39
|
+
*
|
|
40
|
+
* Used to build and run a container in a pod for verifying Podman functionality.
|
|
41
|
+
*/
|
|
31
42
|
const buildPushScript = `
|
|
32
43
|
export ARCH=$(uname -m)
|
|
33
44
|
export DATE=$(date +"%m%d%y")
|
|
@@ -36,19 +47,10 @@ export TKN=$(oc whoami -t)
|
|
|
36
47
|
export REG="image-registry.openshift-image-registry.svc:5000"
|
|
37
48
|
export PROJECT=$(oc project -q)
|
|
38
49
|
export IMG="\${REG}/\${PROJECT}/hello:\${DATE}"
|
|
39
|
-
|
|
40
|
-
# Create test directory and Dockerfile
|
|
41
|
-
mkdir -p /projects/dockerfile-test
|
|
42
|
-
cd /projects/dockerfile-test
|
|
43
|
-
|
|
44
|
-
cat > Dockerfile << EOF
|
|
45
|
-
FROM registry.access.redhat.com/ubi8/ubi-minimal:latest
|
|
46
|
-
RUN echo "Hello from Kubedock!" > /hello.txt
|
|
47
|
-
CMD ["cat", "/hello.txt"]
|
|
48
|
-
EOF
|
|
50
|
+
cd $PROJECT_SOURCE
|
|
49
51
|
|
|
50
52
|
podman login --tls-verify=false --username "\${USER}" --password "\${TKN}" "\${REG}"
|
|
51
|
-
podman build -t "\${IMG}" .
|
|
53
|
+
podman build -t "\${IMG}" -f Dockerfile.\${ARCH} .
|
|
52
54
|
podman push --tls-verify=false "\${IMG}"
|
|
53
55
|
`;
|
|
54
56
|
const runTestScript = `
|
|
@@ -70,6 +72,10 @@ fi
|
|
|
70
72
|
|
|
71
73
|
oc logs test-hello-pod
|
|
72
74
|
`;
|
|
75
|
+
const factoryUrl = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
76
|
+
? FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
77
|
+
'https://gh.crw-qe.com/test-automation-only/dockerfile-hello-world'
|
|
78
|
+
: FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://github.com/crw-qe/dockerfile-hello-world';
|
|
73
79
|
suiteSetup('Setup DevSpaces with container build capabilities enabled', function () {
|
|
74
80
|
kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
75
81
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
@@ -90,9 +96,8 @@ oc logs test-hello-pod
|
|
|
90
96
|
suiteSetup('Login into DevSpaces', async function () {
|
|
91
97
|
await loginTests.loginIntoChe();
|
|
92
98
|
});
|
|
93
|
-
test(
|
|
94
|
-
await
|
|
95
|
-
await workspaceHandlingTests.createAndOpenWorkspace('Empty Workspace');
|
|
99
|
+
test(`Create and open new workspace from: ${factoryUrl}`, async function () {
|
|
100
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
96
101
|
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
97
102
|
workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
98
103
|
(0, chai_1.expect)(workspaceName, 'Workspace name was not detected').not.empty;
|
|
@@ -101,6 +106,10 @@ oc logs test-hello-pod
|
|
|
101
106
|
test('Wait for workspace readiness', async function () {
|
|
102
107
|
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
103
108
|
});
|
|
109
|
+
test('Check the project files were imported', async function () {
|
|
110
|
+
const projectSection = await projectAndFileTests.getProjectViewSession();
|
|
111
|
+
(0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.x86_64'), 'Dockerfile not found in the project tree').not.undefined;
|
|
112
|
+
});
|
|
104
113
|
test('Build and push container image from workspace', function () {
|
|
105
114
|
kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
106
115
|
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildPushRunPodmanContainerAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/BuildPushRunPodmanContainerAPI.spec.ts"],"names":[],"mappings":";;AAAA;;;;;;;;wEAQwE;AACxE,+BAA8B;AAC9B,qEAA8D;AAC9D,mEAA+D;AAC/D,6EAA0E;AAC1E,uFAAoF;AAGpF,8CAAyD;
|
|
1
|
+
{"version":3,"file":"BuildPushRunPodmanContainerAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/BuildPushRunPodmanContainerAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingT
|
|
|
6
6
|
const MochaHooks_1 = require("../MochaHooks");
|
|
7
7
|
const chai_1 = require("chai");
|
|
8
8
|
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
9
|
+
const FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
|
|
9
10
|
suite(`Check possibility to manage containers within a workspace with kubedock and podman ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
10
11
|
const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
|
|
11
12
|
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
@@ -15,6 +16,16 @@ suite(`Check possibility to manage containers within a workspace with kubedock a
|
|
|
15
16
|
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
16
17
|
let kubernetesCommandLineToolsExecutor;
|
|
17
18
|
let workspaceName = '';
|
|
19
|
+
/**
|
|
20
|
+
* test requires the following files to be present in the workspace root:
|
|
21
|
+
* - A Dockerfile named Dockerfile.${ARCH} with content:
|
|
22
|
+
* FROM scratch
|
|
23
|
+
* COPY hello /hello
|
|
24
|
+
* CMD ["/hello"]
|
|
25
|
+
* - A compiled 'hello' binary, that prints "Hello from Kubedock!" to output.
|
|
26
|
+
*
|
|
27
|
+
* Used to build and run a container in a pod for verifying Podman functionality.
|
|
28
|
+
*/
|
|
18
29
|
const testScript = '# Enable Kubedock\n' +
|
|
19
30
|
'export KUBEDOCK_ENABLED=true\n' +
|
|
20
31
|
'echo KUBEDOCK_ENABLED\n' +
|
|
@@ -42,7 +53,10 @@ suite(`Check possibility to manage containers within a workspace with kubedock a
|
|
|
42
53
|
'export IMG="${REG}/${PROJECT}/hello:${DATE}"\n' +
|
|
43
54
|
'podman login --tls-verify=false --username ${USER} --password ${TKN} ${REG}\n' +
|
|
44
55
|
'podman run --rm ${IMG}';
|
|
45
|
-
const factoryUrl =
|
|
56
|
+
const factoryUrl = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
57
|
+
? FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
58
|
+
'https://gh.crw-qe.com/test-automation-only/dockerfile-hello-world'
|
|
59
|
+
: FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://github.com/crw-qe/dockerfile-hello-world';
|
|
46
60
|
suiteSetup('Login', async function () {
|
|
47
61
|
await loginTests.loginIntoChe();
|
|
48
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubedockPodmanTest.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/KubedockPodmanTest.spec.ts"],"names":[],"mappings":";;AAWA,mEAA+D;AAC/D,qEAA8D;AAC9D,uFAAoF;AACpF,8CAAyD;AAGzD,+BAA8B;AAG9B,6EAA0E;
|
|
1
|
+
{"version":3,"file":"KubedockPodmanTest.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/KubedockPodmanTest.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -21,6 +21,8 @@ import { ShellString } from 'shelljs';
|
|
|
21
21
|
import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
|
|
22
22
|
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
23
23
|
import { ShellExecutor } from '../../utils/ShellExecutor';
|
|
24
|
+
import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
|
|
25
|
+
import { ViewSection } from 'monaco-page-objects';
|
|
24
26
|
|
|
25
27
|
suite(`Test podman build container functionality ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
26
28
|
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
@@ -37,6 +39,16 @@ suite(`Test podman build container functionality ${BASE_TEST_CONSTANTS.TEST_ENVI
|
|
|
37
39
|
let devSpacesNamespace: string = '';
|
|
38
40
|
let cheClusterName: string = '';
|
|
39
41
|
|
|
42
|
+
/**
|
|
43
|
+
* test requires the following files to be present in the workspace root:
|
|
44
|
+
* - A Dockerfile named Dockerfile.${ARCH} with content:
|
|
45
|
+
* FROM scratch
|
|
46
|
+
* COPY hello /hello
|
|
47
|
+
* CMD ["/hello"]
|
|
48
|
+
* - A compiled 'hello' binary, that prints "Hello from Kubedock!" to output.
|
|
49
|
+
*
|
|
50
|
+
* Used to build and run a container in a pod for verifying Podman functionality.
|
|
51
|
+
*/
|
|
40
52
|
const buildPushScript: string = `
|
|
41
53
|
export ARCH=$(uname -m)
|
|
42
54
|
export DATE=$(date +"%m%d%y")
|
|
@@ -45,19 +57,10 @@ export TKN=$(oc whoami -t)
|
|
|
45
57
|
export REG="image-registry.openshift-image-registry.svc:5000"
|
|
46
58
|
export PROJECT=$(oc project -q)
|
|
47
59
|
export IMG="\${REG}/\${PROJECT}/hello:\${DATE}"
|
|
48
|
-
|
|
49
|
-
# Create test directory and Dockerfile
|
|
50
|
-
mkdir -p /projects/dockerfile-test
|
|
51
|
-
cd /projects/dockerfile-test
|
|
52
|
-
|
|
53
|
-
cat > Dockerfile << EOF
|
|
54
|
-
FROM registry.access.redhat.com/ubi8/ubi-minimal:latest
|
|
55
|
-
RUN echo "Hello from Kubedock!" > /hello.txt
|
|
56
|
-
CMD ["cat", "/hello.txt"]
|
|
57
|
-
EOF
|
|
60
|
+
cd $PROJECT_SOURCE
|
|
58
61
|
|
|
59
62
|
podman login --tls-verify=false --username "\${USER}" --password "\${TKN}" "\${REG}"
|
|
60
|
-
podman build -t "\${IMG}" .
|
|
63
|
+
podman build -t "\${IMG}" -f Dockerfile.\${ARCH} .
|
|
61
64
|
podman push --tls-verify=false "\${IMG}"
|
|
62
65
|
`;
|
|
63
66
|
|
|
@@ -81,6 +84,11 @@ fi
|
|
|
81
84
|
oc logs test-hello-pod
|
|
82
85
|
`;
|
|
83
86
|
|
|
87
|
+
const factoryUrl: string = BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
88
|
+
? FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
89
|
+
'https://gh.crw-qe.com/test-automation-only/dockerfile-hello-world'
|
|
90
|
+
: FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://github.com/crw-qe/dockerfile-hello-world';
|
|
91
|
+
|
|
84
92
|
suiteSetup('Setup DevSpaces with container build capabilities enabled', function (): void {
|
|
85
93
|
kubernetesCommandLineToolsExecutor = e2eContainer.get(CLASSES.KubernetesCommandLineToolsExecutor);
|
|
86
94
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
@@ -108,9 +116,8 @@ oc logs test-hello-pod
|
|
|
108
116
|
await loginTests.loginIntoChe();
|
|
109
117
|
});
|
|
110
118
|
|
|
111
|
-
test(
|
|
112
|
-
await
|
|
113
|
-
await workspaceHandlingTests.createAndOpenWorkspace('Empty Workspace');
|
|
119
|
+
test(`Create and open new workspace from: ${factoryUrl}`, async function (): Promise<void> {
|
|
120
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
114
121
|
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
115
122
|
workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
116
123
|
expect(workspaceName, 'Workspace name was not detected').not.empty;
|
|
@@ -121,6 +128,11 @@ oc logs test-hello-pod
|
|
|
121
128
|
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
122
129
|
});
|
|
123
130
|
|
|
131
|
+
test('Check the project files were imported', async function (): Promise<void> {
|
|
132
|
+
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
133
|
+
expect(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.x86_64'), 'Dockerfile not found in the project tree').not.undefined;
|
|
134
|
+
});
|
|
135
|
+
|
|
124
136
|
test('Build and push container image from workspace', function (): void {
|
|
125
137
|
kubernetesCommandLineToolsExecutor = e2eContainer.get(CLASSES.KubernetesCommandLineToolsExecutor);
|
|
126
138
|
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
@@ -21,6 +21,7 @@ import { ShellString } from 'shelljs';
|
|
|
21
21
|
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
22
22
|
import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
|
|
23
23
|
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
24
|
+
import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
|
|
24
25
|
|
|
25
26
|
suite(
|
|
26
27
|
`Check possibility to manage containers within a workspace with kubedock and podman ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`,
|
|
@@ -35,6 +36,16 @@ suite(
|
|
|
35
36
|
let kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor;
|
|
36
37
|
let workspaceName: string = '';
|
|
37
38
|
|
|
39
|
+
/**
|
|
40
|
+
* test requires the following files to be present in the workspace root:
|
|
41
|
+
* - A Dockerfile named Dockerfile.${ARCH} with content:
|
|
42
|
+
* FROM scratch
|
|
43
|
+
* COPY hello /hello
|
|
44
|
+
* CMD ["/hello"]
|
|
45
|
+
* - A compiled 'hello' binary, that prints "Hello from Kubedock!" to output.
|
|
46
|
+
*
|
|
47
|
+
* Used to build and run a container in a pod for verifying Podman functionality.
|
|
48
|
+
*/
|
|
38
49
|
const testScript: string =
|
|
39
50
|
'# Enable Kubedock\n' +
|
|
40
51
|
'export KUBEDOCK_ENABLED=true\n' +
|
|
@@ -66,7 +77,10 @@ suite(
|
|
|
66
77
|
'podman login --tls-verify=false --username ${USER} --password ${TKN} ${REG}\n' +
|
|
67
78
|
'podman run --rm ${IMG}';
|
|
68
79
|
|
|
69
|
-
const factoryUrl: string =
|
|
80
|
+
const factoryUrl: string = BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
81
|
+
? FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
82
|
+
'https://gh.crw-qe.com/test-automation-only/dockerfile-hello-world'
|
|
83
|
+
: FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://github.com/crw-qe/dockerfile-hello-world';
|
|
70
84
|
|
|
71
85
|
suiteSetup('Login', async function (): Promise<void> {
|
|
72
86
|
await loginTests.loginIntoChe();
|