added gitea build
Some checks are pending
CI / Build wildfly docker images (push) Waiting to run

This commit is contained in:
2024-12-08 21:27:25 +08:00
parent 7fcae3b18b
commit 040b03e2e8
4 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
name: CI
on:
push:
branches: [ master ]
jobs:
"Build wildfly docker images":
runs-on: woryzen
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
View File

@@ -0,0 +1,3 @@
FROM tomcat:jdk21
COPY ./jsf-playground-*.war /usr/local/tomcat/webapps/jsf-playground.war

View File

@@ -1,10 +1,18 @@
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') {
@@ -60,3 +68,46 @@ dependencies {
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 })
}

View File

@@ -1,4 +1,5 @@
gitea.maven.url=https://gitea.woggioni.net/api/packages/woggioni/maven
docker.registry.url=gitea.woggioni.net
org.gradle.parallel=true
org.gradle.caching=true