Skip to content

Plugins Design

Yaron Weiss edited this page Oct 26, 2018 · 4 revisions

[DRAFT]

Ginger Plugins index located at: https://github.com/Ginger-Automation/Ginger-Plugins-Index it list all available plugins in json format: Name, Description, url This list is displayed in Ginger->Resources->Plugins User can select plugin and install, which will download the plugin zip, extract and add the plugin to the solution

Plugins in Ginger solution are only xml file with ref to the plugin, no binaries are added so solution is kept light

Plugin page also have installed plug in on the machine, which will list all plugins if plugin already exist on the machine, it will be reused, no download user can select to re-download, which will delete the plugin folder and download

Plugins dll(s) are NOT loaded in Ginger process, they are executed on separate process, this enables crash safety, faster execution and distributed executions in parallel, and also enable several different versions to be running in same machine, it also resolve Nuget version, .NET versions mix etc.

Plugin folder: [PluginID][Version] i.e.: c:\users\MyName\Ginger\PluginPackages\PACT\1.0.0\

installing Plugin as remote service requires only the plugin package which include GingerCoreNET to communicate the remote machine needs to have dotnet core 2.1+ installed, the plugin can be downloaded from Git, and run using CLI dotnet pluginfolder/starter.dll config.file config.file: StartService [NodeName] [Service ID] [GG Host] [GG Port] StartService "MyServie1" GG host: 1.2.3.4 GG port: 15001 NodeName: MyServie1

Can start several services in same process

Plugin action parameter of supported types String Int List - List<{class name}> where class is complex type with properties

Adding new type to action

Adding list

How to test

Index

  • Getting started
  • Workstation
Clone this wiki locally