Skip to content

Commit

Permalink
Add unitypackage artifact (#37)
Browse files Browse the repository at this point in the history
* Resolve #36
  • Loading branch information
marcolink committed Feb 23, 2018
1 parent 8c3afa0 commit 5cb9bcb
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/main/groovy/wooga/gradle/unity/UnityPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import wooga.gradle.unity.tasks.Activate
import wooga.gradle.unity.tasks.ReturnLicense
import wooga.gradle.unity.tasks.Test
import wooga.gradle.unity.tasks.UnityPackage
import wooga.gradle.unity.tasks.UnityPackageArtifact
import wooga.gradle.unity.tasks.internal.AbstractUnityProjectTask
import wooga.gradle.unity.tasks.internal.AbstractUnityTask

Expand Down Expand Up @@ -121,11 +122,11 @@ class UnityPlugin implements Plugin<Project> {
final BasePluginConvention basePluginConvention = new BasePluginConvention(project)

configureUnityExtensionConvention(project, unityExtension)
createUnityPackageConfiguration(project)
configureUnityTasks(project, unityExtension)
addTestTasks(project, unityExtension)
addPackageTask(project)
addActivateAndReturnLicenseTasks(project, unityExtension)
createUnityPackageConfiguration(project)
addDefaultReportTasks(project, unityExtension)
configureArchiveDefaults(project, basePluginConvention)

Expand Down Expand Up @@ -242,6 +243,7 @@ class UnityPlugin implements Plugin<Project> {
}

private static void configureArchiveDefaults(final Project project, final BasePluginConvention pluginConvention) {
def configuration = project.configurations.getByName(UNITY_PACKAGE_CONFIGURATION_NAME)
project.getTasks().withType(UnityPackage.class, new Action<UnityPackage>() {
void execute(UnityPackage task) {
ConventionMapping taskConventionMapping = task.getConventionMapping()
Expand All @@ -265,7 +267,8 @@ class UnityPlugin implements Plugin<Project> {
}
})

project.artifacts.add(UNITY_PACKAGE_CONFIGURATION_NAME, [file: task.archivePath, builtBy: task])
UnityPackageArtifact artifact = UnityPackageArtifact.fromTask(task)
configuration.getArtifacts().add(artifact)
}
})
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package wooga.gradle.unity.tasks

import org.gradle.api.artifacts.PublishArtifact
import org.gradle.api.internal.tasks.DefaultTaskDependency
import org.gradle.api.internal.tasks.TaskResolver
import org.gradle.api.tasks.TaskDependency

class UnityPackageArtifact implements PublishArtifact {


@Override
String getName() {
return task.getArchiveName().split(".${UnityPackage.UNITY_PACKAGE_EXTENSION}")[0]
}

@Override
String getExtension() {
return UnityPackage.UNITY_PACKAGE_EXTENSION
}

@Override
String getType() {
return "zip"
}

@Override
String getClassifier() {
return null
}

@Override
File getFile() {
return this.task.getArchivePath()
}

@Override
Date getDate() {
return null
}

def taskDependency

@Override
TaskDependency getBuildDependencies() {
taskDependency
}
private UnityPackage task

static PublishArtifact fromTask(UnityPackage task) {
new UnityPackageArtifact(task)
}

UnityPackageArtifact(UnityPackage task) {
this.task = task
taskDependency = new DefaultTaskDependency(task.project.tasks as TaskResolver)
taskDependency.add(task)
}
}

0 comments on commit 5cb9bcb

Please sign in to comment.