che: [Dogfooding] Cannot build che-theia on che.openshift.io
Describe the bug
For daily development using che.openshift.io I need to be able to build Che-Theia project. For now it’s impossible to do.
Steps to reproduce
Create a workspace using this devfile
metadata:
name: test
projects:
- name: theia
source:
location: 'https://github.com/eclipse-theia/theia.git'
type: git
branch: master
components:
- id: redhat/vscode-yaml/latest
type: chePlugin
- mountSources: true
endpoints:
- name: theia-dev-flow
attributes:
protocol: http
public: 'true'
port: 3010
memoryLimit: 3Gi
type: dockerimage
alias: che-dev
image: 'eclipse/che-theia-dev:next'
- id: che-incubator/typescript/latest
memoryLimit: 2048M
type: chePlugin
- id: eclipse/che-machine-exec-plugin/latest
type: chePlugin
- id: eclipse/che-theia/latest
memoryLimit: 2Gi
type: cheEditor
alias: theia-editor
apiVersion: 1.0.0
Then open a terminal in che-dev container, go to theia directory and build by yarn command.

When I turned off persist volumes, it did not affect the result.
attributes:
persistVolumes: 'false'
After some playing with files (yarn builder creates, copies some files, etc), I got a message that quota has been exceeded.

Runtime
- che.openshift.io
Screenshots


About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 15 (15 by maintainers)
I have created https://github.com/eclipse/che/issues/17205
@ibuziuk let me copy here a part of my email to che-dev where I explained how I develop che-theia.
The main idea is using temporary directory in the root where the limitation of disk space is 3 gigabytes, which is pretty enough to build the project.
The development flow includes:
Workspace creation, cloning theia sources
To create a workspace I use devdile[1], which has a set of commands helping me to operate with source code. After starting, my workspace has cloned two theia and che-theia projects. I’m focused on developing packages in theia core, that’s why sources of che-theia temporary are not used.
Copying sources to ‘/tmp/theia’ directory
To copy sources to ‘/tmp/theia’ directory I use rsync, running in che-dev container. As eclipse/che-theia-dev image does not have rsync tool, I had to extend that image[2] and install rsync. The devfile has ‘1 Rsync Theia’ command to easily synchronizing ‘/protects/theia’ directory with ‘/tmp/theia’.
Initlalizing che-theia
To initialize che-theia we need to run ‘che:theia init’ in ‘/tmp/theia’ directory. The ‘2 Init che:theia’ command does that in one click.
Building
‘3 Build che:theia’ command runs ‘yarn’ in ‘/tmp/theia’ directory.
Launching
For Che-Theia I prefer to use dedicated directories for plugins, default plugins and for projects, which is used as Theia workspace directory. In the directory with default plugins I copy all the plugins from ‘/default-theia-plugins’, which is accessible only from ‘theia-ide’. That’s why ‘4.1 Prepare theia-* dirs’ command is running in that container.
‘4.2 Launch’ command sets necessary variables and launches Che-Theia in ‘che-dev’ container.
To open Che-Theia, click ‘che-dev/theia-dev-flow’ node in My Workspace view.
Making and applying changes
Each time after doing changes, I synchronize sources from ‘/projects/theia’ with sources in ‘/tmp/theia’ using ‘1 Rsync Theia’ command. Then I build Theia with ‘3 Build che:theia’ and launch with ‘4.2 Launch’.