chore: Allow pointing to local artifact for gitlab-vscode-extension build

What does this MR do and why?

This change adds support for a new "path" mode to the build system, alongside the existing "url" mode.

In "path" mode, the system can now build the GitLab VSCode Extension by copying files directly from a local directory on disk, rather than downloading them from a URL. The build process creates the necessary output folders, copies browser-compatible files from the specified local path, and sets up dependencies so that touching a version file will automatically trigger a rebuild when needed.

Why

In ci: Run Web IDE integration tests in pipeline (gitlab-vscode-extension!2881 - merged), we are creating a CI pipeline job in the GitLab VSCode Extension project to run the Web IDE's Code Suggestions integration tests. This will allow us to catch regressions before the GitLab VSCode Extension is released. The path mode in the Web IDE's GitLab VSCode Extension package will allow us to easily reference the local extension build generated in a merge request.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

This MR doesn't introduce user-facing changes.

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Create a file packages/vscode-extension-gitlab-vscode-extension/gitlab_vscode_extension_version.local.json in your Web IDE project.

  2. Add this content to the file:

    {
        "version": "6.37.0",
        "type": "path",
        "location": "[path-to-gitlab-vscode-extension-project]"
    }
  3. In the GitLab VSCode Extension project, run the command npm run build:browser

  4. In the Web IDE project, run the command yarn build:example .

  5. The Web IDE will copy the build artifacts of the local GitLab VSCode Extension project rather than downloading the production artifact.

Edited by Enrique Alcántara

Merge request reports

Loading