This commit is contained in:
16
.gitea/workflows/build.yaml
Normal file
16
.gitea/workflows/build.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: hostinger
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Setup Gradle
|
||||||
|
uses: gradle/actions/setup-gradle@v3
|
||||||
|
- name: Execute Gradle build
|
||||||
|
env:
|
||||||
|
PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }}
|
||||||
|
run: ./gradlew build publish dockerPushImage
|
3
Dockerfile
Normal file
3
Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM tomcat:jdk21
|
||||||
|
|
||||||
|
COPY ./jsf-playground-*.war /usr/local/tomcat/webapps/jsf-playground.war
|
51
build.gradle
51
build.gradle
@@ -1,10 +1,18 @@
|
|||||||
plugins {
|
plugins {
|
||||||
alias(catalog.plugins.lombok) apply false
|
alias(catalog.plugins.lombok) apply false
|
||||||
alias(catalog.plugins.sambal)
|
alias(catalog.plugins.sambal)
|
||||||
|
alias(catalog.plugins.gradle.docker)
|
||||||
|
id 'java-library'
|
||||||
id 'war'
|
id 'war'
|
||||||
id 'maven-publish'
|
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 {
|
allprojects {
|
||||||
|
|
||||||
pluginManager.withPlugin('java-library') {
|
pluginManager.withPlugin('java-library') {
|
||||||
@@ -60,3 +68,46 @@ dependencies {
|
|||||||
implementation catalog.log4j.slf4j2.impl
|
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")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 })
|
||||||
|
}
|
@@ -1,4 +1,5 @@
|
|||||||
gitea.maven.url=https://gitea.woggioni.net/api/packages/woggioni/maven
|
gitea.maven.url=https://gitea.woggioni.net/api/packages/woggioni/maven
|
||||||
|
docker.registry.url=gitea.woggioni.net
|
||||||
|
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
|
Reference in New Issue
Block a user