Files
jsf-playground/build.gradle
Walter Oggioni af5df53f46
All checks were successful
CI / build (push) Successful in 33s
fixed version number
2024-12-08 22:11:52 +08:00

152 lines
4.2 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()
}
}
pluginManager.withPlugin('maven-publish') {
pluginManager.withPlugin('java-library') {
java {
withJavadocJar()
withSourcesJar()
}
}
publishing {
repositories {
maven {
name = "Gitea"
url = uri(getProperty('gitea.maven.url'))
credentials(HttpHeaderCredentials) {
name = "Authorization"
value = "token ${System.getenv()["PUBLISHER_TOKEN"]}"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
}
group = 'net.woggioni'
version = currentTag ?: (getProperty('jsf.playground.version') + "-" + gitRevision.substring(0, 8))
}
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 })
}
publishing {
publications {
maven(MavenPublication) {
from(components["web"])
}
}
}