diff --git a/.github/actions/setup-env/action.yaml b/.github/actions/setup-env/action.yaml index 33fc07e..a491b48 100644 --- a/.github/actions/setup-env/action.yaml +++ b/.github/actions/setup-env/action.yaml @@ -10,9 +10,10 @@ inputs: runs: using: "composite" steps: - - name: Setup JDK - uses: actions/setup-java@v4 + - name: Setup graalvm + uses: graalvm/setup-graalvm@v1 with: - distribution: "temurin" + distribution: "liberica" cache: "gradle" - java-version: ${{ inputs.java-version }} \ No newline at end of file + java-version: ${{ inputs.java-version }} + java-package: 'jdk+fx' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 51b5f09..f1d68de 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,8 +25,15 @@ jobs: - name: Setup Environment uses: ./.github/actions/setup-env - - name: Build APP - run: ./gradlew clean && ./gradlew :starter:build + - name: Show paths + run: | + echo "GRAALVM_HOME: $GRAALVM_HOME" + echo "JAVA_HOME: $JAVA_HOME" + java --version + native-image --version + + - name: Build APP jar + run: ./gradlew clean && ./gradlew :starter:bootJar - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/common/core/src/main/java/org/funcode/portal/server/common/core/config/ApplicationConfig.java b/common/core/src/main/java/org/funcode/portal/server/common/core/config/ApplicationConfig.java index 58b8d99..6f7f489 100644 --- a/common/core/src/main/java/org/funcode/portal/server/common/core/config/ApplicationConfig.java +++ b/common/core/src/main/java/org/funcode/portal/server/common/core/config/ApplicationConfig.java @@ -7,6 +7,7 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; /** * @author 李冲 @@ -17,6 +18,7 @@ @ConfigurationProperties(prefix = "application") public class ApplicationConfig { + @NestedConfigurationProperty private final Security security; /** @@ -28,12 +30,12 @@ public class ApplicationConfig { */ public record Security(String adminUsername, String adminPassword, - Token token, + @NestedConfigurationProperty Token token, String logoutSuccessUrl, String loginPage) { /** - * @param signingKey 签名密钥 - * @param expiration access-token过期时间,单位:分钟 + * @param signingKey 签名密钥 + * @param expiration access-token过期时间,单位:分钟 * @param refreshExpiration refresh-token的过期时间,单位:分钟 */ public record Token(String signingKey, diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3fdd479..06c32f6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.8-bin.zip +distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.9-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/starter/build.gradle b/starter/build.gradle index 65edecf..96f6a60 100644 --- a/starter/build.gradle +++ b/starter/build.gradle @@ -6,6 +6,7 @@ plugins { java { toolchain { languageVersion = JavaLanguageVersion.of(21) + vendor = JvmVendorSpec.BELLSOFT } } @@ -16,31 +17,40 @@ configurations { } springBoot { + mainClass = 'org.funcode.portal.server.starter.PortalServerApplication' + bootBuildImage { + imageName = "${rootProject.name}" + docker { + if (System.getProperty('os.name').toLowerCase().contains('windows')){ + host = "//./pipe/dockerDesktopLinuxEngine" + } + } + verboseLogging = true + } buildInfo { properties { - artifact = 'portal-server' - name = 'portal-server' + artifact = "${rootProject.name}" + name = "${rootProject.name}" + } + } + bootJar { + launchScript() + archiveClassifier = 'boot' + archiveBaseName = "${rootProject.name}" + manifest { + attributes 'Implementation-Title': "${rootProject.name} Application", + 'Implementation-Vendor': "${rootProject.name} Team", + 'Start-Class': 'org.funcode.portal.server.starter.PortalServerApplication' } } } -bootJar { - archiveBaseName = 'portal-server' - manifest { - attributes 'Implementation-Title': 'portal-server Application', - 'Implementation-Vendor': 'portal-server Team' - } +jar { + archiveClassifier = '' } -graalvmNative { - toolchainDetection = true - binaries { - main { - imageName = 'portal-server' - mainClass = 'org.funcode.portal.server.starter.PortalServerApplication' - verbose = true - } - } +clean { + delete rootProject.file('logs') } dependencies { diff --git a/starter/src/main/resources/docker/.env b/starter/src/main/resources/docker/.env index bca87b8..750667c 100644 --- a/starter/src/main/resources/docker/.env +++ b/starter/src/main/resources/docker/.env @@ -13,29 +13,29 @@ ADMIN_PASSWORD=admin # Database ############ PG_DB=portal -PG_HOST=jd.lichong.host +PG_HOST=postgresql PG_PORT=5432 PG_USER=lichong -PG_PASS=p32ggh_5dfrd_pF7a7N +PG_PASS=lichong ############ # Redis ############ -REDIS_HOST=jd.lichong.host +REDIS_HOST=redis REDIS_PORT=6379 REDIS_USER=default -REDIS_PASS=yjB4FXKcQKchREYx +REDIS_PASS=password ############ # Nacos ############ NACOS_ENABLE=false -NACOS_IP=jd.lichong.host +NACOS_IP=nacos NACOS_PORT=8848 NACOS_NAMESPACE=public NACOS_GROUP=DEFAULT_GROUP NACOS_USERNAME=nacos -NACOS_PASS=lichong +NACOS_PASS=nacos ############ # API doc