Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,5 @@ jobs:
with:
skip-test: ${{ github.event.inputs.skip-test == 'true' }}
kestra-version: ${{ github.event.inputs.kestra-version }}
java-version: '25'
secrets: inherit
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ repositories {
}
}

final targetJavaVersion = JavaVersion.VERSION_21
final targetJavaVersion = JavaVersion.VERSION_25

java {
sourceCompatibility = targetJavaVersion
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
version=2.2.1-SNAPSHOT
kestraVersion=1.2.5
kestraVersion=2.0.0-SNAPSHOT
org.gradle.jvmargs=-Xmx4g
4 changes: 2 additions & 2 deletions src/test/java/io/kestra/plugin/gcp/bigquery/TriggerTest.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.kestra.plugin.gcp.bigquery;

Check failure on line 1 in src/test/java/io/kestra/plugin/gcp/bigquery/TriggerTest.java

View workflow job for this annotation

GitHub Actions / Java Tests Report

TriggerTest.flow()

io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.kestra.core.services.KVStoreService] Message: No storage interface can be found for 'kestra.storage.type=local'. Supported types are: [] Path Taken: new @j.i.Singleton i.k.c.r.p.Extension() \---> @j.i.Singleton i.k.c.r.p.Extension#kvFunction \---> @j.i.Singleton i.k.c.r.p.f.KvFunction#kvStoreService \---> @j.i.Singleton i.k.c.s.KVStoreService#storageInterface
Raw output
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.kestra.core.services.KVStoreService]

Message: No storage interface can be found for 'kestra.storage.type=local'. Supported types are: []
Path Taken:
new @j.i.Singleton i.k.c.r.p.Extension()
\---> @j.i.Singleton i.k.c.r.p.Extension#kvFunction
      \---> @j.i.Singleton i.k.c.r.p.f.KvFunction#kvStoreService
            \---> @j.i.Singleton i.k.c.s.KVStoreService#storageInterface
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2357)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForField(AbstractInitializableBeanDefinition.java:1711)
	at io.kestra.core.services.$KVStoreService$Definition.inject(Unknown Source)
	at io.kestra.core.services.$KVStoreService$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForField(AbstractInitializableBeanDefinition.java:1711)
	at io.kestra.core.runners.pebble.functions.$KvFunction$Definition.inject(Unknown Source)
	at io.kestra.core.runners.pebble.functions.$KvFunction$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForField(AbstractInitializableBeanDefinition.java:1711)
	at io.kestra.core.runners.pebble.$Extension$Definition.inject(Unknown Source)
	at io.kestra.core.runners.pebble.$Extension$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:3625)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistrations(DefaultBeanContext.java:3580)
	at io.micronaut.context.DefaultBeanContext.getBeanRegistrations(DefaultBeanContext.java:3554)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1480)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1463)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:873)
	at io.kestra.core.runners.pebble.PebbleEngineFactory.create(PebbleEngineFactory.java:38)
	at io.kestra.core.runners.VariableRenderer.<init>(VariableRenderer.java:38)
	at io.kestra.core.runners.VariableRenderer.<init>(VariableRenderer.java:33)
	at io.kestra.core.runners.$VariableRenderer$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForField(AbstractInitializableBeanDefinition.java:1711)
	at io.kestra.core.runners.$RunContextFactory$Definition.inject(Unknown Source)
	at io.kestra.core.runners.$RunContextFactory$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForField(AbstractInitializableBeanDefinition.java:1711)
	at io.kestra.plugin.gcp.bigquery.$TriggerTest$Definition.inject(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doInjectAndInitialize(DefaultBeanContext.java:2679)
	at io.micronaut.context.DefaultBeanContext.inject(DefaultBeanContext.java:1014)
	at io.micronaut.test.extensions.AbstractMicronautExtension.beforeEach(AbstractMicronautExtension.java:476)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeEach(MicronautJunit5Extension.java:236)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
Caused by: io.kestra.core.exceptions.KestraRuntimeException: No storage interface can be found for 'kestra.storage.type=local'. Supported types are: []
	at io.kestra.core.storages.StorageInterfaceFactory.make(StorageInterfaceFactory.java:66)
	at io.kestra.core.contexts.KestraBeansFactory.storageInterface(KestraBeansFactory.java:64)
	at io.kestra.core.contexts.$KestraBeansFactory$StorageInterface3$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	... 73 more

import java.time.Duration;
import java.util.Map;
Expand Down Expand Up @@ -69,8 +69,8 @@
.interval(Duration.ofSeconds(10))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue().context());

