Skip to content

feat: add job launcher#4209

Open
andre-code wants to merge 9 commits into
feat/jobsfrom
andrea/add-job-launcher
Open

feat: add job launcher#4209
andre-code wants to merge 9 commits into
feat/jobsfrom
andrea/add-job-launcher

Conversation

@andre-code

@andre-code andre-code commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

PR to add Job launchers. This PR is part of a larger set of PRs for the full Job launcher feature. This PR only covers adding a launcher, editing its environment, name, desc, and deleting it. The side panel, launcher list, and job submission from a launcher will be covered in other PRs.

Changes

  • Add launcher type picker modal
  • Add job launcher create flow
  • Update API types for job launchers
  • Add job command and args fields for launchers (custom + build)
  • Show job command and args in view

What is included

  • Add a job launcher
  • Add, edit a session launcher (backward compatibility)
  • Edit job launcher (environment and other properties)
  • Delete a launcher

/deploy renku=feat/add-jobs amalthea-sessions=fix/job-status-when-pod-missing renku-data-services=eikek/multiple-jobs-per-launcher extra-values=dataService.imageBuilders.enabled=true,dataService.imageBuilders.strategyName=renku-buildpacks-v3,dataService.imageBuilders.outputImagePrefix=harbor.dev.renku.ch/renku-build/,dataService.imageBuilders.nodeSelector.renku.io/node-purpose=user,dataService.imageBuilders.tolerations[0].effect=NoSchedule,dataService.imageBuilders.tolerations[0].key=renku.io/dedicated,dataService.imageBuilders.tolerations[0].operator=Equal,dataService.imageBuilders.tolerations[0].value=user #no-tests

@RenkuBot

RenkuBot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

You can access the deployment of this PR at https://renku-ci-ui-4209.dev.renku.ch

@andre-code andre-code force-pushed the andrea/add-job-launcher branch from 8b9e966 to d577b60 Compare June 9, 2026 18:43
@andre-code andre-code changed the base branch from main to feat/jobs June 9, 2026 18:43
@andre-code andre-code force-pushed the andrea/add-job-launcher branch from 0f9ea42 to fd121c2 Compare June 10, 2026 08:50
@andre-code andre-code force-pushed the andrea/add-job-launcher branch from fd121c2 to 47c6f76 Compare June 10, 2026 09:17
@andre-code andre-code marked this pull request as ready for review June 10, 2026 10:08
@andre-code andre-code requested a review from a team as a code owner June 10, 2026 10:08
@lorenzo-cavazzi lorenzo-cavazzi self-assigned this Jun 11, 2026

@lorenzo-cavazzi lorenzo-cavazzi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Fantastic work! 👏

I added some inline comments, most of them are just minor fixes.

A few additional comments that don't fix easily inline:

  • The command and argument descriptions are the same for both "create from code" and "external", but the label is different and it's optional only in one case. Is that intended? Or should we make them consistent?
    Image

  • I noticed the popover showing info on the External job launcher appears incorrectly the first time I hover over the Info icon (at the top of the window). That doesn't happen for the older session launchers. Can you double-check? Here is a video
    Image

P.S: I see format changes in existing files. You might need to install the latest version of the linting libraries (I would just do a npm ci) and run again npm run format. That should fix some annoying errors

Comment thread client/src/components/offcanvas/OffcanvasHeaderWithType.tsx
Comment thread client/src/features/sessionsV2/components/SessionForm/AdvancedSettingsFields.tsx Outdated
Comment thread client/src/features/sessionsV2/components/SessionForm/AdvancedSettingsFields.tsx Outdated
Comment thread client/src/features/sessionsV2/components/SessionForm/AdvancedSettingsFields.tsx Outdated
Comment thread client/src/features/sessionsV2/components/SessionForm/EnvironmentKindField.tsx Outdated
Comment thread client/src/features/sessionsV2/components/SessionForm/LauncherCategoryIcon.tsx Outdated
Comment thread client/src/features/sessionsV2/components/SessionModals/NewLauncherModal.tsx Outdated
Comment thread client/src/features/sessionsV2/StartSessionButton.tsx Outdated
@andre-code andre-code force-pushed the andrea/add-job-launcher branch from 6a8e225 to 0ea3ef9 Compare June 12, 2026 10:47
@andre-code

andre-code commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @lorenzo-cavazzi for the review. I've added your code suggestions.

  • The command and argument descriptions are the same for both "create from code" and "external", but the label is different and it's optional only in one case. Is that intended? Or should we make them consistent?

Is intended, there is a difference between a job command than the command entrypoint, however I will review the texts in other PR with Laura.

  • I noticed the popover showing info on the External job launcher appears incorrectly the first time I hover over the Info icon (at the top of the window). That doesn't happen for the older session launchers. Can you double-check?

Yes, fixed!

P.S: I see format changes in existing files. You might need to install the latest version of the linting libraries (I would just do a npm ci) and run again npm run format. That should fix some annoying errors

Thanks for the info!

@lorenzo-cavazzi

Copy link
Copy Markdown
Member

Great!
One last detail. This problem still happens to me.

  • I noticed the popover showing info on the External job launcher appears incorrectly the first time I hover over the Info icon (at the top of the window). That doesn't happen for the older session launchers. Can you double-check?

Yes, fixed!

I investigated and it's the component JsonField. The problem is in the child component FormFieldLabel using the following code

<MoreInfo>
  <LazyMarkdown>{info}</LazyMarkdown>
</MoreInfo>

Using the Lazy component here triggers an initial rendering that occupies the wrong space.
The easiest fix is to use Markdown there instead of LazyMarkdown

@lorenzo-cavazzi

Copy link
Copy Markdown
Member

@andre-code this would fix it #4223

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.

4 participants