Skip to content

feat(flow): Flow trigger dependsOn#15504

Merged
loicmathieu merged 1 commit intodevelopfrom
feat/depends-on
Apr 14, 2026
Merged

feat(flow): Flow trigger dependsOn#15504
loicmathieu merged 1 commit intodevelopfrom
feat/depends-on

Conversation

@loicmathieu
Copy link
Copy Markdown
Member

Implements the new dependsOn mechanism for flow triggers.

Part-of: https://github.com/kestra-io/kestra-ee/issues/3033

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 10, 2026

🐋 Docker image

ghcr.io/kestra-io/kestra-pr:15504
docker run --pull=always --rm -it -p 8080:8080 --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp ghcr.io/kestra-io/kestra-pr:15504 server local

🧪 Java Unit Tests

TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
Java Tests Report4968 ran4945 ✅22 ⚠️1 ❌47m 42s 444ms
TestResultTime ⏱
Java Tests Report
MysqlServiceLivenessCoordinatorTest.[1] workerGroupKey=workerGroupKey❌ failure32s 252ms

@loicmathieu
Copy link
Copy Markdown
Member Author

Missing features for now:

  • Scoped outputs
  • onMiss SLA
  • mode and minSatisfied
  • stable condition ID (they are generated the same as for precondition)
  • silentFailures should creates FAILED execution

Missing a decision what to do for the existing precondition.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 10, 2026

Tests report quick summary:

failed ❌ > tests: 4971, success: 4945, skipped: 22, failed: 4

Project Status Success Skipped Failed
cli success ✅ 47 0 0
core success ✅ 2332 0 0
executor success ✅ 38 0 0
jdbc success ✅ 11 0 0
jdbc-h2 success ✅ 600 0 0
jdbc-mysql failed ❌ 589 0 1
jdbc-postgres success ✅ 594 0 0
processor success ✅ 7 0 0
queue success ✅ 31 0 0
runner-memory success ✅ 1 0 0
scheduler success ✅ 62 0 0
script success ✅ 35 0 0
storage-local success ✅ 64 0 0
webserver success ✅ 419 0 0
worker success ✅ 51 0 0
worker-controller success ✅ 86 0 0

Failed tests:

jdbc-mysql > io.kestra.runner.mysql.MysqlServiceLivenessCoordinatorTest > [1] workerGroupKey=workerGroupKey failed ❌ in 32.252
org.opentest4j.AssertionFailedError: 
Expecting value to be true but was false

org.opentest4j.AssertionFailedError: 
Expecting value to be true but was false
	at io.kestra.executor.AbstractServiceLivenessCoordinatorTest.shouldResubmitTaskWhenWorkerIsStopped(AbstractServiceLivenessCoordinatorTest.java:143)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$3.proceed(MicronautJunit5Extension.java:175)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestTemplateMethod(MicronautJunit5Extension.java:162)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)


Develocity build scan: https://develocity.kestra.io/s/4lznbtkck2jk2

@loicmathieu loicmathieu requested review from a team and nkwiatkowski April 13, 2026 07:15
@loicmathieu loicmathieu requested review from brian-mulier-p and removed request for a team and nkwiatkowski April 13, 2026 12:15
Copy link
Copy Markdown
Member

@brian-mulier-p brian-mulier-p left a comment

Choose a reason for hiding this comment

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

Tiny changes

Comment thread core/src/main/java/io/kestra/core/models/triggers/Window.java
Comment thread core/src/main/java/io/kestra/plugin/core/trigger/Flow.java
Copy link
Copy Markdown
Member

@brian-mulier-p brian-mulier-p left a comment

Choose a reason for hiding this comment

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

last change

Comment thread core/src/main/java/io/kestra/core/validations/validator/WindowValidator.java Outdated
Copy link
Copy Markdown
Member

@brian-mulier-p brian-mulier-p left a comment

Choose a reason for hiding this comment

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

LGTM

@loicmathieu loicmathieu merged commit 1f954b5 into develop Apr 14, 2026
9 of 12 checks passed
@loicmathieu loicmathieu deleted the feat/depends-on branch April 14, 2026 14:48
@github-project-automation github-project-automation Bot moved this from To review to Done in Pull Requests Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants