From 6d67cabc6fd3d59982a9501fad08b8e06a2e2d5b Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Thu, 17 Mar 2022 17:29:12 +0100 Subject: build(web/ui): Add Gradle integration with Next.js project This change adds support for building the OpenDC web interface project that uses Next.js using Gradle. This enables a single build pipeline using Gradle. --- opendc-web/opendc-web-ui/build.gradle.kts | 61 +++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'opendc-web/opendc-web-ui/build.gradle.kts') diff --git a/opendc-web/opendc-web-ui/build.gradle.kts b/opendc-web/opendc-web-ui/build.gradle.kts index 7edfd134..9063d0e3 100644 --- a/opendc-web/opendc-web-ui/build.gradle.kts +++ b/opendc-web/opendc-web-ui/build.gradle.kts @@ -19,3 +19,64 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ + +import com.github.gradle.node.yarn.task.YarnTask + +description = "Web interface for OpenDC" + +plugins { + java + id("com.github.node-gradle.node") +} + +val lintTask = tasks.register("lintNext") { + args.set(listOf("lint")) + dependsOn(tasks.yarn) + inputs.dir("src") + inputs.files("package.json", "next.config.js", ".eslintrc") + outputs.upToDateWhen { true } +} + +val buildTask = tasks.register("buildNext") { + args.set(listOf("build")) + dependsOn(tasks.yarn) + inputs.dir(project.fileTree("src")) + inputs.dir("node_modules") + inputs.files("package.json", "next.config.js") + outputs.dir("${project.buildDir}/build") +} + +tasks.register("dev") { + args.set(listOf("dev")) + dependsOn(tasks.yarn) + inputs.dir(project.fileTree("src")) + inputs.dir("node_modules") + inputs.files("package.json", "next.config.js") + outputs.upToDateWhen { true } +} + +tasks.register("start") { + args.set(listOf("start")) + dependsOn(buildTask) + inputs.dir(project.fileTree("src")) + inputs.dir("node_modules") + inputs.files("package.json", "next.config.js") + outputs.upToDateWhen { true } +} + +sourceSets { + java { + main { + java.srcDir("src") + resources.srcDir("public") + } + + test { + java.srcDir("test") + } + } +} + +tasks.test { + dependsOn(lintTask) +} -- cgit v1.2.3