-
Notifications
You must be signed in to change notification settings - Fork 60
Plugins Design
[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
Spice it Up!