add build an git info
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s

This commit is contained in:
2026-08-23 00:48:18 +02:00
parent 5b7c41c829
commit ec274a60d9
10 changed files with 74 additions and 46 deletions
+8 -18
View File
@@ -1,25 +1,8 @@
buildscript {
configurations.classpath {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.burgstaller' && details.requested.name == 'okhttp-digest' && details.requested.version == '1.10') {
details.useTarget "io.github.rburgst:${details.requested.name}:1.21"
details.because 'Dependency has moved'
}
}
}
repositories {
mavenCentral()
maven { setUrl("https://nexus.thpeetz.de/repository/maven-central") }
maven { setUrl("https://maven.vaadin.com/vaadin-prereleases") }
maven { setUrl("https://repo.spring.io/milestone") }
}
}
plugins {
id 'java'
id 'application'
id 'maven-publish'
id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
//id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
id 'jvm-test-suite'
id 'jacoco'
id 'test-report-aggregation'
@@ -28,6 +11,9 @@ plugins {
alias(libs.plugins.spring.dependencies)
alias(libs.plugins.vaadin)
alias(libs.plugins.lombok)
//id 'com.github.ksoichiro.build.info' version '0.2.0'
//id 'com.pasam.gradle.buildinfo' version '0.1.3'
id 'com.gorylenko.gradle-git-properties' version '4.0.1'
}
repositories {
@@ -125,6 +111,10 @@ bootRun {
args = ["--spring.profiles.active=${project.properties['profile'] ?: 'prod'}"]
}
springBoot {
buildInfo()
}
task dockerImage(type: Exec) {
dependsOn(bootJar)
commandLine "docker", "build", ".", "-t", "kontor:${project.version}"
@@ -9,6 +9,7 @@ import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.common.KontorLayoutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
@Slf4j
public class AdminLayout extends AppLayout {
@@ -19,11 +20,15 @@ public class AdminLayout extends AppLayout {
@SuppressWarnings("unused")
private final SecurityService securityService;
public AdminLayout(AdminService adminService, SecurityService securityService) {
@SuppressWarnings("unused")
private final BuildProperties buildProperties;
public AdminLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService);
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService, buildProperties);
layout.setSecondaryNavigation(getSecondaryNavigation());
layout.createHeader(AdminConstants.ADMIN_TITLE);
}
@@ -8,6 +8,7 @@ import de.thpeetz.kontor.constants.BookshelfConstants;
import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.common.KontorLayoutUtil;
import org.springframework.boot.info.BuildProperties;
public class BookshelfLayout extends AppLayout {
@@ -17,11 +18,15 @@ public class BookshelfLayout extends AppLayout {
@SuppressWarnings("unused")
private final SecurityService securityService;
public BookshelfLayout(AdminService adminService, SecurityService securityService) {
@SuppressWarnings("unused")
private final BuildProperties buildProperties;
public BookshelfLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService);
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService, buildProperties);
layout.setSecondaryNavigation(getSecondaryNavigation());
layout.createHeader(BookshelfConstants.BOOKSHELF);
}
@@ -9,6 +9,7 @@ import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.common.KontorLayoutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
/**
* Represents a custom layout for the comic view in the application.
@@ -21,11 +22,14 @@ public class ComicLayout extends AppLayout {
private final SecurityService securityService;
public ComicLayout(AdminService adminService, SecurityService securityService) {
private final BuildProperties buildProperties;
public ComicLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService);
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService, buildProperties);
layout.setSecondaryNavigation(getSecondaryNavigation());
layout.createHeader(ComicConstants.COMICS);
}
@@ -12,6 +12,7 @@ import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.admin.UserProfileView;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
@Slf4j
@Route("avatar-menu-bar")
@@ -21,9 +22,12 @@ public class AvatarMenuBar extends Div {
final AdminService adminService;
public AvatarMenuBar(SecurityService securityService, AdminService adminService) {
private final BuildProperties buildProperties;
public AvatarMenuBar(SecurityService securityService, AdminService adminService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
Avatar avatar = new Avatar();
securityService.getAuthenticatedUser().ifPresent(user -> {
@@ -45,6 +49,10 @@ public class AvatarMenuBar extends Div {
profileItem.addClickListener(e -> profileItem.getUI().ifPresent(ui -> ui.navigate(UserProfileView.class)));
subMenu.addItem("Settings");
subMenu.addItem("Help");
subMenu.addSeparator();
subMenu.addItem("Version");
subMenu.addItem(this.buildProperties.getVersion());
subMenu.addItem(this.buildProperties.getTime().toString());
add(menuBar);
}
}
@@ -21,6 +21,7 @@ import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
@Slf4j
public class KontorLayoutUtil {
@@ -33,9 +34,12 @@ public class KontorLayoutUtil {
private final SecurityService securityService;
public KontorLayoutUtil(AppLayout layout, AdminService adminService, SecurityService securityService) {
private final BuildProperties buildProperties;
public KontorLayoutUtil(AppLayout layout, AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
this.appLayout = layout;
}
@@ -65,7 +69,7 @@ public class KontorLayoutUtil {
viewTitle.addClassNames(LumoUtility.FontSize.LARGE, LumoUtility.Margin.NONE);
HorizontalLayout subViews = this.secondaryNavigation;
AvatarMenuBar avatar = new AvatarMenuBar(securityService, adminService);
AvatarMenuBar avatar = new AvatarMenuBar(securityService, adminService, buildProperties);
HorizontalLayout wrapper = new HorizontalLayout(toggle, viewTitle, avatar);
wrapper.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER);
wrapper.expand(viewTitle);
@@ -24,6 +24,7 @@ import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.DataManagementView;
import de.thpeetz.kontor.views.EmailView;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
import java.util.ArrayList;
@@ -34,9 +35,12 @@ public class MainLayout extends AppLayout {
private final SecurityService securityService;
public MainLayout(AdminService adminService, SecurityService securityService) {
private final BuildProperties buildProperties;
public MainLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
createHeader("Kontor");
createDrawer();
@@ -57,7 +61,7 @@ public class MainLayout extends AppLayout {
H2 viewTitle = new H2(titleName);
viewTitle.addClassNames(LumoUtility.FontSize.LARGE, LumoUtility.Margin.NONE);
AvatarMenuBar avatar = new AvatarMenuBar(securityService, adminService);
AvatarMenuBar avatar = new AvatarMenuBar(securityService, adminService, buildProperties);
HorizontalLayout wrapper = new HorizontalLayout(toggle, viewTitle, avatar);
wrapper.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER);
wrapper.expand(viewTitle);
@@ -3,15 +3,16 @@ package de.thpeetz.kontor.views.common;
import com.vaadin.flow.component.applayout.AppLayout;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.theme.lumo.LumoUtility;
import org.springframework.boot.info.BuildProperties;
import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
public class SeparateMainLayout extends AppLayout {
public SeparateMainLayout(AdminService adminService, SecurityService securityService) {
public SeparateMainLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService);
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService, buildProperties);
layout.setSecondaryNavigation(getSecondaryNavigation());
layout.createHeader("Kontor");
}
@@ -9,6 +9,7 @@ import de.thpeetz.kontor.security.SecurityService;
import de.thpeetz.kontor.services.AdminService;
import de.thpeetz.kontor.views.common.KontorLayoutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
/**
* Represents a custom layout for the comic view in the application.
@@ -21,11 +22,14 @@ public class TyscLayout extends AppLayout {
private final SecurityService securityService;
public TyscLayout(AdminService adminService, SecurityService securityService) {
private final BuildProperties buildProperties;
public TyscLayout(AdminService adminService, SecurityService securityService, BuildProperties buildProperties) {
this.adminService = adminService;
this.securityService = securityService;
this.buildProperties = buildProperties;
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService);
KontorLayoutUtil layout = new KontorLayoutUtil(this, adminService, securityService, buildProperties);
layout.setSecondaryNavigation(getSecondaryNavigation());
layout.createHeader(TyscConstants.TYSC);
}
@@ -1,7 +1,7 @@
app:
name: 'Kontor'
shortName: 'Kontor'
description: 'Kontor is a Spring Boot application'
name: "Kontor"
shortName: "Kontor"
description: "Kontor is a Spring Boot application"
spring:
profiles:
active: local,dev,test,prod
@@ -39,6 +39,9 @@ management:
web:
exposure:
include: health,info,metrics,prometheus,camelroutes
info:
git:
mode: full
endpoint:
health:
show-details: always
@@ -61,15 +64,15 @@ logging:
springframework:
controllers: DEBUG
jwt:
auth:
secret: 'J6GOtcwC2NJI1l0VkHu20PacPFGTxpirBxWwynoHjsc='
auth:
secret: "J6GOtcwC2NJI1l0VkHu20PacPFGTxpirBxWwynoHjsc="
mail:
protocol: 'imap'
host: 'corky.svpdata.eu'
port: 143
userName: 'thomas.peetz@thpeetz.de'
password: 'fS9f4JYDIO7A'
starttls: true
protocol: "imap"
host: "corky.svpdata.eu"
port: 143
userName: "thomas.peetz@thpeetz.de"
password: "fS9f4JYDIO7A"
starttls: true
---
spring:
config:
@@ -77,8 +80,8 @@ spring:
on-profile: prod
datasource:
url: jdbc:postgresql://postgres:5432/kontor
username: 'kontor'
password: 'kontor'
username: "kontor"
password: "kontor"
artemis:
mode: native
broker-url: tcp://activemq:61616