You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context
Introduce a simple plugins system in the CLI that can be extended.
Plugins themselves are centrally maintained (as part of the CLI itself?).
Rationale
Currently if someone wants SonarQube to run, they have to spend several hours or days to implement it properly.
Each team is doing this separately, which is bascially a waste of everyones time and in practice it means that new developers will not have cool tools like this integrated.
Using centrally maintained plugins allows the community to together come up with the best approaches for each plugin.
Technical details
The interface of an action could look something like this:
- uses: unity-builderwith:
plugins:
sonar: { my, config, params } # specific to sonar
A plugin definition, maintained by the community could look something like this
classBlenderAddOn{staticgetname(){return'blender';}staticgetversion(){return'1'}staticgetdockerCacheKey(){return`${BlenderAddOn.name}.${BlenderAddOn.version}`}staticgetAptGetPackages(){'my-package my-other-package'}staticgetRawDockerInstructions(){return` RUN echo 'test' RUN echo 'another layer' `}staticrunBefore(){if(someOS){// install blender on VM instead of in docker}}staticrunAfter(){// cleanup}}
It's not just an extension of the Dockerfile, but also other logic: a plugin is something that goes into a registry. And each part of the logic asks the registry if there is a piece to be injected in the logic that it is responsible for.
For example:
Docker build (docker.ts) will use getAptGetPackages and inject it into docker as an argument. It'll do this for all active plugins.
After it detects that your repository is dirty or not for example, some code, probably in pre-flight.ts or something, would call runBefore
The text was updated successfully, but these errors were encountered:
Context
Introduce a simple plugins system in the CLI that can be extended.
Plugins themselves are centrally maintained (as part of the CLI itself?).
Rationale
Currently if someone wants SonarQube to run, they have to spend several hours or days to implement it properly.
Each team is doing this separately, which is bascially a waste of everyones time and in practice it means that new developers will not have cool tools like this integrated.
Using centrally maintained plugins allows the community to together come up with the best approaches for each plugin.
Technical details
The interface of an action could look something like this:
A plugin definition, maintained by the community could look something like this
It's not just an extension of the Dockerfile, but also other logic: a
plugin
is something that goes into aregistry
. And each part of the logic asks the registry if there is a piece to be injected in the logic that it is responsible for.For example:
getAptGetPackages
and inject it into docker as an argument. It'll do this for all active plugins.pre-flight.ts
or something, would callrunBefore
The text was updated successfully, but these errors were encountered: