Skip to content

Introduce ScriptTrigger & CommandsTrigger for the Julia plugin #427

Description

@fdelbrayelle

Context

Part of #313. plugin-scripts wants every submodule to expose a ScriptTrigger and a CommandsTrigger, so a flow can be triggered whenever the underlying script/commands execution completes, with an exit condition deciding whether the trigger fires based on the result (e.g. only on failure).

plugin-script-julia is missing both. Existing implementations in plugin-script-go, plugin-script-node, plugin-script-python, plugin-script-ruby, and plugin-script-shell (same package as the task classes, no nested subpackage) can be used as a reference.

What to implement

1. ScriptTrigger

  • Triggers when io.kestra.plugin.scripts.julia.Script execution completes.
  • Emits an event containing: command executed, arguments, env (if available), exit code, stdout/stderr (if capture enabled), and contextual metadata (execution id, namespace, flow id).

2. CommandsTrigger

  • Triggers when io.kestra.plugin.scripts.julia.Commands execution completes.
  • Emits an event containing: commands executed (or the matched one), exit code(s), stdout/stderr if available, and contextual metadata (execution id, namespace, flow id).

Trigger configuration requirements

Each trigger should accept at least:

  • commandPattern (string / regex / glob)
  • argumentsPattern (optional)
  • exitCondition (string expression — can match on exit code, output, or a literal condition)

Example YAML

triggers:
  - id: on_julia_fail
    type: io.kestra.plugin.scripts.julia.ScriptTrigger
    commandPattern: ".*"
    exitCondition: "exitCode != 0"

triggers:
  - id: on_julia_commands
    type: io.kestra.plugin.scripts.julia.CommandsTrigger
    commandPattern: ".*"
    exitCondition: "exitCode == 0"

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/pluginPlugin-related issue or feature requestgood first issueGreat issue for new contributors

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions