Maybe it's easiest to explain what I'm thinking using a config example (see
below). Ideally, you'd just have one plugin and multiple SCM materials
defined.
<cruise ...>
<scms>
<scm id="*AAAA*" name="proj_a">
*<pluginConfiguration id="X" version="1" />*
<configuration>
<property>
<key>BASE_URL</key>
<value>/path/to/project_a</value>
</property>
</configuration>
</scm>
<scm id="*BBBB*" name="proj_b">
*<pluginConfiguration id="X" version="1" />*
<configuration>
<property>
<key>BASE_URL</key>
<value>/path/to/project_b</value>
</property>
</configuration>
</scm>
</scms>
<pipelines>
<pipeline name="my_project_a">
<materials>
<scm ref="*AAAA*" />
<git url="abcd" .../>
</materials>
</pipeline>
<pipeline name="my_project_b">
<materials>
<scm ref="*BBBB*" />
</materials>
</pipeline>
<pipeline name="my_combined_project">
<materials>
<scm ref="*AAAA*" />
<scm ref="*BBBB*" />
</materials>
</pipeline>
</pipelines>
</cruise>
As you can see, you *define *SCM materials with their pluginConfiguration
set to your plugin ID. Then, you can use those SCM materials in pipelines
however you like. The configuration is completely controlled by the plugin.
In the above example, I chose to show it as BASE_URL. You can have any keys
you want.
Since there is only one plugin, it loads once on the server and once on
every agent.
Hope that helps,
Aravind
On Thu, Jan 25, 2018 at 1:09 PM, Markus Kramer <[email protected]>
wrote:
> Hi Aravind,
>
> thanks for your reply, however i am not sure it answers all points of my
> question yet. What we would like to do is pretty much implement one plugin
> which is preferably also only loaded once and then run this
> around 60 to 70 different product base URLs from around the same number of
> pipelines. So each pipeline should only contain one project, but the
> methodology applied to construct their working copies, get change
> information etc is always the same.
> So lets assume i have a SCM plugin working properly for a single project
> at one base url, is there a way to easily setup the same plugin to run
> against a second project base URL in a completely different pipeline
> without affecting the other, or would this mean to really compile and load
> the same plugin several times with different IDs.
>
> Thanks,
>
> Markus
>
>
>
>
>
> On 25. Jan 2018, at 18:39, Aravind SV <[email protected]> wrote:
>
> Hello Markus,
>
> On Thu, Jan 25, 2018 at 12:19 PM, <[email protected]> wrote:
>
>> I see that there is i.e. one plugin to follow GitHub pull requests for a
>> certain repository, but does that mean one server can at maximum follow one
>> GitHub project, or can a single SCM plugin be instantiated multiple times
>> with different parameters on one server?
>>
>
> Yes, it is definitely possible for a pluggable SCM
> <https://docs.gocd.org/current/extension_points/scm_extension.html> to be
> associated with multiple pipelines and even have one pipeline be associated
> with multiple pluggable SCM materials. Anything you can do with a normal
> git material should be possible to be done with an SCM plugin.
>
> They're stored at a global level, though, unlike a git material which (in
> the config) is at a pipeline level. That is misleading because GoCD will
> continue to treat even those git materials as global internally, so that it
> doesn't poll the same repositories multiple times.
>
> There are some SCM plugins which might be interesting to you, such as the
> git-path-material-plugin
> <https://github.com/TWChennai/gocd-git-path-material-plugin>. To use
> as-is or as a skeleton for your plugin.
>
> Feel free to ask questions here or in the gitter channel, if you get stuck.
>
> Cheers,
> Aravind
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "go-cd" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/go-cd/oK75CJB4laM/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "go-cd" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.