Compare commits

..

5 Commits

Author SHA256 Message Date
24c06ad973 NoIssue: Fix dash/underscore bug 2026-02-07 09:50:01 +01:00
6964530e0a NoIssue: Permission fix 2026-02-01 21:50:12 +01:00
5d179979f3 NoIssue: Fix for build, run and publish 2026-02-01 21:15:38 +01:00
ff92f6c868 NoIssue: Small changes to the Dummy process 2026-02-01 19:16:44 +01:00
d67703c8ef NoIssue: Fix for correct main class 2026-02-01 18:56:04 +01:00
9 changed files with 34 additions and 33 deletions

View File

@@ -11,7 +11,7 @@ if (version == "UNSET" && gradle.startParameter.taskNames.any { it.startsWith("p
} }
application { application {
mainClass.set("com.r35157.nenjim.kicker.impl.ref.KickerImpl") mainClass.set("com.r35157.nenjim.kicker.impl.ref.Main")
} }
repositories { repositories {
@@ -46,25 +46,30 @@ java {
toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } toolchain { languageVersion.set(JavaLanguageVersion.of(25)) }
} }
tasks.withType<JavaCompile> { tasks.withType<JavaCompile>().configureEach {
options.release.set(25) options.release.set(25)
options.compilerArgs.add("--enable-preview") options.compilerArgs.add("--enable-preview")
} }
val dockerLibsDir = layout.buildDirectory.dir("docker/libs") val libsDir = layout.buildDirectory.dir("libs")
tasks.register<Sync>("prepareDockerLibs") { tasks.register<Sync>("prepareLibs") {
group = "distribution" group = "distribution"
description = "Copies all runtime dependencies (transitive) to build/docker/libs" description = "Copies runtime deps to build/libs without deleting the app jar"
// Hvis du også vil bygge dit eget jar samtidig, så lad den stå ellers kan du fjerne den. val jarTask = tasks.named<Jar>("jar")
dependsOn(tasks.named("jar")) dependsOn(jarTask)
into(dockerLibsDir) into(libsDir)
// Kun deps (transitivt) // Kun deps (transitivt)
from(configurations.runtimeClasspath) from(configurations.runtimeClasspath)
// Bevar jar-filen som jar-tasken allerede har lagt i build/libs
preserve {
include(jarTask.get().archiveFileName.get())
}
duplicatesStrategy = DuplicatesStrategy.EXCLUDE duplicatesStrategy = DuplicatesStrategy.EXCLUDE
} }

View File

@@ -13,13 +13,14 @@ export VERSION_LONG=${VERSION}_${GITHASH}
# Build this artifact # Build this artifact
echo "Building 'NenjimKicker v${VERSION_LONG}'..." echo "Building 'NenjimKicker v${VERSION_LONG}'..."
./gradlew -Pversion=$VERSION jar prepareDockerLibs ./gradlew -Pversion=$VERSION jar prepareLibs
# Prepare container dependencies # Prepare container dependencies
mkdir -p build/docker/conf mkdir -p build/docker/{conf,libs}
cd build/docker cd build/docker
cp ../../src/main/docker/start.sh start.sh cp ../../src/main/docker/run.sh run.sh
cp ../libs/kicker-impl-ref-*.jar libs cp ../libs/*.jar libs/
cp ../../conf/* conf cp ../../conf/* conf/
sed -e "s|_VERSION_|${VERSION}|g" \ sed -e "s|_VERSION_|${VERSION}|g" \
-e "s|_JREVERSION_|${JREVERSION}|g" \ -e "s|_JREVERSION_|${JREVERSION}|g" \
../../src/main/docker/Dockerfile_template > Dockerfile ../../src/main/docker/Dockerfile_template > Dockerfile
@@ -32,7 +33,6 @@ HASHTAG=${BASETAG}:${GITHASH}_amd64
VERSIONTAG=${BASETAG}:${VERSION}_amd64 VERSIONTAG=${BASETAG}:${VERSION}_amd64
LATESTTAG=${BASETAG}:latest_amd64 LATESTTAG=${BASETAG}:latest_amd64
CANONICALNAME=${HASHTAG} CANONICALNAME=${HASHTAG}
docker build -t ${CANONICALNAME} . docker build -t ${CANONICALNAME} .
docker tag ${CANONICALNAME} ${VERSIONTAG} docker tag ${CANONICALNAME} ${VERSIONTAG}
docker tag ${CANONICALNAME} ${LATESTTAG} docker tag ${CANONICALNAME} ${LATESTTAG}

1
libs Symbolic link
View File

@@ -0,0 +1 @@
build/libs

View File

@@ -1,6 +0,0 @@
export VERSION=$(git describe --tags --exact-match 2>/dev/null \
|| git symbolic-ref --short -q HEAD \
|| git rev-parse --short HEAD)
echo "Building and publishing (CI/CD) $VERSION..."
./gradlew -Pversion=$VERSION publish

1
publishCICD.sh Symbolic link
View File

@@ -0,0 +1 @@
publish.sh

6
run.sh
View File

@@ -1,6 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
./gradlew run \
-Dlog4j.configurationFile="$PWD/config/log4j2.xml" \
--args="foo bar baz"

1
run.sh Symbolic link
View File

@@ -0,0 +1 @@
src/main/docker/run.sh

View File

@@ -1 +1 @@
rootProject.name = "kicker-impl-ref" rootProject.name = "kicker-impl_ref"

View File

@@ -13,7 +13,7 @@ WORKDIR nenjimkicker
RUN mkdir libs RUN mkdir libs
# These dirs are expected to be overshadowed by host mounts # These dirs are expected to be overshadowed by host mounts
RUN mkdir conf logs RUN mkdir conf logs && chown user:user logs
# Set timezone # Set timezone
ENV TZ=Europe/Copenhagen ENV TZ=Europe/Copenhagen
@@ -29,14 +29,15 @@ RUN apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install application and configuration (Do this as late as possible to be able to reuse layers between builds) # Install application and configuration (Do this as late as possible to be able to reuse layers between builds)
COPY start.sh . COPY run.sh .
COPY conf/* conf/ COPY conf/* conf/
COPY libs/*.jar libs/ COPY libs/*.jar libs/
RUN chmod 755 ./start.sh \ RUN chown root:root -R conf
RUN chmod 755 ./run.sh \
&& chmod -R a+rX /usr/local/software/nenjimkicker-_VERSION_ && chmod -R a+rX /usr/local/software/nenjimkicker-_VERSION_
USER user:user USER user:user
CMD ["./start.sh"] CMD ["./run.sh"]

View File

@@ -12,6 +12,6 @@ fi
CLASSPATH=$(IFS=:; echo "${jars[*]}") CLASSPATH=$(IFS=:; echo "${jars[*]}")
exec java \ exec java \
-Dlog4j.configurationFile=/usr/local/software/nenjimkicker/conf/log4j2.xml \ -Dlog4j.configurationFile=conf/log4j2.xml \
-cp "$CLASSPATH" \ -cp "$CLASSPATH" \
com.r35157.nenjim.kicker.impl.ref.Main com.r35157.nenjim.kicker.impl.ref.Main

View File

@@ -1,16 +1,20 @@
package com.r35157.nenjim.kicker.impl.ref; package com.r35157.nenjim.kicker.impl.ref;
import com.r35157.nenjim.kicker.NenjimProcess; import com.r35157.nenjim.kicker.NenjimProcess;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class Dummy implements NenjimProcess { public class Dummy implements NenjimProcess {
@Override @Override
public void run() { public void run() {
System.out.println("Hello! This is '" + getName() + "'"); log.error("Process '" + getName() + "' started.");
} }
@Override @Override
public @NotNull String getName() { public @NotNull String getName() {
return "Just A Dummy"; return "Just A Dummy";
} }
private static final Logger log = LogManager.getLogger(Dummy.class);
} }