Skip to content

Expose deploy inputs and pin staging/prod images#87

Merged
CodeByNikolas merged 6 commits intomainfrom
codex/expose-execution-mode-clean-install
Mar 25, 2026
Merged

Expose deploy inputs and pin staging/prod images#87
CodeByNikolas merged 6 commits intomainfrom
codex/expose-execution-mode-clean-install

Conversation

@CodeByNikolas
Copy link
Copy Markdown
Contributor

@CodeByNikolas CodeByNikolas commented Mar 25, 2026

Summary

This PR aligns deployment workflow inputs, updates pinned image tags across environments, and documents the new release process for SHA-suffixed image tags.

Changes made

  • exposed execution_mode in staging and production workflow_dispatch with the same dropdown options used by the PR workflow:
    • self-hosted-buildkit
    • github-runners
  • added clean_install as a manual input for staging and production deploy workflows
  • kept staging and production clean_install opt-in and passed it through to the reusable deploy workflow
  • changed the PR workflow so clean_install now defaults to true
  • pinned staging operator and service images to ghcr.io/eduide/eduide-cloud/*:latest-dfe0d09
  • pinned production operator and service images to ghcr.io/eduide/eduide-cloud/*:latest-dfe0d09
  • pinned staging conversion-webhook to ghcr.io/eduide/eduide-cloud/conversion-webhook:latest-dfe0d09
  • pinned production conversion-webhook to ghcr.io/eduide/eduide-cloud/conversion-webhook:latest-dfe0d09
  • updated test environment conversion-webhook tags from pr-70 to latest for:
    • test1
    • test2
    • test3
  • pinned staging landing page images to latest-2c6f8ac:
    • theia-cloud.landingPage.image
    • theia-cloud.preloading.images[0]
  • pinned production landing page images to latest-2c6f8ac:
    • theia-cloud.landingPage.image
    • theia-cloud.preloading.images[0]
  • pinned staging IDE and language-server preload image tags to latest-0c8eec9:
    • theia-cloud.preloading.images[1..10]
  • pinned production IDE and language-server preload image tags to latest-0c8eec9:
    • theia-cloud.preloading.images[1..10]
  • added docs/deployment-workflows.md with:
    • workflow overview
    • manual deployment inputs
    • release checklist for bumping SHA-suffixed image tags
    • explicit separation between control-plane, landing-page, and IDE image tag families
  • updated the root README.md to document the pinned-tag release process and link to the deployment workflow guide

Files touched

  • .github/workflows/deploy-pr.yml
  • .github/workflows/deploy-staging.yml
  • .github/workflows/deploy-production.yml
  • deployments/theia-staging.artemis.cit.tum.de/values.yaml
  • deployments/theia-staging.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/theia.artemis.cit.tum.de/values.yaml
  • deployments/theia.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/test1.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/test2.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/test3.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • docs/deployment-workflows.md
  • README.md

Validation

  • parsed modified workflow and values YAML files successfully with Ruby YAML

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

Warning

Rate limit exceeded

@CodeByNikolas has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 21 minutes and 54 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f3930684-665b-4639-8fb3-51ae97f35993

📥 Commits

Reviewing files that changed from the base of the PR and between 7df05de and bcc96f7.

📒 Files selected for processing (4)
  • README.md
  • deployments/theia-staging.artemis.cit.tum.de/values.yaml
  • deployments/theia.artemis.cit.tum.de/values.yaml
  • docs/deployment-workflows.md
📝 Walkthrough

Walkthrough

Updated GitHub Actions workflows to add a clean_install dispatch input for namespace-scoped cleanup control across PR, staging, and production deployments. Updated container image tags across multiple test, staging, and production Helm values files. Enabled the theia-cloud.service component in staging and production environments and added documentation describing deployment workflows and image release processes.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/deploy-pr.yml, deploy-staging.yml, deploy-production.yml
Added/modified workflow_dispatch input clean_install (boolean, default false) across three deployment workflows. deploy-pr.yml changed default to true. Inputs wired to reusable deploy-theia.yml workflow, with deploy-staging.yml conditioning on workflow_dispatch event type.
Documentation
README.md, docs/deployment-workflows.md
Added new deployment-workflows.md documenting GitHub Actions entrypoint workflows, manual inputs (execution_mode, clean_install), and image release process with SHA-suffixed tags and environment-specific value file locations. Updated README.md with release workflow reference.
Test Environment Deployments
deployments/test[1-3].theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
Updated conversion-webhook image tag from pr-70 to latest across three test environments.
Staging Deployment Configuration
deployments/theia-staging.artemis.cit.tum.de/theia-crds-helm-values.yml, values.yaml
Updated conversion-webhook image to latest-dfe0d09. Enabled theia-cloud.service with image latest-dfe0d09 and adminApiTokenSecret configuration. Updated operator, preloading, and landing-page image tags to use SHA-suffixed tags (latest-dfe0d09, latest-0c8eec9). Added theia-appdefinitions.defaultImageTag configuration.
Production Deployment Configuration
deployments/theia.artemis.cit.tum.de/theia-crds-helm-values.yml, values.yaml
Updated conversion-webhook image to latest-dfe0d09. Enabled theia-cloud.service with image latest-dfe0d09 and adminApiTokenSecret configuration. Updated operator, preloading, and landing-page image tags to use SHA-suffixed tags (latest-dfe0d09, latest-0c8eec9). Added theia-appdefinitions.defaultImageTag configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

ready to merge

Suggested reviewers

  • lukaskratzel
  • Mtze

Poem

🐰 From pr-70 to tags with SHA,
Image versions hop and sway,
Workflows dispatch, clean builds flow,
Service enabled — watch them grow! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the two main objectives of the changeset: exposing deployment workflow inputs and pinning staging/production images.
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 codex/expose-execution-mode-clean-install

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

This PR updates the deployment configuration to make staging/production workflow dispatches more configurable (runner backend + optional clean install) and pins critical staging/production images to a specific tag for reproducibility.

Changes:

  • Pin staging/production Theia Cloud operator/service images and CRD conversion-webhook image to latest-dfe0d09.
  • Expose execution_mode as a workflow_dispatch choice input in staging/production deploy workflows.
  • Add clean_install workflow_dispatch input to staging/production deploy workflows and default PR deploy clean_install to true.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
deployments/theia.artemis.cit.tum.de/values.yaml Pins operator/service images and explicitly configures service admin API token secret for production.
deployments/theia.artemis.cit.tum.de/theia-crds-helm-values.yml Pins conversion-webhook image for production CRDs install.
deployments/theia-staging.artemis.cit.tum.de/values.yaml Pins operator/service images and explicitly configures service admin API token secret for staging.
deployments/theia-staging.artemis.cit.tum.de/theia-crds-helm-values.yml Pins conversion-webhook image for staging CRDs install.
.github/workflows/deploy-staging.yml Adds execution_mode choice + clean_install boolean input and forwards clean_install to reusable deploy workflow.
.github/workflows/deploy-production.yml Adds execution_mode choice + clean_install boolean input and forwards clean_install to reusable deploy workflow.
.github/workflows/deploy-pr.yml Changes workflow_dispatch default for clean_install to true.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

lukaskratzel
lukaskratzel previously approved these changes Mar 25, 2026
Copy link
Copy Markdown
Contributor

@lukaskratzel lukaskratzel left a comment

Choose a reason for hiding this comment

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

LGTM. Could you please document the new release process though as that now requires bumping the short sha in the tag. Would be nice for everyone after us :)

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.

🧹 Nitpick comments (1)
deployments/test1.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml (1)

5-5: Prefer immutable image tags for reproducible test deployments.

Using :latest on Line 5 can make test behavior drift between runs and make regressions harder to bisect. Consider pinning to a release tag (or digest) and bumping intentionally.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@deployments/test1.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml`
at line 5, The image field currently uses a mutable tag
"ghcr.io/eduide/eduide-cloud/conversion-webhook:latest"; change the image value
under the image key to a specific immutable tag or digest (for example a release
tag like :v1.2.3 or a SHA256 digest) so test deployments are reproducible and
upgrades are explicit; update the image string in the YAML (the image key
holding "ghcr.io/eduide/eduide-cloud/conversion-webhook:latest") to the chosen
pinned tag/digest and bump it intentionally on future changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@deployments/test1.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml`:
- Line 5: The image field currently uses a mutable tag
"ghcr.io/eduide/eduide-cloud/conversion-webhook:latest"; change the image value
under the image key to a specific immutable tag or digest (for example a release
tag like :v1.2.3 or a SHA256 digest) so test deployments are reproducible and
upgrades are explicit; update the image string in the YAML (the image key
holding "ghcr.io/eduide/eduide-cloud/conversion-webhook:latest") to the chosen
pinned tag/digest and bump it intentionally on future changes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e076204d-3662-48c4-b272-514bae0ea3e4

📥 Commits

Reviewing files that changed from the base of the PR and between de56e6a and 7df05de.

📒 Files selected for processing (12)
  • .github/workflows/deploy-pr.yml
  • .github/workflows/deploy-production.yml
  • .github/workflows/deploy-staging.yml
  • README.md
  • deployments/test1.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/test2.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/test3.theia-test.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/theia-staging.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/theia-staging.artemis.cit.tum.de/values.yaml
  • deployments/theia.artemis.cit.tum.de/theia-crds-helm-values.yml
  • deployments/theia.artemis.cit.tum.de/values.yaml
  • docs/deployment-workflows.md

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 12 out of 12 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@CodeByNikolas CodeByNikolas merged commit 96ad1d4 into main Mar 25, 2026
3 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants