feat: Integrate EduTheia landing page with separate tag parameter#57
feat: Integrate EduTheia landing page with separate tag parameter#57CodeByNikolas wants to merge 15 commits intomainfrom
Conversation
- Update test3 deployment to use ghcr.io/ls1intum/edutheia-landing-page - Add landing_page_tag input parameter to deployment workflows - Separate landing page versioning from theia-cloud components - Update preloading configuration for new landing page image
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds a new Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
deployments/test3.theia-test.artemis.cit.tum.de/values.yaml (1)
89-91:⚠️ Potential issue | 🟡 MinorMinor label casing: "Javascript" → "JavaScript", "Ocaml" → "OCaml".
These strings are user-visible in the landing page UI.
✏️ Proposed fix
- javascript-latest: - label: Javascript + javascript-latest: + label: JavaScript ocaml-latest: - label: Ocaml + label: OCaml🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@deployments/test3.theia-test.artemis.cit.tum.de/values.yaml` around lines 89 - 91, Update the user-visible language labels in values.yaml: change the label value under the javascript-latest entry from "Javascript" to "JavaScript" and change the label value under the ocaml-latest entry from "Ocaml" to "OCaml" so the UI displays correct casing; locate the entries by the keys javascript-latest and ocaml-latest and edit their label fields accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@deployments/test3.theia-test.artemis.cit.tum.de/values.yaml`:
- Line 55: Update the incorrect capitalization of the technology labels in
values.yaml by replacing the label value "Javascript" with "JavaScript" and
"Ocaml" with "OCaml" where those strings are defined (search for the literal
label entries "Javascript" and "Ocaml" in the app/landing page labels section of
values.yaml and change them accordingly) so the landing page UI shows the
correct names.
---
Outside diff comments:
In `@deployments/test3.theia-test.artemis.cit.tum.de/values.yaml`:
- Around line 89-91: Update the user-visible language labels in values.yaml:
change the label value under the javascript-latest entry from "Javascript" to
"JavaScript" and change the label value under the ocaml-latest entry from
"Ocaml" to "OCaml" so the UI displays correct casing; locate the entries by the
keys javascript-latest and ocaml-latest and edit their label fields accordingly.
There was a problem hiding this comment.
Pull request overview
Integrates the standalone EduTheia landing page container into the deployment workflows so the landing page can be versioned independently from Theia Cloud operator/service images.
Changes:
- Switched Helm deployment overrides to use
ghcr.io/ls1intum/edutheia-landing-pagewith a newlanding_page_taginput. - Updated test3 environment values to reference the new landing page image in both preloading and landing page configuration.
- Extended the PR deployment workflow to expose and pass through the new
landing_page_tag.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
deployments/test3.theia-test.artemis.cit.tum.de/values.yaml |
Updates test3 landing page + preloading image; also removes previously configured Java LS test-related entries. |
.github/workflows/deploy-theia.yml |
Adds landing_page_tag input and updates Helm --set overrides to deploy/preload the EduTheia landing page image. |
.github/workflows/deploy-pr.yml |
Exposes landing_page_tag in workflow_dispatch and passes it to the reusable deploy workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| theia-appdefinitions: | ||
| apps: | ||
| - name: java-ls-test | ||
| image: ghcr.io/ls1intum/theia/theia-no-ls | ||
| imageTag: pr-46 | ||
| options: | ||
| langserver-image: ghcr.io/ls1intum/theia/langserver-java:pr-46 | ||
|
|
||
| monitoring: | ||
| targetNamespaces: |
There was a problem hiding this comment.
The PR description doesn’t mention removing the entire theia-appdefinitions block (including the java-ls-test app) from test3. If that app is still needed for validating langserver behavior, this change will remove the server-side app definition and break those test sessions; please confirm it’s intentional or update the PR description accordingly.
.github/workflows/deploy-theia.yml
Outdated
| --set theia-cloud.landingPage.image="ghcr.io/ls1intum/edutheia-landing-page:${LANDING_PAGE_TAG}" \ | ||
| --set theia-cloud.operator.image="ghcr.io/ls1intum/theia/operator:${THEIA_CLOUD_TAG}" \ | ||
| --set theia-cloud.service.image="ghcr.io/ls1intum/theia/service:${THEIA_CLOUD_TAG}" \ | ||
| --set "theia-cloud.preloading.images[0]=ghcr.io/ls1intum/theia/landing-page:${THEIA_CLOUD_TAG}" \ | ||
| --set "theia-cloud.preloading.images[0]=ghcr.io/ls1intum/edutheia-landing-page:${LANDING_PAGE_TAG}" \ | ||
| --set "theia-cloud.preloading.images[1]=ghcr.io/ls1intum/theia/java-17:${IDE_IMAGES_TAG}" \ |
There was a problem hiding this comment.
This change makes the reusable deploy workflow always deploy ghcr.io/ls1intum/edutheia-landing-page (and preloads it) for any environment that calls this workflow (including staging + prod). The PR description implies rollout/testing is focused on test3; if you want a staged rollout, consider making the landing page image/repo configurable per environment (values.yaml) and only overriding it for test3 until validated.
| additionalApps: | ||
| java-17-latest: | ||
| label: Java 17 | ||
| c-latest: | ||
| label: C | ||
| javascript-latest: | ||
| label: Javascript | ||
| ocaml-latest: | ||
| label: Ocaml | ||
| python-latest: | ||
| label: Python | ||
| rust-latest: | ||
| label: Rust | ||
| java-ls-test: | ||
| label: Java LS Test | ||
| infoTitle: "🚀 Welcome to Test3 IDE Environment" |
There was a problem hiding this comment.
The PR description doesn’t mention removing the java-ls-test entry from the landing page’s additionalApps. If test3 users still rely on that shortcut, this will silently drop it from the UI; please confirm this removal is intended (or document it in the PR description).
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@deployments/test3.theia-test.artemis.cit.tum.de/values.yaml`:
- Around line 98-112: The loadingText value is in German and several footerLinks
(bugReport, featureRequest, about) point to a rickroll URL; update loadingText
to an English string consistent with the rest of the UI (e.g., "Loading, please
wait") and replace the URLs for footerLinks.bugReport,
footerLinks.featureRequest and footerLinks.about with the real
repository/issue-tracker or a sensible placeholder URL (e.g., project repo or
issues page) while keeping footerLinks.attribution.version unchanged; locate
these keys by name (loadingText, footerLinks.bugReport,
footerLinks.featureRequest, footerLinks.about) and modify their values
accordingly.
---
Duplicate comments:
In `@deployments/test3.theia-test.artemis.cit.tum.de/values.yaml`:
- Around line 89-91: The user-visible labels are improperly capitalised: change
the value for the key "label: Javascript" to the correct "JavaScript" and change
"ocaml-latest: label: Ocaml" to the correct "OCaml" so the landing page displays
proper product names; update those two label string values (search for the
symbols "label: Javascript" and "ocaml-latest: label: Ocaml" in the values.yaml
and replace accordingly).
Update chart dependency to version 1.3.0-next.4 which includes the footerLinks feature. This enables footer link customization in the landing page ConfigMap.
…ate landing page image to ghcr.io/EduIDE/eduidec-landing-page
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@deployments/test1.theia-test.artemis.cit.tum.de/values.yaml`:
- Line 60: Update all OCI image references that use an uppercase GHCR namespace
to lowercase to avoid pull failures: replace occurrences of "ghcr.io/EduIDE/..."
(e.g., the image token "ghcr.io/EduIDE/eduidec-landing-page:latest") with
"ghcr.io/eduide/..." across the deployment values files
(test1/test2/test3/theia-staging/theia), ensuring each image string is fully
lowercase (namespace and repository).
In `@deployments/test2.theia-test.artemis.cit.tum.de/values.yaml`:
- Line 60: The image repository names use uppercase letters (e.g., the string
"ghcr.io/EduIDE/eduidec-landing-page:latest") which violates the OCI requirement
that repository names be lowercase; update every occurrence of
"ghcr.io/EduIDE/..." to all-lowercase (e.g.,
"ghcr.io/eduide/eduidec-landing-page:latest") so image pulls succeed—search for
the "ghcr.io/EduIDE" token in values.yaml and replace each match (including the
other occurrence at the later image entry) with the lowercase repository path.
In `@deployments/theia-staging.artemis.cit.tum.de/values.yaml`:
- Line 59: The image reference "ghcr.io/EduIDE/eduidec-landing-page:latest" uses
an uppercase namespace which violates the OCI spec; change it to all-lowercase
(e.g., "ghcr.io/eduide/eduidec-landing-page:latest") so Kubernetes can pull the
image successfully—update every occurrence (including the other occurrence noted
at line 75) to the lowercase form.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: e271fd97-8d61-471c-bcdb-c664c016ec8f
📒 Files selected for processing (7)
.github/workflows/deploy-pr.yml.github/workflows/deploy-theia.ymldeployments/test1.theia-test.artemis.cit.tum.de/values.yamldeployments/test2.theia-test.artemis.cit.tum.de/values.yamldeployments/test3.theia-test.artemis.cit.tum.de/values.yamldeployments/theia-staging.artemis.cit.tum.de/values.yamldeployments/theia.artemis.cit.tum.de/values.yaml
✅ Files skipped from review due to trivial changes (1)
- deployments/theia.artemis.cit.tum.de/values.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 11 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| preloading: | ||
| images: | ||
| - ghcr.io/eduide/eduide/landing-page:latest | ||
| - ghcr.io/EduIDE/eduidec-landing-page:latest |
| landingPage: | ||
| # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 | ||
| image: ghcr.io/eduide/eduide/landing-page | ||
| image: ghcr.io/EduIDE/eduidec-landing-page |
| preloading: | ||
| images: | ||
| - ghcr.io/eduide/eduide/landing-page:latest | ||
| - ghcr.io/EduIDE/eduidec-landing-page:latest |
| landingPage: | ||
| # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 | ||
| image: ghcr.io/eduide/eduide/landing-page | ||
| image: ghcr.io/EduIDE/eduidec-landing-page |
| preloading: | ||
| images: | ||
| - ghcr.io/eduide/eduide/landing-page:latest | ||
| - ghcr.io/EduIDE/eduidec-landing-page:latest |
| preloading: | ||
| images: | ||
| - ghcr.io/eduide/eduide/landing-page:latest | ||
| - ghcr.io/EduIDE/eduidec-landing-page:latest |
| landingPage: | ||
| # We use the try now page as landing page since the default does not support multiple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 | ||
| image: ghcr.io/eduide/eduide/landing-page | ||
| image: ghcr.io/EduIDE/eduidec-landing-page |
| preloading: | ||
| images: | ||
| - ghcr.io/eduide/eduide/landing-page:latest | ||
| - ghcr.io/EduIDE/eduidec-landing-page:latest |
| landingPage: | ||
| # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 | ||
| image: ghcr.io/eduide/eduide/landing-page | ||
| image: ghcr.io/EduIDE/eduidec-landing-page |
.github/workflows/deploy-theia.yml
Outdated
| --set theia-cloud.landingPage.image="ghcr.io/EduIDE/eduidec-landing-page:${LANDING_PAGE_TAG}" | ||
| --set "theia-cloud.preloading.images[0]=ghcr.io/EduIDE/eduidec-landing-page:${LANDING_PAGE_TAG}" |
- operator/service: ghcr.io/eduide/eduide-cloud/{operator,service} (from EduIDE-Cloud repo)
- landing page: ghcr.io/EduIDE/eduidec-landing-page (from EduIDE-Landing-Page repo)
- IDE images (java-17, c, rust, etc.): ghcr.io/eduide/eduide/... (from EduIDE repo) - unchanged
|
Closing this PR to open a fresh one with the same changes for a clean review round. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| operator: | ||
| image: ghcr.io/eduide/eduide/operator:latest | ||
| image: ghcr.io/eduide/eduide-cloud/operator:latest | ||
| replicas: 1 | ||
| sessionsPerUser: 10 | ||
| storageClassName: csi-rbd-sc | ||
| eagerStart: true | ||
|
|
||
| service: | ||
| image: ghcr.io/eduide/eduide/service:latest | ||
| image: ghcr.io/eduide/eduide-cloud/service:latest |
| operator: | ||
| image: ghcr.io/eduide/eduide/operator:pr-22 | ||
| image: ghcr.io/eduide/eduide-cloud/operator:pr-22 | ||
| eagerStart: false | ||
| replicas: 1 | ||
| sessionsPerUser: 10 | ||
| storageClassName: csi-rbd-sc | ||
|
|
||
| service: | ||
| image: ghcr.io/eduide/eduide/service:pr-22 | ||
| image: ghcr.io/eduide/eduide-cloud/service:pr-22 |
| --set theia-cloud.landingPage.image="ghcr.io/eduide/eduidec-landing-page:${LANDING_PAGE_TAG}" | ||
| --set "theia-cloud.preloading.images[0]=ghcr.io/eduide/eduidec-landing-page:${LANDING_PAGE_TAG}" |
Summary
This PR integrates the extracted EduIDE landing page repository into deployment and decouples landing page versioning from operator/service versioning. It also aligns image references with current org/repo naming and OCI lowercase requirements.
Changes
1. Landing page decoupling
landing_page_taginput (separate fromtheia_cloud_tag) in deployment workflows.2. Registry/path alignment (verified against source CI)
ghcr.io/eduide/eduidec-landing-pageghcr.io/eduide/eduide-cloud/operatorghcr.io/eduide/eduide-cloud/serviceghcr.io/eduide/eduide/*3. OCI lowercase normalization
ghcr.io/EduIDE/eduidec-landing-pagereferences with lowercaseghcr.io/eduide/eduidec-landing-pagein:deployments/test1.theia-test.artemis.cit.tum.de/values.yamldeployments/test2.theia-test.artemis.cit.tum.de/values.yamldeployments/test3.theia-test.artemis.cit.tum.de/values.yamldeployments/theia-staging.artemis.cit.tum.de/values.yamldeployments/theia.artemis.cit.tum.de/values.yaml.github/workflows/deploy-theia.ymloverride block4. Note on test3
java-ls-testconcerntheia-appdefinitions/java-ls-testhas not been removed fromtest3values.LSP-config.Why
✅ Prevent invalid mixed-case OCI image references (
ghcr.io/EduIDE/...) that can fail pulls in Kubernetes/containerd.✅ Keep deployment image paths consistent with the latest upstream CI publishing logic.
✅ Preserve independent landing-page rollout control.
Sources used for verification
.github/workflows/github-runner.yml): publishesghcr.io/eduide/eduide/*.github/workflows/build.yml): publishesghcr.io/eduide/eduide-cloud/*.github/workflows/docker-build.yml): landing page image nameeduidec-landing-page(normalized lowercase path)