diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-03-17 17:29:12 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-04-05 13:46:33 +0200 |
| commit | 6d67cabc6fd3d59982a9501fad08b8e06a2e2d5b (patch) | |
| tree | 95b8863ab840bd0e51a5d24b69f6ecaee5945096 /opendc-web/opendc-web-ui/build.gradle.kts | |
| parent | 8ca917ec9b0dd129729c527da77e2eb0ea3abf58 (diff) | |
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.
Diffstat (limited to 'opendc-web/opendc-web-ui/build.gradle.kts')
| -rw-r--r-- | opendc-web/opendc-web-ui/build.gradle.kts | 61 |
1 files changed, 61 insertions, 0 deletions
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<YarnTask>("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<YarnTask>("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<YarnTask>("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<YarnTask>("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) +} |
