kou commented on code in PR #1284:
URL: https://github.com/apache/arrow-java/pull/1284#discussion_r4127295246


##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5

Review Comment:
   ```suggestion
           uses: actions/upload-artifact@v7
   ```



##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5
+        with:
+          name: java-build
+          path: java-build.tgz
+          retention-days: 1
+      - name: Exclude reactor artifacts from Maven dependency cache
+        run: rm -rf .docker/maven-cache/repository/org/apache/arrow
 
-  macos:
-    name: ${{ matrix.arch }} macOS ${{ matrix.macos }} Java JDK ${{ matrix.jdk 
}}
-    runs-on: macos-${{ matrix.macos }}
+  test-java:
+    name: ${{ matrix.name || format('AMD64 Ubuntu JDK {0} Maven 3.9.16', 
matrix.jdk) }}
+    needs: build-java
+    runs-on: ${{ matrix.os }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 30
     strategy:
       fail-fast: false
       matrix:
+        jdk: [17, 21, 25]
+        os: [ubuntu-latest]
         include:
           - arch: AArch64
             jdk: 17
-            macos: latest

Review Comment:
   It seems that we need `os: macos-XXX` here.



##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5
+        with:
+          name: java-build
+          path: java-build.tgz
+          retention-days: 1
+      - name: Exclude reactor artifacts from Maven dependency cache
+        run: rm -rf .docker/maven-cache/repository/org/apache/arrow
 
-  macos:
-    name: ${{ matrix.arch }} macOS ${{ matrix.macos }} Java JDK ${{ matrix.jdk 
}}
-    runs-on: macos-${{ matrix.macos }}
+  test-java:
+    name: ${{ matrix.name || format('AMD64 Ubuntu JDK {0} Maven 3.9.16', 
matrix.jdk) }}
+    needs: build-java
+    runs-on: ${{ matrix.os }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 30
     strategy:
       fail-fast: false
       matrix:
+        jdk: [17, 21, 25]
+        os: [ubuntu-latest]
         include:
           - arch: AArch64
             jdk: 17
-            macos: latest
+          - name: AMD64 Windows Server 2022 Java JDK 17
+            os: windows-latest
+            jdk: 17
+    env:
+      JDK: ${{ matrix.jdk }}
     steps:
       - name: Checkout Arrow
         uses: actions/checkout@v7
         with:
-          fetch-depth: 0
           submodules: recursive
       - name: Set up Java
+        if: ${{ !matrix.compose_service }}

Review Comment:
   It seems that `compose_service` isn't defined.



##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5
+        with:
+          name: java-build
+          path: java-build.tgz
+          retention-days: 1
+      - name: Exclude reactor artifacts from Maven dependency cache
+        run: rm -rf .docker/maven-cache/repository/org/apache/arrow

Review Comment:
   Why do we need to remove them? We can't use them to avoid rebuilding Arrow 
Java, right?



##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5
+        with:
+          name: java-build
+          path: java-build.tgz
+          retention-days: 1
+      - name: Exclude reactor artifacts from Maven dependency cache
+        run: rm -rf .docker/maven-cache/repository/org/apache/arrow
 
-  macos:
-    name: ${{ matrix.arch }} macOS ${{ matrix.macos }} Java JDK ${{ matrix.jdk 
}}
-    runs-on: macos-${{ matrix.macos }}
+  test-java:
+    name: ${{ matrix.name || format('AMD64 Ubuntu JDK {0} Maven 3.9.16', 
matrix.jdk) }}
+    needs: build-java
+    runs-on: ${{ matrix.os }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 30
     strategy:
       fail-fast: false
       matrix:
+        jdk: [17, 21, 25]
+        os: [ubuntu-latest]
         include:
           - arch: AArch64
             jdk: 17
-            macos: latest
+          - name: AMD64 Windows Server 2022 Java JDK 17
+            os: windows-latest
+            jdk: 17
+    env:
+      JDK: ${{ matrix.jdk }}
     steps:
       - name: Checkout Arrow
         uses: actions/checkout@v7
         with:
-          fetch-depth: 0
           submodules: recursive
       - name: Set up Java
+        if: ${{ !matrix.compose_service }}
         uses: actions/setup-java@v6
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.jdk }}
           cache: 'maven'
-      - name: Build
+      - name: Cache Docker Volumes
+        if: ${{ matrix.compose_service }}
+        uses: actions/cache@v6
+        with:
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Download reusable artifacts
+        uses: actions/download-artifact@v6

Review Comment:
   ```suggestion
           uses: actions/download-artifact@v8
   ```



##########
.github/workflows/test.yml:
##########
@@ -65,82 +53,197 @@ jobs:
       - name: Cache Docker Volumes
         uses: actions/cache@v6
         with:
-          path: .docker
-          key: maven-${{ matrix.jdk }}-${{ matrix.maven }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
-          restore-keys: maven-${{ matrix.jdk }}-${{ matrix.maven }}-
-      - name: Execute Docker Build
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-
+      - name: Build without tests
         env:
-          # Enables build caching, but not strictly required
           DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+          JDK: ${{ env.BUILD_JDK }}
         run: |
           docker compose run \
+            --rm \
             -e CI=true \
             -e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
-            ${{ matrix.image }}
+            ubuntu-artifacts
+          sudo chown -R "$(id -u):$(id -g)" .docker
+      - name: Pack reusable artifacts
+        run: |
+          tar -czf java-build.tgz \
+            .docker/java-build \
+            .docker/maven-cache/repository/org/apache/arrow
+      - name: Upload reusable artifacts
+        uses: actions/upload-artifact@v5
+        with:
+          name: java-build
+          path: java-build.tgz
+          retention-days: 1
+      - name: Exclude reactor artifacts from Maven dependency cache
+        run: rm -rf .docker/maven-cache/repository/org/apache/arrow
 
-  macos:
-    name: ${{ matrix.arch }} macOS ${{ matrix.macos }} Java JDK ${{ matrix.jdk 
}}
-    runs-on: macos-${{ matrix.macos }}
+  test-java:
+    name: ${{ matrix.name || format('AMD64 Ubuntu JDK {0} Maven 3.9.16', 
matrix.jdk) }}
+    needs: build-java
+    runs-on: ${{ matrix.os }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 30
     strategy:
       fail-fast: false
       matrix:
+        jdk: [17, 21, 25]
+        os: [ubuntu-latest]
         include:
           - arch: AArch64
             jdk: 17
-            macos: latest
+          - name: AMD64 Windows Server 2022 Java JDK 17
+            os: windows-latest
+            jdk: 17
+    env:
+      JDK: ${{ matrix.jdk }}
     steps:
       - name: Checkout Arrow
         uses: actions/checkout@v7
         with:
-          fetch-depth: 0
           submodules: recursive
       - name: Set up Java
+        if: ${{ !matrix.compose_service }}
         uses: actions/setup-java@v6
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.jdk }}
           cache: 'maven'
-      - name: Build
+      - name: Cache Docker Volumes
+        if: ${{ matrix.compose_service }}
+        uses: actions/cache@v6
+        with:
+          path: .docker/maven-cache
+          key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ 
hashFiles('compose.yaml', '**/pom.xml') }}
+          restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-

Review Comment:
   Why doe we need this?
   `download-artifact` isn't enough?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to