Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

info-ci: Ability to plug in custom CI info providers #13

Open
wants to merge 1 commit into
base: gradle-2.2
Choose a base branch
from

Conversation

boxheed
Copy link

@boxheed boxheed commented Feb 24, 2015

It would be good to be able to plug in other ContinuousIntegrationInfoProvider implementations in order to use this plugin on other CI servers such as Travis, Bamboo or Drone.io.

The implementation uses the ServiceLoader to discover the ContinuousIntegrationInfoProvider implementations. This allows others to provide implementations for other CI servers that are not provided within the gradle-info-plugin itself.

@bmuschko
Copy link
Contributor

bmuschko commented Mar 7, 2015

Thanks for the pull request. We are going to have a look at it soon.

@quidryan
Copy link
Contributor

quidryan commented May 6, 2015

Cool addition. My biggest worry is what Gradle can and will do to the classpath available between plugins. E.g. in the future I'm not sure we're guaranteed to have access to other jar/plugins in the buildscript classpath.

I'd rather see this plugin know about all sorts of systems in a "cheap" way, then dynamically load up configurations with the appropriate jars to execute. From a user's point of view, they shouldn't need to know what other providers to add. But then again, I can see the Enterprise side of things, where they might want to configure their own providers internally behind the scenes.

@boxheed
Copy link
Author

boxheed commented May 6, 2015

I agree with you. I have used the Java Service Loader in some of my other plugins and whilst it works fine when using it in the older syntax by including it on the build script classpath and then applying the plugin, it doesn't work using the newer style plugins syntax, so from this perspective I couldn't recommend applying this pull request in the state that it is in.

I have however taken the an alternative approach to extending the CI providers in one of my own plugins here:https://github.com/boxheed/gradle-extended-info-plugin which has implementations for a number of the CI providers.

@boxheed boxheed closed this May 6, 2015
@boxheed
Copy link
Author

boxheed commented May 6, 2015

Accidental slip with the mouse.

@boxheed boxheed reopened this May 6, 2015
@boxheed
Copy link
Author

boxheed commented May 6, 2015

Do you have any ideas on how to approach making CI providers pluggable, other than I have done in my own extension to your plugin?

@boxheed boxheed force-pushed the feature/pluggable-ci-providers branch from 1798419 to 0351db3 Compare December 8, 2015 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants