Commit Graph

116 Commits

Author SHA1 Message Date
R. Tyler Croy 293803bf7e
Support enabling/disabling default jar tasks, default is for them to be disabled
Fixes #19
2015-07-09 13:01:49 -07:00
R. Tyler Croy 97093c72d4
Remove deprecated call to jar { jruby{} } 2015-07-09 10:57:30 -07:00
R. Tyler Croy d870a054cf
Remove the dependency on uploadArchives for publishService
No sense in hooking ourselves up to that configuration specifically

References #19
2015-07-09 10:42:00 -07:00
R. Tyler Croy 497b7b26f1
Update the README to reflect recent changes in the API 2015-07-08 17:32:39 -07:00
R. Tyler Croy 00db6d3a00
Re-enable gradleTest across the various distributions 2015-07-08 17:24:42 -07:00
R. Tyler Croy 9ba20c2938
Support including task outputs in the JRuby component
This needs more testing and docs around it, but a good proof of concept for now

Fixes #40
2015-07-08 17:24:00 -07:00
R. Tyler Croy 1cd93e101f
Support using the Travis CI build number if it is present
Fixes #35
2015-07-08 17:12:05 -07:00
R. Tyler Croy 7d52386d3b Merge pull request #38 from rtyler/service-artifact-gradle-plugin-34
Reworking the service{} DSL to support metadata and components better
2015-07-08 17:06:46 -07:00
R. Tyler Croy 451a4b0949
Upgrade jackson because why not 2015-07-08 16:33:08 -07:00
R. Tyler Croy 4ee7d6310b
Update to the latest release of jruby-gradle
This defaults SAP JRuby apps to JRuby 1.7.21
2015-07-08 16:33:08 -07:00
R. Tyler Croy f0d15fb989
Ensure we're only creating a List of String objects for serialization
The issue (stacktrace below) was caused by a number of File objects making their way into
the yaml serialization tree

    * What went wrong:
    Execution failed for task ':serviceMetadataApi'.
    > expected NodeEvent, but got <com.fasterxml.jackson.dataformat.yaml.snakeyaml.events.DocumentEndEvent()>

    * Try:
    Run with --debug option to get more log output.

    * Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':serviceMetadataApi'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
            at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
            at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
            at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
            at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
            at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:296)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
            at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
            at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
            at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
            at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
            at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
            at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:105)
            at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:85)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:81)
            at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
            at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:39)

            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
    BUILD FAILED
            at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)

            at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    Total time: 21.573 secs
            at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
            at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
            at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
            at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
            at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
            at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
            at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
            at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
            at org.gradle.launcher.Main.doAction(Main.java:33)
            at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
            at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
            at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    Caused by: com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.EmitterException: expected NodeEvent, but got <com.fasterxml.jackson.dataformat.yaml.snakeyaml.events.DocumentEndEvent()>
            at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.expectNode(Emitter.java:409)
            at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.access$1600(Emitter.java:63)
            at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter$ExpectBlockSequenceItem.expect(Emitter.                                                 java:596)
            at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter$ExpectFirstBlockSequenceItem.expect(Emitter.java:577)
            at com.fasterxml.jackson.dataformat.yaml.snakeyaml.emitter.Emitter.emit(Emitter.java:217)
            at com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.close(YAMLGenerator.java:287)
            at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2879)
            at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2323)
            at com.fasterxml.jackson.databind.ObjectMapper$writeValueAsString.call(Unknown Source)
            at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
            at com.github.lookout.serviceartifact.Metadata.toYaml(Metadata.groovy:59)
            at com.github.lookout.serviceartifact.Metadata$toYaml.call(Unknown Source)
            at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
            at com.github.lookout.serviceartifact.AbstractComponent$_createCompressedTasks_closure1_closure6.doCall(AbstractComponent.groovy:54)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
            at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
            at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
            at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
            at groovy.lang.Closure.call(Closure.java:423)
            at groovy.lang.Closure.call(Closure.java:439)
            at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:539)
            at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:520)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
            ... 48 more

    jruby: FAILED
    gradleTest Compatibility Test Executor finished execuring tests
    1 compatibility tests failed.
    -------------------------------------
    gradleTest:jruby:2.0: FAILED
    -------------------------------------

    :gradleTest FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':gradleTest'.
    > One or more compatibility tests have failed. Check the screen output for now.

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 2 mins 20.045 secs
2015-07-08 16:33:08 -07:00
R. Tyler Croy 4477b81aba
Move metadata generation and storage to the components
Fixes  #34
2015-07-08 16:33:08 -07:00
R. Tyler Croy c2c91d797f
Introduce failing metadata.conf content integration test 2015-07-08 16:33:08 -07:00
R. Tyler Croy 1939488c74
Integration test to verify we're producing the VERSION file properly 2015-07-08 16:33:08 -07:00
R. Tyler Croy fce3a65640
Add an integration test to verify that /a/ metadata.conf file is being produced
References #34
2015-07-08 16:33:08 -07:00
R. Tyler Croy 5327ea053a
Add more integration tests for validating the built JRuby jar artifact
Fixes #36
2015-07-08 16:33:08 -07:00
R. Tyler Croy 9611606b31
Start using the nebula-test plugin for integration testing
Also adding an integration test which actually verifies the production of a tar
file

See <https://github.com/nebula-plugins/nebula-test>
2015-07-08 16:33:08 -07:00
R. Tyler Croy 82b13201ae
Refactor yaml generation into the Metadata class itself 2015-07-08 16:33:08 -07:00
R. Tyler Croy 7a40141628
Introduce src/integration for executing some longer-running more comprehensive tests
Basically:

    unit tests < integration tests < gradle tests
2015-07-08 16:33:08 -07:00
R. Tyler Croy 79f678987a
Rely on projectDir instead of whatever "working dir" we get from the shell for finding Git 2015-07-08 16:33:08 -07:00
R. Tyler Croy 97651843ca
Implement the data{} configuration closure 2015-07-08 16:33:08 -07:00
R. Tyler Croy c5a595e6da
Move JRubyJar configuration into an afterEvaluate hook to ensure we're getting consistent configurations
This should be possible to remove once this PR is merged:
    <https://github.com/jruby-gradle/jruby-gradle-plugin/pull/138>
2015-07-08 16:33:08 -07:00
R. Tyler Croy 94ae485dc3
Properly invoke the component configuration closure 2015-07-08 16:33:08 -07:00
R. Tyler Croy 80a2009ba1
Update the examples to work with the new component API properly 2015-07-08 16:33:08 -07:00
R. Tyler Croy 1d156f5fa4
Massive work in progress putting together the service { component {} } DSL
JRubyComponent is mostly pieced in correctly at this point
2015-07-08 16:33:03 -07:00
R. Tyler Croy 7d7929f3a2
Refactor the generation of the VERSION file to live in ServiceArtifactExtension
This should make it more logical and break the coupling between the language
specific implementations and the overall service artifact work
2015-07-08 16:32:46 -07:00
R. Tyler Croy d0b7b2ea29
Rename publish to publishService for now
Fixes #33
2015-07-08 16:32:46 -07:00
R. Tyler Croy 2cca78bece
Remove the scala-based gradleTest for now
See #41
2015-07-08 16:32:46 -07:00
R. Tyler Croy 6886a6518f
Add a currently non-functional multi-project example 2015-07-08 16:29:12 -07:00
R. Tyler Croy 090fc927d1 Disable dependency-lock as a dependency until it's Gradle 2.4 compatible
References #18
2015-06-09 12:08:40 -07:00
R. Tyler Croy af96e15a7b Add the dependency-lock plugin as a default plugin
Fixes #18
2015-06-09 10:36:22 -07:00
R. Tyler Croy 0b15864389 Merge pull request #32 from lookout/issue-22
Add a simple `publish` task
2015-06-09 09:56:01 -07:00
R. Tyler Croy d2fa5a934b Add a simple `publish` task which just invokes uploadServiceArchives and uploadArchives
The publish task will assume that some configuraiton for these two tasks has
already happened, and simply exists to provide an easy single task-point to
execute them

Fixes #22
2015-06-09 08:43:43 -07:00
R. Tyler Croy 87083a29ac Merge pull request #31 from lookout/issue-25
Create artifacts for publication in the serviceArchives configuration
2015-06-09 07:31:57 -07:00
R. Tyler Croy 9f75460147 Remove circular dependency for Scala's serviceJar too
Missed a spot when I was working on #29
2015-06-09 07:03:50 -07:00
R. Tyler Croy 51145c67c8 Ensure Scala projects have their serviceJar added to serviceArchives too 2015-06-08 17:44:48 -07:00
R. Tyler Croy 1534ca4872 Create artifacts for publication in the serviceArchives configuration
Fixes #25
2015-06-08 17:35:38 -07:00
R. Tyler Croy 21c1e77eca Merge pull request #30 from lookout/issue-29
Remove unnecessary dependency on assembe from the JRuby
2015-06-08 15:06:17 -07:00
R. Tyler Croy 06ef7411d3 Remove unnecessary dependency on assembe from the JRuby serviceJar implmementation
Fixes #29
2015-06-08 14:40:29 -07:00
R. Tyler Croy e1d1841c78 Add support for using the BUILD_NUMBER in a Git-based version
Not adding this to the Gerrit handler as well because that already has more
than enough identifying information in the version string

Fixes #28
2015-06-08 06:35:27 -07:00
R. Tyler Croy f08519a2c8 Upgrade to 0.3 versions of the jruby-gradle plugins 2015-06-06 15:19:48 -07:00
R. Tyler Croy 1004d7ad03 Use a path-sensitive means of including individual files inside of a jar file
This will allow `include 'data/secrets.txt'` to be included properly inside the
artifact as `jar!data/secrets.txt` instead of `jar!secrets.txt`
2015-06-05 16:16:30 -07:00
R. Tyler Croy 3367b27f83 Add an alternative means of including full directory structures in the jar
This mostly works around jruby-gradle/jruby-gradle-jar-plugin#54 for now
2015-06-05 13:44:42 -07:00
R. Tyler Croy f9298ff8bc Increment version for next batch of work 2015-06-02 08:48:02 -07:00
R. Tyler Croy 3cb3e8f741 Add the scala-service example as a gradle integration test 2015-05-21 09:31:29 -07:00
R. Tyler Croy fdd8cc0851 Include gradleTest in the default tasks again 2015-05-20 11:52:02 -07:00
R. Tyler Croy 09286d3c2e Ensure the gradletests consistently work
It appears that without extending the compile configuration for`gradleTest` the
temp fileTree repo that the plugin creates will have *zero* of the transitive
dependencies that we need to execute the plugin properly.

This change addresses that
2015-05-20 09:57:55 -07:00
R. Tyler Croy e1916a962b Version bump 2015-05-19 18:28:01 -07:00
R. Tyler Croy 98002a1a5e Merge pull request #26 from rtyler/jar0.2
Upgrade to jruby-gradle jar plugin 0.2.0
2015-05-19 18:15:17 -07:00
R. Tyler Croy 859446a47d Run default tasks in Travis 2015-05-19 17:53:17 -07:00