@SuppressWarnings("unchecked")
java.util.List<Blob> blobs = (java.util.List<Blob>) execution.get().getTrigger().getVariables().get("rows");
Expand Down
28 changes: 14 additions & 14 deletions src/test/java/io/kestra/plugin/gcp/gcs/TriggerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ void moveFromFlow() throws Exception {
.moveDirectory(Property.ofValue(String.format("gs://%s/%s", bucket, moveDir)))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);

Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue());
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(execution.isPresent(), is(true));

Expand All @@ -88,8 +88,8 @@ void move() throws Exception {

Upload.Output upload = testUtils.upload("trigger/" + out + "/" + fileId);

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(execution.isPresent(), is(true));

Expand Down Expand Up @@ -133,8 +133,8 @@ void none() throws Exception {

Upload.Output upload = testUtils.upload(file);

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(execution.isPresent(), is(true));

Expand Down Expand Up @@ -174,10 +174,10 @@ void shouldExecuteOnCreate() throws Exception {

var upload = testUtils.upload(file);

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = Optional.ofNullable(
Await.until(
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue()).orElse(null)),
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue().context()).orElse(null)),
Duration.ofMillis(500),
Duration.ofSeconds(20)
)
Expand Down Expand Up @@ -208,17 +208,17 @@ void shouldExecuteOnUpdate() throws Exception {
.interval(Duration.ofSeconds(10))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);

trigger.evaluate(context.getKey(), context.getValue());
trigger.evaluate(context.getKey(), context.getValue().context());

// we update the file to trigger the update event
testUtils.update(file);
Thread.sleep(3000);

Optional<Execution> execution = Optional.ofNullable(
Await.until(
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue()).orElse(null)),
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue().context()).orElse(null)),
Duration.ofMillis(500),
Duration.ofSeconds(20)
)
Expand Down Expand Up @@ -249,8 +249,8 @@ void shouldExecuteOnCreateOrUpdate() throws Exception {

var upload = testUtils.upload(file);

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> createExecution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> createExecution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(createExecution.isPresent(), is(true));

Expand All @@ -259,7 +259,7 @@ void shouldExecuteOnCreateOrUpdate() throws Exception {

Optional<Execution> updateExecution = Optional.ofNullable(
Await.until(
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue()).orElse(null)),
throwSupplier(() -> trigger.evaluate(context.getKey(), context.getValue().context()).orElse(null)),
Duration.ofMillis(500),
Duration.ofSeconds(20)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ void evaluate() throws Exception {
.window(Property.ofValue(java.time.Duration.ofMinutes(10)))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = io.kestra.core.utils.TestsUtils.mockTrigger(runContextFactory, trigger);
var execution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = io.kestra.core.utils.TestsUtils.mockTrigger(runContextFactory, trigger);
var execution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(execution.isPresent(), is(true));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ void flow() throws Exception {
.topic(Property.ofValue("test-topic"))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
try {
Mono<Execution> executionMono = Mono.from(trigger.evaluate(context.getKey(), context.getValue()));
Mono<Execution> executionMono = Mono.from(trigger.evaluate(context.getKey(), context.getValue().context()));

Execution execution = executionMono.timeout(Duration.ofSeconds(30)).block();

Expand Down
4 changes: 2 additions & 2 deletions src/test/java/io/kestra/plugin/gcp/pubsub/TriggerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ void flow() throws Exception {
.maxRecords(Property.ofValue(2))
.build();

Map.Entry<ConditionContext, io.kestra.core.models.triggers.Trigger> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue());
Map.Entry<ConditionContext, io.kestra.core.scheduler.model.TriggerState> context = TestsUtils.mockTrigger(runContextFactory, trigger);
Optional<Execution> execution = trigger.evaluate(context.getKey(), context.getValue().context());

assertThat(execution.isPresent(), is(true));

Expand Down
Loading