Uploaded image for project: 'Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces) '
  1. Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces)
  2. CRW-879

Make CRW Theia builds in Jenkins less brittle and error-prone

XMLWordPrintable

      Today, the process of building Theia so it can be used in CRW is a VERY cumbersome one:

      • build theia-dev container
      • collect artifacts from that container into a tarball, save it in Jenkins
      • rebuild the container in "ubi8-brew" offline mode to verify it will work in Brew
      • build theia (depends on theia-dev) container
      • collect artifacts from that container into a tarball, save it in Jenkins
      • rebuild the container in "ubi8-brew" offline mode to verify it will work in Brew
      • build theia-endpoint (depends on theia) container
      • collect artifacts from that container into a tarball, save it in Jenkins
      • rebuild the container in "ubi8-brew" offline mode to verify it will work in Brew

      When it works, it produces 13 artifacts that are later fetched via 3 Jenkins builds into pkgs.devel so that the artifacts are available offline in Brew, then triggers a build in Brew. It generally takes 90-120 mins to run, plus the downstream Jenkins-Brew jobs.

      When it fails, it fails for weeks at a time as various members of Prod, Devex, and Editors team work together to make changes in Theia work in the CRW assembly too.

      Here's the latest example of the failure: https://github.com/eclipse/che/issues/16844

      I'd suggest that we could do the following to make it less brittle:

      a) split into 3 jobs so that theia-dev, theia, and theia-endpoint containers/artifacts can be build & published separately
      b) don't bother with the pre-flight ubi8-brew offline build; just build online and collect artifacts, then assume Brew will work
      c) drop dependency on theia-dev entirely, since it's an artifact that is only used to build theia, but never again used in CRW. Possible
      d) make the theia-endpoint container not depend on theia

      I don't know which of those are viable, but I'd like help from the Editors team to remove this weeks-long burden every time we need to move to an new version of Theia and che-theia.

      Help??

      Additionally, we should not trigger all three theia-dev, theia and theia-endpoint builds in Brew in parallel, since they depend on each other. Instead, the Jenkins job should wait until each build is done before triggering the next one.

            nickboldt Nick Boldt
            nickboldt Nick Boldt
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: