use of org.curioswitch.gradle.plugins.staticsite.StaticSiteExtension.SiteProject in project curiostack by curioswitch.
the class StaticSitePlugin method apply.
@Override
public void apply(Project project) {
project.getPlugins().apply(NodePlugin.class);
var config = StaticSiteExtension.create(project);
var mergeSite = project.getTasks().register("mergeSite", Copy.class, t -> {
t.from("src");
t.into("build/site");
for (SiteProject site : config.getSites().get()) {
site.getProject().getPlugins().withType(LifecycleBasePlugin.class, unused -> t.dependsOn(site.getProject().getTasks().named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)));
t.from(site.getBuildDir(), copy -> copy.into(site.getOutputSubDir()));
}
});
var assemble = project.getTasks().named("assemble");
assemble.configure(t -> t.dependsOn(mergeSite));
var yarn = project.getRootProject().getTasks().named("yarn");
var deployAlpha = project.getTasks().register("deployAlpha", GcloudTask.class, t -> {
t.dependsOn(assemble);
// TODO(choko): Remove this major hack - the command line has two --project flags
// and we're just lucky the later is used.
t.args(config.getAppEngineProject().map(appEngineProject -> ImmutableList.of("app", "deploy", "--project=" + appEngineProject)));
});
var deployProd = project.getTasks().register("deployProd", NodeTask.class, t -> {
t.dependsOn(yarn, assemble);
t.args(config.getFirebaseProject().map(firebaseProject -> ImmutableList.of("run", "firebase", "--project", firebaseProject, "deploy")));
});
project.getTasks().register("preview", NodeTask.class, t -> {
t.dependsOn(yarn, assemble);
t.args("run", "superstatic", "--port=8080");
});
CurioGenericCiPlugin.addToReleaseBuild(project, deployProd);
project.afterEvaluate(unused -> {
if (config.getAutoDeployAlpha().get()) {
CurioGenericCiPlugin.addToMasterBuild(project, deployAlpha);
}
});
}
Aggregations