Skip to content

feat: Integrate EduTheia landing page with separate tag parameter#57

Closed
CodeByNikolas wants to merge 15 commits intomainfrom
feat/edutheia-landing-page-integration
Closed

feat: Integrate EduTheia landing page with separate tag parameter#57
CodeByNikolas wants to merge 15 commits intomainfrom
feat/edutheia-landing-page-integration

Conversation

@CodeByNikolas
Copy link
Copy Markdown
Contributor

@CodeByNikolas CodeByNikolas commented Feb 5, 2026

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

  • Added landing_page_tag input (separate from theia_cloud_tag) in deployment workflows.
  • Landing page can now be versioned independently from operator/service images.

2. Registry/path alignment (verified against source CI)

  • Landing page: ghcr.io/eduide/eduidec-landing-page
  • Operator: ghcr.io/eduide/eduide-cloud/operator
  • Service: ghcr.io/eduide/eduide-cloud/service
  • IDE images: ghcr.io/eduide/eduide/*

3. OCI lowercase normalization

  • Replaced all remaining ghcr.io/EduIDE/eduidec-landing-page references with lowercase ghcr.io/eduide/eduidec-landing-page in:
    • deployments/test1.theia-test.artemis.cit.tum.de/values.yaml
    • deployments/test2.theia-test.artemis.cit.tum.de/values.yaml
    • deployments/test3.theia-test.artemis.cit.tum.de/values.yaml
    • deployments/theia-staging.artemis.cit.tum.de/values.yaml
    • deployments/theia.artemis.cit.tum.de/values.yaml
    • .github/workflows/deploy-theia.yml override block

4. Note on test3 java-ls-test concern

  • theia-appdefinitions / java-ls-test has not been removed from test3 values.
  • The app definition is still present; current branch changed defaults/related settings compared to 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

  • EduIDE repo CI (.github/workflows/github-runner.yml): publishes ghcr.io/eduide/eduide/*
  • EduIDE-Cloud CI (.github/workflows/build.yml): publishes ghcr.io/eduide/eduide-cloud/*
  • EduIDE-Landing-Page CI (.github/workflows/docker-build.yml): landing page image name eduidec-landing-page (normalized lowercase path)

- 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
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 5, 2026

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR adds a new landing_page_tag input parameter to GitHub Actions deployment workflows, propagates it through test deployment jobs, and integrates it into Helm image override logic. Additionally, landing-page image registry references are updated across multiple deployment configuration files, and some image tags are bumped from pr-46 to pr-80.

Changes

Cohort / File(s) Summary
Workflow Input Addition & Propagation
.github/workflows/deploy-pr.yml, .github/workflows/deploy-theia.yml
Added new landing_page_tag input to workflow_dispatch/workflow_call. Updated theia_cloud_tag input to be non-required with empty default. Propagated landing_page_tag to deploy-test1, deploy-test2, and deploy-test3 jobs and integrated conditional Helm image overrides.
Deployment Values Image Updates
deployments/test1.theia-test.artemis.cit.tum.de/values.yaml, deployments/test2.theia-test.artemis.cit.tum.de/values.yaml, deployments/test3.theia-test.artemis.cit.tum.de/values.yaml, deployments/theia-staging.artemis.cit.tum.de/values.yaml, deployments/theia.artemis.cit.tum.de/values.yaml
Updated landing-page image registry from ghcr.io/eduide/eduide/landing-page to ghcr.io/EduIDE/eduidec-landing-page in preloading images and landingPage configuration. Test3 also updates image tags from pr-46 to pr-80 for theia-no-ls and langserver-java.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

ready to merge

Suggested reviewers

  • lukaskratzel
  • Mtze

Poem

🐰 Landing pages take their flight,
Through tags and workflows, ever bright,
From EduIDE's registry new,
Deploy with joy—your configs true!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: integrating a separate landing page tag parameter for independent versioning, which is the primary objective across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/edutheia-landing-page-integration
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 | 🟡 Minor

Minor 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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-page with a new landing_page_tag input.
  • 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.

Comment on lines 125 to 128

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:
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines 186 to 190
--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}" \
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines 83 to 96
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"
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copilot AI review requested due to automatic review settings March 18, 2026 08:51
@CodeByNikolas CodeByNikolas added the ready to merge This PR is completed and reviewed by the developers and can be merged label Mar 18, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3dde7e6 and 08d8c4c.

📒 Files selected for processing (7)
  • .github/workflows/deploy-pr.yml
  • .github/workflows/deploy-theia.yml
  • deployments/test1.theia-test.artemis.cit.tum.de/values.yaml
  • deployments/test2.theia-test.artemis.cit.tum.de/values.yaml
  • deployments/test3.theia-test.artemis.cit.tum.de/values.yaml
  • deployments/theia-staging.artemis.cit.tum.de/values.yaml
  • deployments/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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Comment on lines +261 to +262
--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
Copilot AI review requested due to automatic review settings March 18, 2026 09:22
@CodeByNikolas
Copy link
Copy Markdown
Contributor Author

Closing this PR to open a fresh one with the same changes for a clean review round.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines 46 to +54
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
Comment on lines 42 to +50
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
Comment on lines +261 to +262
--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}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready to merge This PR is completed and reviewed by the developers and can be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants