114 lines
3.3 KiB
Groovy
114 lines
3.3 KiB
Groovy
plugins {
|
|
alias(catalog.plugins.lombok) apply false
|
|
alias(catalog.plugins.sambal)
|
|
alias(catalog.plugins.gradle.docker)
|
|
id 'java-library'
|
|
id 'war'
|
|
id 'maven-publish'
|
|
}
|
|
|
|
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
|
|
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
|
|
import com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer
|
|
import com.bmuschko.gradle.docker.tasks.container.DockerStartContainer
|
|
import com.bmuschko.gradle.docker.tasks.container.DockerStopContainer
|
|
|
|
allprojects {
|
|
|
|
pluginManager.withPlugin('java-library') {
|
|
apply plugin: 'net.woggioni.gradle.lombok'
|
|
|
|
repositories {
|
|
maven {
|
|
url = getProperty('gitea.maven.url')
|
|
content {
|
|
includeGroup 'net.woggioni'
|
|
includeGroup 'com.lys'
|
|
}
|
|
}
|
|
mavenCentral()
|
|
}
|
|
|
|
|
|
lombok {
|
|
version = catalog.versions.lombok.get()
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.release = 21
|
|
}
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(21)
|
|
}
|
|
}
|
|
|
|
tasks.withType(Test) {
|
|
useJUnitPlatform()
|
|
}
|
|
}
|
|
|
|
group = 'net.woggioni'
|
|
version = getProperty('jsf.playground.version')
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly catalog.jakarta.faces.api
|
|
compileOnly catalog.jakarta.servlet.api
|
|
compileOnly catalog.jakarta.enterprise.cdi.api
|
|
|
|
implementation catalog.jakarta.faces
|
|
implementation catalog.jakarta.el
|
|
implementation catalog.jakarta.cdi.el.api
|
|
implementation catalog.weld.servlet.core
|
|
implementation catalog.weld.web
|
|
|
|
implementation catalog.slf4j.api
|
|
implementation catalog.log4j.slf4j2.impl
|
|
}
|
|
|
|
Provider<Copy> prepareDockerBuild = tasks.register('prepareDockerBuild', Copy) {
|
|
group = 'docker'
|
|
into project.layout.buildDirectory.file('docker')
|
|
from(tasks.war)
|
|
from(file('Dockerfile'))
|
|
}
|
|
|
|
Provider<DockerBuildImage> dockerBuild = tasks.register('dockerBuildImage', DockerBuildImage) {
|
|
group = 'docker'
|
|
dependsOn(prepareDockerBuild)
|
|
images.add('gitea.woggioni.net/woggioni/jsf-playground:latest')
|
|
images.add("gitea.woggioni.net/woggioni/jsf-playground:${version}")
|
|
}
|
|
|
|
Provider<DockerPushImage> dockerPush = tasks.register('dockerPushImage', DockerPushImage) {
|
|
group = 'docker'
|
|
dependsOn(dockerBuild)
|
|
registryCredentials {
|
|
url = getProperty('docker.registry.url')
|
|
username = 'woggioni'
|
|
password = System.getenv().get("PUBLISHER_TOKEN")
|
|
}
|
|
images = dockerBuild.flatMap { it.images }
|
|
}
|
|
|
|
Provider<DockerCreateContainer> dockerCreate = tasks.register('dockerCreateContainer', DockerCreateContainer) {
|
|
group = 'docker'
|
|
dependsOn(dockerBuild)
|
|
targetImageId(dockerBuild.flatMap { it.imageId })
|
|
hostConfig.portBindings = ['127.0.0.1:8888:8080']
|
|
hostConfig.autoRemove = true
|
|
}
|
|
|
|
Provider<DockerStartContainer> dockerRun = tasks.register('dockerStartContainer', DockerStartContainer) {
|
|
group = 'docker'
|
|
dependsOn(dockerCreate)
|
|
targetContainerId(dockerCreate.flatMap { it.containerId })
|
|
}
|
|
|
|
tasks.register('dockerStopContainer', DockerStopContainer) {
|
|
group = 'docker'
|
|
dependsOn(dockerRun)
|
|
targetContainerId(dockerRun.flatMap { it.containerId })
|
|
} |