diff --git a/.vscode/launch.json b/.vscode/launch.json index bb07030..f192208 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,7 +12,8 @@ "start" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "valid_set" }, "skipFiles": [ @@ -30,7 +31,8 @@ "test" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "valid_set" }, "skipFiles": [ @@ -51,7 +53,8 @@ "--color=yes" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "valid_set" }, "justMyCode": true @@ -67,7 +70,8 @@ "start" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "existing_valid_theme_set" }, "skipFiles": [ @@ -85,7 +89,8 @@ "test" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "existing_valid_theme_set" }, "skipFiles": [ @@ -106,7 +111,8 @@ "--color=yes" ], "env": { - "ENTRY_FOLDER": "${workspaceFolder}/test", + "CI_PROJECT_DIR": "${workspaceFolder}", + "ENTRY_FOLDER": "test", "PACKAGE_NAME": "existing_valid_theme_set" }, "justMyCode": true diff --git a/src/build-manifest.js b/src/build-manifest.js index 2a0055f..1282d52 100644 --- a/src/build-manifest.js +++ b/src/build-manifest.js @@ -5,10 +5,11 @@ const { exit } = require("process"); // Fetch envs to target the right folder -const slug = process.env["PACKAGE_NAME"]; +const workDir = process.env["CI_PROJECT_DIR"]; const root = process.env["ENTRY_FOLDER"]; -if (!slug || !root) exit(1); -let workingDirectory = path.join(root, slug); +const slug = process.env["PACKAGE_NAME"]; +if (!workDir || !slug || !root) exit(1); +let workingDirectory = path.join(workDir, root, slug); // extract metadata from them fs.readdir(workingDirectory, (err, files) => { diff --git a/src/manifest.spec.js b/src/manifest.spec.js index 2847367..5fe9ab3 100644 --- a/src/manifest.spec.js +++ b/src/manifest.spec.js @@ -33,11 +33,13 @@ function flatReferences(manifest) { describe('Mandatory Checks', function () { before(function () { + const workDir = process.env["CI_PROJECT_DIR"]; + expect(workDir).to.be.a("string").that.is.not.empty; const slug = process.env["PACKAGE_NAME"]; expect(slug).to.be.a("string").that.is.not.empty; const root = process.env["ENTRY_FOLDER"]; expect(root).to.be.a("string").that.is.not.empty; - workingDirectory = path.join(root, slug); + workingDirectory = path.join(workDir, root, slug); files = fs.readdirSync(workingDirectory); expect(files).to.be.an('array').that.is.not.empty; validator = ajv.compile(JSON.parse(fs.readFileSync(themeSchemaFile, 'utf8'))); diff --git a/src/test_images.py b/src/test_images.py index cfa149f..eb97ac3 100644 --- a/src/test_images.py +++ b/src/test_images.py @@ -40,9 +40,10 @@ def _validate_brightness_image(working_path, theme_config, high_light, image_lis @pytest.fixture def working_path(): # get the global variables containing gitlab-given project slug. + work_directory = os.environ["CI_PROJECT_DIR"] + entry_folder = os.environ["ENTRY_FOLDER"] project_slug = os.environ["PACKAGE_NAME"] - root_folder = os.environ["ENTRY_FOLDER"] - working_path = Path(root_folder, project_slug) + working_path = Path(work_directory, entry_folder, project_slug) if not working_path.is_dir(): raise FileNotFoundError(f"No project found for the given {working_path}.") return working_path