From 78bec923318247a77f0d42f43db46045255b5595 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 21:34:41 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E2=9C=A8=20feat(`QueryHelper.java`):=20R?= =?UTF-8?q?efactor=20query=20processing=20methods=20for=20improved=20reada?= =?UTF-8?q?bility=20and=20maintainability.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/commons/utils/query/QueryHelper.java | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/boot/platform/src/main/java/com/plate/boot/commons/utils/query/QueryHelper.java b/boot/platform/src/main/java/com/plate/boot/commons/utils/query/QueryHelper.java index 93bf4db1..62979f82 100644 --- a/boot/platform/src/main/java/com/plate/boot/commons/utils/query/QueryHelper.java +++ b/boot/platform/src/main/java/com/plate/boot/commons/utils/query/QueryHelper.java @@ -43,7 +43,6 @@ public static QueryFragment query(Object object, Pageable pageable, String prefi return query(object, pageable, List.of(), prefix); } - @SuppressWarnings("unchecked") public static QueryFragment query(Object object, Pageable pageable, Collection skipKeys, String prefix) { Map objectMap = BeanUtils.beanToMap(object, false, true); Map filterMap = ObjectUtils.isEmpty(objectMap) ? Map.of() : @@ -58,36 +57,42 @@ public static QueryFragment query(Object object, Pageable pageable, Collection jsonMap = (Map) objectMap.get(queryKey); - QueryFragment jsonQueryFragment = QueryJsonHelper.queryJson(jsonMap, prefix); + processQueryKey(queryFragment, objectMap, prefix); + processSecurityCodeKey(queryFragment, objectMap, skipKeys, prefix); + processSearchKey(queryFragment, objectMap, prefix); + + return queryFragment; + } + + @SuppressWarnings("unchecked") + private static void processQueryKey(QueryFragment queryFragment, Map objectMap, String prefix) { + if (objectMap.containsKey("query")) { + var jsonMap = (Map) objectMap.get("query"); + var jsonQueryFragment = QueryJsonHelper.queryJson(jsonMap, prefix); queryFragment.mergeWhere(jsonQueryFragment.getWhereSql()); queryFragment.putAll(jsonQueryFragment); } + } - String securityCodeKey = "securityCode"; - if (!skipKeys.contains(securityCodeKey) && objectMap.containsKey(securityCodeKey)) { - String key = "tenant_code"; - if (StringUtils.hasLength(prefix)) { - key = prefix + "." + key; - } + private static void processSecurityCodeKey(QueryFragment queryFragment, Map objectMap, Collection skipKeys, String prefix) { + if (!skipKeys.contains("securityCode") && objectMap.containsKey("securityCode")) { + var key = StringUtils.hasLength(prefix) ? prefix + ".tenant_code" : "tenant_code"; queryFragment.addWhere(key + " LIKE :securityCode"); - queryFragment.put("securityCode", objectMap.get(securityCodeKey)); + queryFragment.put("securityTypeCode", objectMap.get("securityCode")); } + } - String searchKey = "search"; - if (objectMap.containsKey(searchKey) && !ObjectUtils.isEmpty(objectMap.get(searchKey))) { - String textSearch = (String) objectMap.get(searchKey); - queryFragment.addColumn("TS_RANK_CD(text_search, queryTextSearch) AS rank"); + private static void processSearchKey(QueryFragment queryFragment, Map objectMap, String prefix) { + if (objectMap.containsKey("search") && !ObjectUtils.isEmpty(objectMap.get("search"))) { + var textSearch = (String) objectMap.get("search"); + var column = StringUtils.hasLength(prefix) ? prefix + ".text_search" : "text_search"; + queryFragment.addColumn("TS_RANK_CD(" + column + ", queryTextSearch) AS rank"); queryFragment.addQuery(",TO_TSQUERY('chinese',:textSearch) queryTextSearch"); - queryFragment.addWhere("text_search @@ TO_TSQUERY('chinese',:textSearch)"); + queryFragment.addWhere(column + " @@ TO_TSQUERY('chinese',:textSearch)"); queryFragment.put("textSearch", textSearch); } - return queryFragment; } - public static void applySort(QueryFragment queryFragment, Sort sort, String prefix) { sort = QueryJsonHelper.transformSortForJson(sort); for (Sort.Order order : sort) { @@ -112,7 +117,7 @@ public static void applyWhere(QueryFragment queryFragment, String prefix) { * If the object does not have a table annotation, it throws a QueryException. * * @param queryFragment The QueryFragment to which the query SQL will be applied. - * @param object The object containing the table annotation and data for the query. + * @param object The object containing the table annotation and data for the query. * @throws QueryException If the object does not have a table annotation. */ public static void applyQuerySql(QueryFragment queryFragment, Object object) { From 70770023218bec58261f168e67c57cc8637b3e6b Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 21:43:27 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`):=20Add?= =?UTF-8?q?=20support=20for=20multi-platform=20Docker=20images=20and=20upd?= =?UTF-8?q?ate=20cache=20paths.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 30d6b983..061567ca 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,7 @@ configure(subprojects - project(":boot")) { project -> tasks.named("bootBuildImage") { createdDate = "now" imageName = "${rootProject.name}-${project.name}" + imagePlatform = ["linux/amd64", "linux/arm64"] environment = [ "BPE_DELIM_JAVA_TOOL_OPTIONS" : " ", "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + @@ -36,17 +37,17 @@ configure(subprojects - project(":boot")) { project -> ] buildWorkspace { bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.work" + source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.work" } } buildCache { bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.build" + source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.build" } } launchCache { bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.launch" + source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.launch" } } } From 7fcb425e3abd7cc96b24917406c323bd62fb4266 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 21:50:58 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`=20and=20`?= =?UTF-8?q?.github/workflows/gradle-build.yml`):=20Update=20Docker=20image?= =?UTF-8?q?=20platform=20support=20and=20workflow=20configuration=20for=20?= =?UTF-8?q?ARM64.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 +- build.gradle | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index f5b61fc1..62b392b0 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -36,7 +36,7 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage + ./gradlew bootBuildImage --imagePlatform=linux-arm64 - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' diff --git a/build.gradle b/build.gradle index 061567ca..3f12b617 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,6 @@ configure(subprojects - project(":boot")) { project -> tasks.named("bootBuildImage") { createdDate = "now" imageName = "${rootProject.name}-${project.name}" - imagePlatform = ["linux/amd64", "linux/arm64"] environment = [ "BPE_DELIM_JAVA_TOOL_OPTIONS" : " ", "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + From 0d65c85c6395155857c00407575c63fcb35ed52f Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 21:56:19 +0800 Subject: [PATCH 04/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20U?= =?UTF-8?q?pdate=20Docker=20image=20platform=20support=20to=20ARM64=20in?= =?UTF-8?q?=20workflow=20configuration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 62b392b0..b5d16c24 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -36,7 +36,7 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=linux-arm64 + ./gradlew bootBuildImage --imagePlatform=linux/arm64 - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' From 205eccbc37517afcb56d9739d806b4491c8c1e97 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 21:59:36 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`):=20Updat?= =?UTF-8?q?e=20Gradle=20cache=20paths=20to=20use=20/tmp=20instead=20of=20/?= =?UTF-8?q?home/runner/work.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 3f12b617..30d6b983 100644 --- a/build.gradle +++ b/build.gradle @@ -36,17 +36,17 @@ configure(subprojects - project(":boot")) { project -> ] buildWorkspace { bind { - source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.work" + source = "/tmp/cache-${rootProject.name}-${project.name}.work" } } buildCache { bind { - source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.build" + source = "/tmp/cache-${rootProject.name}-${project.name}.build" } } launchCache { bind { - source = "/home/runner/work/plate/plate/.gradle/build/cache-${rootProject.name}-${project.name}.launch" + source = "/tmp/cache-${rootProject.name}-${project.name}.launch" } } } From 0ad4839520036aca2aa185b040d203c548fa86f3 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:03:34 +0800 Subject: [PATCH 06/26] =?UTF-8?q?=E2=9C=A8=20fix(`gradle-build.yml`):=20Re?= =?UTF-8?q?move=20redundant=20image=20platform=20argument=20from=20bootBui?= =?UTF-8?q?ldImage=20task.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index b5d16c24..f5b61fc1 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -36,7 +36,7 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=linux/arm64 + ./gradlew bootBuildImage - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' From 98029369fa152025e4162f76ed539f4a5a8b9992 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:04:35 +0800 Subject: [PATCH 07/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`):=20Remov?= =?UTF-8?q?e=20deprecated=20build=20cache=20configurations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/build.gradle b/build.gradle index 30d6b983..39097795 100644 --- a/build.gradle +++ b/build.gradle @@ -34,21 +34,6 @@ configure(subprojects - project(":boot")) { project -> "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + "-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager" ] - buildWorkspace { - bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.work" - } - } - buildCache { - bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.build" - } - } - launchCache { - bind { - source = "/tmp/cache-${rootProject.name}-${project.name}.launch" - } - } } configurations { From be1828cc8bc94bc55eea71f2845e9ae7ca28aa7f Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:20:57 +0800 Subject: [PATCH 08/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20A?= =?UTF-8?q?dd=20support=20for=20multi-platform=20builds=20in=20GitHub=20Ac?= =?UTF-8?q?tions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index f5b61fc1..b7139286 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -16,7 +16,11 @@ env: DOCKER_REGISTRY: alexbob jobs: boot-build-image: - runs-on: ubuntu-latest + name: Boot build image on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] permissions: contents: read packages: write From eee0fc7b4c59c9e6d4cbb5480e20c5a2c5d50225 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:32:51 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20E?= =?UTF-8?q?xpand=20multi-platform=20support=20in=20GitHub=20Actions=20work?= =?UTF-8?q?flow=20to=20include=20ARMv6,=20ARMv7,=20and=20ARM64.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index b7139286..86aa8c41 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -16,11 +16,14 @@ env: DOCKER_REGISTRY: alexbob jobs: boot-build-image: - name: Boot build image on ${{ matrix.os }} - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 permissions: contents: read packages: write @@ -74,6 +77,7 @@ jobs: - name: Build and Push Platform uses: docker/build-push-action@v6 with: + platforms: ${{ matrix.platform }} context: ./boot/platform push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} From f5e70435c9e501d9625d27a2e2d5e33efce8d0e9 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:37:43 +0800 Subject: [PATCH 10/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20E?= =?UTF-8?q?nhance=20multi-platform=20support=20by=20dynamically=20setting?= =?UTF-8?q?=20image=20platform=20in=20GitHub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 86aa8c41..bdd7f6d5 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -43,7 +43,7 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage + ./gradlew bootBuildImage --imagePlatform=${{ matrix.platform }} - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' @@ -101,6 +101,7 @@ jobs: - name: Build and Push Oauth2 uses: docker/build-push-action@v6 with: + platforms: ${{ matrix.platform }} context: ./boot/oauth2 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.oauth2.outputs.tags }} From b46a9c815cca49e7a806c8dd7a44b826d9e5c878 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:44:00 +0800 Subject: [PATCH 11/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20R?= =?UTF-8?q?emove=20unsupported=20Linux=20ARMv6=20and=20ARMv7=20platforms?= =?UTF-8?q?=20from=20GitHub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index bdd7f6d5..46aec7f7 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -21,8 +21,6 @@ jobs: matrix: platform: - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - linux/arm64 permissions: contents: read From b6bbd1cc516ae87e95766ed10fd6a1ad3bc31f17 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 22:51:55 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E2=9C=A8=20fix(`gradle-build.yml`):=20Re?= =?UTF-8?q?move=20unnecessary=20matrix=20strategy=20and=20image=20platform?= =?UTF-8?q?=20argument=20from=20bootBuildImage=20task.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 46aec7f7..43c2c382 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -17,11 +17,11 @@ env: jobs: boot-build-image: runs-on: ubuntu-latest - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 +# strategy: +# matrix: +# platform: +# - linux/amd64 +# - linux/arm64 permissions: contents: read packages: write @@ -41,8 +41,8 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=${{ matrix.platform }} - + ./gradlew bootBuildImage +#--imagePlatform=${{ matrix.platform }} - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@v3 @@ -75,7 +75,7 @@ jobs: - name: Build and Push Platform uses: docker/build-push-action@v6 with: - platforms: ${{ matrix.platform }} +# platforms: ${{ matrix.platform }} context: ./boot/platform push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} @@ -99,7 +99,7 @@ jobs: - name: Build and Push Oauth2 uses: docker/build-push-action@v6 with: - platforms: ${{ matrix.platform }} +# platforms: ${{ matrix.platform }} context: ./boot/oauth2 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.oauth2.outputs.tags }} From d651066b6d804948af29cd2cb59fa2a76964669a Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 23:05:58 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20I?= =?UTF-8?q?mprove=20multi-platform=20support=20by=20adding=20QEMU=20setup?= =?UTF-8?q?=20and=20updating=20Docker=20build=20actions=20for=20various=20?= =?UTF-8?q?platforms.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 43c2c382..8a7e5cb9 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -30,6 +30,12 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + + - name: Checkout repository + uses: docker/setup-qemu-action@v3 + with: + platforms: ${{ matrix.platform }} + - name: Set up graalvm 21 for x64 uses: graalvm/setup-graalvm@v1 with: @@ -41,8 +47,8 @@ jobs: - name: Execute Gradle platform bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage -#--imagePlatform=${{ matrix.platform }} + ./gradlew bootBuildImage --imagePlatform=${{ matrix.platform }} + - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@v3 @@ -75,7 +81,7 @@ jobs: - name: Build and Push Platform uses: docker/build-push-action@v6 with: -# platforms: ${{ matrix.platform }} + platforms: ${{ matrix.platform }} context: ./boot/platform push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} @@ -99,7 +105,7 @@ jobs: - name: Build and Push Oauth2 uses: docker/build-push-action@v6 with: -# platforms: ${{ matrix.platform }} + platforms: ${{ matrix.platform }} context: ./boot/oauth2 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.oauth2.outputs.tags }} From baaba99d041f136b8b8426e6ac2fd96436ecff1e Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 23:07:26 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20R?= =?UTF-8?q?estore=20and=20update=20multi-platform=20matrix=20strategy=20fo?= =?UTF-8?q?r=20GitHub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 8a7e5cb9..fe9ebbcd 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -17,11 +17,11 @@ env: jobs: boot-build-image: runs-on: ubuntu-latest -# strategy: -# matrix: -# platform: -# - linux/amd64 -# - linux/arm64 + strategy: + matrix: + platform: + - linux/amd64 + - linux/arm64 permissions: contents: read packages: write From 46780fd221afbc3f43aa2c0dc3d2b15603c5ebbb Mon Sep 17 00:00:00 2001 From: AlexBob Date: Mon, 16 Dec 2024 23:08:56 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20U?= =?UTF-8?q?pdate=20GitHub=20Actions=20workflow=20to=20set=20up=20QEMU=20fo?= =?UTF-8?q?r=20enhanced=20multi-platform=20support.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index fe9ebbcd..5d256625 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -31,7 +31,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Checkout repository + - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: platforms: ${{ matrix.platform }} From c0ea33863117d3b921c889f8cba31cdd8fff0e59 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 00:00:16 +0800 Subject: [PATCH 16/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20E?= =?UTF-8?q?nhance=20multi-platform=20support=20by=20adding=20Docker=20Buil?= =?UTF-8?q?dx=20setup=20for=20GitHub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 5d256625..b6f83f8a 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -35,6 +35,8 @@ jobs: uses: docker/setup-qemu-action@v3 with: platforms: ${{ matrix.platform }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Set up graalvm 21 for x64 uses: graalvm/setup-graalvm@v1 From a8feffbe64512306500470923094d8220e3bdb42 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 00:26:06 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20U?= =?UTF-8?q?pdate=20Docker=20build=20actions=20to=20explicitly=20specify=20?= =?UTF-8?q?supported=20platforms=20(linux/amd64,=20linux/arm64)=20in=20Git?= =?UTF-8?q?Hub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index b6f83f8a..8ab4e8cc 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -83,7 +83,7 @@ jobs: - name: Build and Push Platform uses: docker/build-push-action@v6 with: - platforms: ${{ matrix.platform }} + platforms: linux/amd64,linux/arm64 context: ./boot/platform push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} @@ -107,7 +107,7 @@ jobs: - name: Build and Push Oauth2 uses: docker/build-push-action@v6 with: - platforms: ${{ matrix.platform }} + platforms: linux/amd64,linux/arm64 context: ./boot/oauth2 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.oauth2.outputs.tags }} From 0aff97be5d13859d13973cd3a1c52beb6a96258d Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 00:26:37 +0800 Subject: [PATCH 18/26] =?UTF-8?q?=E2=9C=A8=20chore(`gradle-build.yml`):=20?= =?UTF-8?q?Simplify=20QEMU=20setup=20by=20removing=20explicit=20platform?= =?UTF-8?q?=20specification=20in=20GitHub=20Actions=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 8ab4e8cc..5b3c5c5c 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -33,8 +33,6 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3 - with: - platforms: ${{ matrix.platform }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From 110aa3519686576abf4058d365f896f22f58951c Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 00:40:00 +0800 Subject: [PATCH 19/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20R?= =?UTF-8?q?efactor=20multi-platform=20support=20by=20consolidating=20QEMU?= =?UTF-8?q?=20and=20Docker=20Buildx=20setup=20in=20GitHub=20Actions=20work?= =?UTF-8?q?flow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 5b3c5c5c..88648013 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -17,11 +17,6 @@ env: jobs: boot-build-image: runs-on: ubuntu-latest - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 permissions: contents: read packages: write @@ -31,11 +26,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Set up graalvm 21 for x64 uses: graalvm/setup-graalvm@v1 with: @@ -44,11 +34,22 @@ jobs: distribution: 'liberica' native-image-job-reports: 'true' cache: 'gradle' - - name: Execute Gradle platform bootBuildImage + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: linux/amd64,linux/arm64 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Execute Gradle amd64 bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=${{ matrix.platform }} + ./gradlew bootBuildImage --imagePlatform=linux/amd64 + ./gradlew bootBuildImage --imagePlatform=linux/arm64 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@v3 From d81bf30b0343771f76ffcaf6dd94a77b2e0231b7 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 00:41:54 +0800 Subject: [PATCH 20/26] =?UTF-8?q?=E2=9C=A8=20feat(`gradle-build.yml`):=20U?= =?UTF-8?q?pdate=20Docker=20registry=20and=20task=20name=20for=20multi-pla?= =?UTF-8?q?tform=20build.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 88648013..4381043a 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -13,7 +13,7 @@ on: types: [ created ] env: GITHUB_REGISTRY: ghcr.io/${{ github.actor }} - DOCKER_REGISTRY: alexbob + DOCKER_REGISTRY: docker.io/alexbob jobs: boot-build-image: runs-on: ubuntu-latest @@ -42,7 +42,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Execute Gradle amd64 bootBuildImage + - name: Execute Gradle Plate bootBuildImage run: | chmod +x ./gradlew ./gradlew bootBuildImage --imagePlatform=linux/amd64 From 8453e9f9ea70fbe9b7e61241e23fcac850924d55 Mon Sep 17 00:00:00 2001 From: "Alex.Bob" Date: Tue, 17 Dec 2024 01:00:37 +0800 Subject: [PATCH 21/26] Update gradle-build.yml remove buildx,format code --- .github/workflows/gradle-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 4381043a..64b64991 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -48,8 +48,6 @@ jobs: ./gradlew bootBuildImage --imagePlatform=linux/amd64 ./gradlew bootBuildImage --imagePlatform=linux/arm64 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@v3 From b72261e55427928fbea728a2c7f8a9f4d614320e Mon Sep 17 00:00:00 2001 From: "Alex.Bob" Date: Tue, 17 Dec 2024 01:19:14 +0800 Subject: [PATCH 22/26] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20gradle-build.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 64b64991..fca17972 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -34,11 +34,10 @@ jobs: distribution: 'liberica' native-image-job-reports: 'true' cache: 'gradle' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - platforms: linux/amd64,linux/arm64 +# - name: Set up QEMU +# uses: docker/setup-qemu-action@v3 +# with: +# platforms: linux/amd64,linux/arm64 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From 07d42e01fe5551489a354e73f6b17c048241b58d Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 09:15:35 +0800 Subject: [PATCH 23/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`,=20`Docke?= =?UTF-8?q?rfile`,=20`gradle-build.yml`):=20Update=20Docker=20image=20name?= =?UTF-8?q?s=20and=20registry=20for=20local=20deployment.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 23 +++++++++++++++++------ boot/oauth2/Dockerfile | 2 +- boot/platform/Dockerfile | 2 +- build.gradle | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index fca17972..c30fccda 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -17,6 +17,11 @@ env: jobs: boot-build-image: runs-on: ubuntu-latest + services: + registry: + image: registry:2 + ports: + - 5000:5000 permissions: contents: read packages: write @@ -34,18 +39,24 @@ jobs: distribution: 'liberica' native-image-job-reports: 'true' cache: 'gradle' -# - name: Set up QEMU -# uses: docker/setup-qemu-action@v3 -# with: -# platforms: linux/amd64,linux/arm64 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: linux/amd64,linux/arm64 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + with: + driver-opts: network=host - name: Execute Gradle Plate bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=linux/amd64 - ./gradlew bootBuildImage --imagePlatform=linux/arm64 + ./gradlew bootBuildImage --imagePlatform=linux/amd64 --network=host --publishImage=true + ./gradlew bootBuildImage --imagePlatform=linux/arm64 --network=host --publishImage=true + - name: Inspect + run: | + docker buildx imagetools inspect localhost:5000/plate-oauth2:latest + docker buildx imagetools inspect localhost:5000/plate-platform:latest - name: Log into registry ${{ env.GITHUB_REGISTRY }} if: github.event_name != 'pull_request' diff --git a/boot/oauth2/Dockerfile b/boot/oauth2/Dockerfile index b1175412..d358147b 100644 --- a/boot/oauth2/Dockerfile +++ b/boot/oauth2/Dockerfile @@ -1,4 +1,4 @@ -FROM plate-oauth2 +FROM localhost:5000/plate-oauth2:latest LABEL org.opencontainers.image.source=https://github.com/vnobo/plate LABEL org.opencontainers.image.description="Plate oauth2 container image" diff --git a/boot/platform/Dockerfile b/boot/platform/Dockerfile index 7d4f7112..bee6c874 100644 --- a/boot/platform/Dockerfile +++ b/boot/platform/Dockerfile @@ -1,4 +1,4 @@ -FROM plate-platform +FROM localhost:5000/plate-platform:latest LABEL org.opencontainers.image.source=https://github.com/vnobo/plate LABEL org.opencontainers.image.description="Plate platform container image" diff --git a/build.gradle b/build.gradle index 39097795..5005ad70 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ configure(subprojects - project(":boot")) { project -> tasks.named("bootBuildImage") { createdDate = "now" - imageName = "${rootProject.name}-${project.name}" + imageName = "-localhost:5000/${rootProject.name}-${project.name}:latest" environment = [ "BPE_DELIM_JAVA_TOOL_OPTIONS" : " ", "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + From b44290b0643112eb6a48e8f63160288abd98a50f Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 09:28:53 +0800 Subject: [PATCH 24/26] =?UTF-8?q?=E2=9C=A8=20chore(`gradle-build.yml`):=20?= =?UTF-8?q?Modify=20`publishImage`=20flag=20for=20multi-platform=20Docker?= =?UTF-8?q?=20builds.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index c30fccda..e70ec25b 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -51,8 +51,8 @@ jobs: - name: Execute Gradle Plate bootBuildImage run: | chmod +x ./gradlew - ./gradlew bootBuildImage --imagePlatform=linux/amd64 --network=host --publishImage=true - ./gradlew bootBuildImage --imagePlatform=linux/arm64 --network=host --publishImage=true + ./gradlew bootBuildImage --imagePlatform=linux/amd64 --network=host --publishImage + ./gradlew bootBuildImage --imagePlatform=linux/arm64 --network=host --publishImage - name: Inspect run: | docker buildx imagetools inspect localhost:5000/plate-oauth2:latest From c783fddae96be7b1ea89fc44c7000dc56361a5d9 Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 09:29:46 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E2=9C=A8=20fix(`build.gradle`):=20Correc?= =?UTF-8?q?t=20Docker=20image=20name=20format=20for=20local=20deployment.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5005ad70..48d6c30f 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ configure(subprojects - project(":boot")) { project -> tasks.named("bootBuildImage") { createdDate = "now" - imageName = "-localhost:5000/${rootProject.name}-${project.name}:latest" + imageName = "localhost:5000/${rootProject.name}-${project.name}:latest" environment = [ "BPE_DELIM_JAVA_TOOL_OPTIONS" : " ", "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + From 9af253ee9caa000be834ead6b414e8d6d1f0655b Mon Sep 17 00:00:00 2001 From: AlexBob Date: Tue, 17 Dec 2024 09:50:57 +0800 Subject: [PATCH 26/26] =?UTF-8?q?=E2=9C=A8=20feat(`build.gradle`):=20Add?= =?UTF-8?q?=20buildWorkspace,=20buildCache,=20and=20launchCache=20configur?= =?UTF-8?q?ations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/build.gradle b/build.gradle index 48d6c30f..b988cfbb 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,21 @@ configure(subprojects - project(":boot")) { project -> "BPE_APPEND_JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8 " + "-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager" ] + buildWorkspace { + bind { + source = "/tmp/cache-${rootProject.name}-${project.name}.work" + } + } + buildCache { + bind { + source = "/tmp/cache-${rootProject.name}-${project.name}.build" + } + } + launchCache { + bind { + source = "/tmp/cache-${rootProject.name}-${project.name}.launch" + } + } } configurations {