datahub/datahub-frontend/build.gradle
2025-04-07 10:13:07 +05:30

128 lines
4.0 KiB
Groovy

plugins {
id 'scala'
id 'org.gradle.playframework'
}
apply from: '../gradle/versioning/versioning.gradle'
apply from: './play.gradle'
apply from: '../gradle/coverage/java-coverage.gradle'
apply from: '../gradle/docker/docker.gradle'
ext {
docker_repo = 'datahub-frontend-react'
docker_dir = 'datahub-frontend'
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(jdkVersion(project))
}
}
test {
jacoco {
// jacoco instrumentation is failing when dealing with code of this dependency, excluding it.
excludes = ["com/gargoylesoftware/**"]
}
}
model {
// Must specify the dependency here as "stage" is added by rule based model.
tasks.myTar {
dependsOn stage
}
}
task myTar(type: Tar) {
compression = Compression.NONE
from("${buildDir}/stage")
into("bin") {
from("bin")
}
into("conf") {
from("conf")
fileMode = 0600
}
}
artifacts {
archives myTar
}
/*
PLAY UPGRADE NOTE
Generates the distribution jars under the expected names. The playFramework plugin only accepts certain name values
for the resulting folders and files, so some changes were made to accommodate. Default distribution is main if these are excluded
*/
distributions {
create("datahub-frontend") {
distributionBaseName = project.ext.playBinaryBaseName
}
playBinary {
distributionBaseName = project.ext.playBinaryBaseName
}
}
task unversionZip(type: Copy, dependsOn: [':datahub-web-react:distZip', distZip]) {
from ("${buildDir}/distributions")
include "datahub-frontend-${version}.zip"
into "${buildDir}/distributions"
rename "datahub-frontend-${version}.zip", "datahub-frontend.zip"
}
docker {
dependsOn(stageMainDist)
name "${docker_registry}/${docker_repo}:${versionTag}"
dockerfile file("${rootProject.projectDir}/docker/${docker_dir}/Dockerfile")
files "${buildDir}/stage"
files fileTree(rootProject.projectDir) {
include '.dockerignore'
include 'docker/monitoring/*'
include "docker/${docker_dir}/*"
}.exclude {
i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden())
}
additionalTag("Debug", "${docker_registry}/${docker_repo}:debug")
// Add build args if they are defined (needed for some CI or enterprise environments)
def dockerBuildArgs = [:]
if (project.hasProperty('alpineApkRepositoryUrl')) {
dockerBuildArgs.ALPINE_REPO_URL = project.getProperty('alpineApkRepositoryUrl')
}
if (project.hasProperty('githubMirrorUrl')) {
dockerBuildArgs.GITHUB_REPO_URL = project.getProperty('githubMirrorUrl')
}
if (project.hasProperty('mavenCentralRepositoryUrl')) {
dockerBuildArgs.MAVEN_CENTRAL_REPO_URL = project.getProperty('mavenCentralRepositoryUrl')
}
if (dockerBuildArgs.size() > 0) {
buildArgs(dockerBuildArgs)
}
}
// gradle 8 fixes
tasks.getByName('createDatahub-frontendTarDist').dependsOn 'stageMainDist'
tasks.getByName('createDatahub-frontendZipDist').dependsOn 'stageMainDist'
stagePlayBinaryDist.dependsOn tasks.getByName('createDatahub-frontendStartScripts')
playBinaryDistTar.dependsOn tasks.getByName('createDatahub-frontendStartScripts')
playBinaryDistZip.dependsOn tasks.getByName('createDatahub-frontendStartScripts')
tasks.getByName('stageDatahub-frontendDist').dependsOn stagePlayBinaryDist
tasks.getByName('stageDatahub-frontendDist').dependsOn createPlayBinaryStartScripts
tasks.getByName('datahub-frontendDistTar').dependsOn createPlayBinaryStartScripts
tasks.getByName('datahub-frontendDistTar').dependsOn createMainStartScripts
tasks.getByName('datahub-frontendDistZip').dependsOn createPlayBinaryStartScripts
tasks.getByName('datahub-frontendDistZip').dependsOn createMainStartScripts
playBinaryDistTar.dependsOn createMainStartScripts
playBinaryDistZip.dependsOn createMainStartScripts
createMainStartScripts.dependsOn 'stageDatahub-frontendDist'
createPlayBinaryTarDist.dependsOn 'stageDatahub-frontendDist'
createPlayBinaryZipDist.dependsOn 'stageDatahub-frontendDist'
createPlayBinaryTarDist.dependsOn 'stageMainDist'
createPlayBinaryZipDist.dependsOn 'stageMainDist'