This is an automated email from the ASF dual-hosted git repository.

nielsbasjes pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/main by this push:
     new e3a4be113 Separate the flaky ARM builds to better see what failed.
e3a4be113 is described below

commit e3a4be1139c3e8d8052282baa2704357c385e1bf
Author: Niels Basjes <[email protected]>
AuthorDate: Thu Feb 1 16:04:57 2024 +0100

    Separate the flaky ARM builds to better see what failed.
---
 .../{test-lang-c++.yml => test-lang-c++-ARM.yml}   | 25 +------
 .github/workflows/test-lang-c++.yml                | 18 -----
 .../{test-lang-c++.yml => test-lang-c-ARM.yml}     | 35 ++--------
 .github/workflows/test-lang-c.yml                  | 18 -----
 ...st-lang-csharp.yml => test-lang-csharp-ARM.yml} |  2 +-
 .github/workflows/test-lang-csharp.yml             | 34 ----------
 .github/workflows/test-lang-java-ARM.yml           | 79 ++++++++++++++++++++++
 .github/workflows/test-lang-java.yml               | 44 ------------
 .../{test-lang-c++.yml => test-lang-js-ARM.yml}    | 48 ++++++-------
 .github/workflows/test-lang-js.yml                 | 31 ---------
 .../{test-lang-perl.yml => test-lang-perl-ARM.yml} | 26 +------
 .github/workflows/test-lang-perl.yml               | 24 -------
 .../{test-lang-c++.yml => test-lang-php-ARM.yml}   | 41 ++++-------
 .github/workflows/test-lang-php.yml                | 24 -------
 .../{test-lang-c++.yml => test-lang-py-ARM.yml}    | 36 ++--------
 .github/workflows/test-lang-py.yml                 | 19 ------
 .../{test-lang-c++.yml => test-lang-ruby-ARM.yml}  | 47 +++++--------
 .github/workflows/test-lang-ruby.yml               | 26 -------
 .github/workflows/test-lang-rust-ci-ARM.yml        | 79 ++++++++++++++++++++++
 .github/workflows/test-lang-rust-ci.yml            | 36 ----------
 README.md                                          | 37 ++++++++++
 21 files changed, 258 insertions(+), 471 deletions(-)

diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-c++-ARM.yml
similarity index 73%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-c++-ARM.yml
index fa07b8c76..d27b6a5c5 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-c++-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test C++ on ARM'
 on:
   workflow_dispatch:
   push:
@@ -33,29 +33,6 @@ concurrency:
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
     name: C++ on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-c++.yml
index fa07b8c76..5747a0da3 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-c++.yml
@@ -55,21 +55,3 @@ jobs:
           mkdir -p build
           cd build
           cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
-  arm64:
-    name: C++ on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-c-ARM.yml
similarity index 63%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-c-ARM.yml
index fa07b8c76..ffb31be2b 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-c-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test C on ARM'
 on:
   workflow_dispatch:
   push:
@@ -21,43 +21,20 @@ on:
   pull_request:
     branches: [ main ]
     paths:
-    - '.github/workflows/test-lang-c\+\+.yml'
-    - 'lang/c\+\+/**'
+    - .github/workflows/test-lang-c.yml
+    - lang/c/**
 
 defaults:
   run:
-    working-directory: lang/c++
+    working-directory: lang/c
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
-    name: C++ on Linux ARM64
+    name: C on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
 
     steps:
@@ -67,7 +44,7 @@ jobs:
       - name: Install dependencies
         run: |
           sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
+          sudo apt-get install -q -y cmake liblzma-dev libsnappy-dev 
libjansson-dev zlib1g-dev pkg-config
 
       - name: Build
         run: |
diff --git a/.github/workflows/test-lang-c.yml 
b/.github/workflows/test-lang-c.yml
index 52fd902c0..a01e8b8eb 100644
--- a/.github/workflows/test-lang-c.yml
+++ b/.github/workflows/test-lang-c.yml
@@ -149,21 +149,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh interop-data-test
-
-  arm64:
-    name: C on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y cmake liblzma-dev libsnappy-dev 
libjansson-dev zlib1g-dev pkg-config
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-csharp.yml 
b/.github/workflows/test-lang-csharp-ARM.yml
similarity index 99%
copy from .github/workflows/test-lang-csharp.yml
copy to .github/workflows/test-lang-csharp-ARM.yml
index b84607228..24edfb503 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: 'Test C#'
+name: 'Test C# on ARM'
 on:
   workflow_dispatch:
   push:
diff --git a/.github/workflows/test-lang-csharp.yml 
b/.github/workflows/test-lang-csharp.yml
index b84607228..e4c9f6796 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp.yml
@@ -124,37 +124,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh interop-data-test
-
-  arm64:
-    name: C# on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Cache Nuget
-        uses: actions/cache@v4
-        with:
-          path: ~/.nuget/packages
-          key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
-          restore-keys: |
-            ${{ runner.os }}-nuget-
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y wget libzstd-dev libicu-dev
-          wget https://dot.net/v1/dotnet-install.sh
-          bash ./dotnet-install.sh --channel "3.1" --install-dir 
"$HOME/.dotnet" # 3.1
-          bash ./dotnet-install.sh --channel "5.0" --install-dir 
"$HOME/.dotnet" # 5.0
-          bash ./dotnet-install.sh --channel "6.0" --install-dir 
"$HOME/.dotnet" # 6.0
-          bash ./dotnet-install.sh --channel "7.0" --install-dir 
"$HOME/.dotnet" # 7.0
-          bash ./dotnet-install.sh --channel "8.0" --install-dir 
"$HOME/.dotnet" # 8.0
-          
-      - name: Build
-        run: |
-          set -x
-          export PATH=$HOME/.dotnet:$PATH
-          dotnet --list-sdks
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-java-ARM.yml 
b/.github/workflows/test-lang-java-ARM.yml
new file mode 100644
index 000000000..217eb4dbe
--- /dev/null
+++ b/.github/workflows/test-lang-java-ARM.yml
@@ -0,0 +1,79 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: 'Test Java on ARM'
+on:
+  workflow_dispatch:
+  push:
+    branches: [ main ]
+  pull_request:
+    branches: [ main ]
+    paths:
+    - .github/workflows/test-lang-java.yml
+    - lang/java/**
+    - pom.xml
+
+defaults:
+  run:
+    working-directory: lang/java
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  arm64:
+    name: Java on Linux ARM64
+    runs-on: ["self-hosted", "asf-arm"]
+
+    steps:
+      - name: 'Checkout sourcecode'
+        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # 
v4.1.1
+
+      - name: 'Setup Temurin JDK 8, 11, 17 & 21'
+        uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # 
v4.0.0
+        with:
+          distribution: 'temurin'
+          java-version: |
+            8
+            11
+            17
+            21
+
+      - name: 'Cache Local Maven Repository'
+        uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+
+      - name: 'Setup Maven 3.9.6'
+        uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f # 
v4.5
+        with:
+          maven-version: 3.9.6
+
+      - name: Build
+        run: ./build.sh clean test
+#          set -x
+#          export MAVEN_VERSION="3.9.6"
+#          wget 
https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz
+#          tar zxvf apache-maven-$MAVEN_VERSION-bin.tar.gz
+#          export M2_HOME=$PWD/apache-maven-$MAVEN_VERSION
+#          export PATH="$M2_HOME/bin:$PATH"
+#          java -version
+#          mvn -version
+#          
#MAVEN_OPTS="-Dsurefire.excludes=*TestCustomCodec*,*TestAllCodecs*,*TestNettyServer*"
 ./build.sh clean test
+#          ./build.sh clean test
diff --git a/.github/workflows/test-lang-java.yml 
b/.github/workflows/test-lang-java.yml
index 2fb096408..b818dad91 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -156,47 +156,3 @@ jobs:
       - name: 'Run Interop Tests using Java 8, 11, 17 & 21'
         working-directory: lang/java/interop-data-test
         run: mvn -B verify -Pcheck-test-data
-
-  arm64:
-    name: Java on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: 'Checkout sourcecode'
-        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # 
v4.1.1
-
-      - name: 'Setup Temurin JDK 8, 11, 17 & 21'
-        uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # 
v4.0.0
-        with:
-          distribution: 'temurin'
-          java-version: |
-            8
-            11
-            17
-            21
-
-      - name: 'Cache Local Maven Repository'
-        uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-
-      - name: 'Setup Maven 3.9.6'
-        uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f # 
v4.5
-        with:
-          maven-version: 3.9.6
-
-      - name: Build
-        run: ./build.sh clean test
-#          set -x
-#          export MAVEN_VERSION="3.9.6"
-#          wget 
https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz
-#          tar zxvf apache-maven-$MAVEN_VERSION-bin.tar.gz
-#          export M2_HOME=$PWD/apache-maven-$MAVEN_VERSION
-#          export PATH="$M2_HOME/bin:$PATH"
-#          java -version
-#          mvn -version
-#          
#MAVEN_OPTS="-Dsurefire.excludes=*TestCustomCodec*,*TestAllCodecs*,*TestNettyServer*"
 ./build.sh clean test
-#          ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-js-ARM.yml
similarity index 63%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-js-ARM.yml
index fa07b8c76..54e1216ea 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-js-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test JavaScript on ARM'
 on:
   workflow_dispatch:
   push:
@@ -21,53 +21,43 @@ on:
   pull_request:
     branches: [ main ]
     paths:
-    - '.github/workflows/test-lang-c\+\+.yml'
-    - 'lang/c\+\+/**'
+    - .github/workflows/test-lang-js.yml
+    - lang/js/**
 
 defaults:
   run:
-    working-directory: lang/c++
+    working-directory: lang/js
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
-    name: C++ on Linux ARM64
+    name: JavaScript on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
 
     steps:
       - name: Checkout
         uses: actions/checkout@v4
 
+      - name: Cache Npm
+        uses: actions/cache@v4
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Setup Node
+        uses: actions/setup-node@v4
+        with:
+          node-version: 18
+
       - name: Install dependencies
         run: |
           sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
+          sudo apt-get install -q -y wget tar xz-utils
 
       - name: Build
         run: |
diff --git a/.github/workflows/test-lang-js.yml 
b/.github/workflows/test-lang-js.yml
index acb96369a..20f2cc09f 100644
--- a/.github/workflows/test-lang-js.yml
+++ b/.github/workflows/test-lang-js.yml
@@ -112,34 +112,3 @@ jobs:
 
       - name: Run Interop Tests
         run: npm install && ./build.sh interop-data-test
-
-  arm64:
-    name: JavaScript on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Cache Npm
-        uses: actions/cache@v4
-        with:
-          path: ~/.npm
-          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
-          restore-keys: |
-            ${{ runner.os }}-node-
-
-      - name: Setup Node
-        uses: actions/setup-node@v4
-        with:
-          node-version: 18
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y wget tar xz-utils
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
\ No newline at end of file
diff --git a/.github/workflows/test-lang-perl.yml 
b/.github/workflows/test-lang-perl-ARM.yml
similarity index 88%
copy from .github/workflows/test-lang-perl.yml
copy to .github/workflows/test-lang-perl-ARM.yml
index 58627a7f3..bd28857cd 100644
--- a/.github/workflows/test-lang-perl.yml
+++ b/.github/workflows/test-lang-perl-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: 'Test Perl'
+name: 'Test Perl on ARM'
 on:
   workflow_dispatch:
   push:
@@ -155,27 +155,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh interop-data-test
-
-  arm64:
-    name: Perl on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y libjansson-dev libcompress-raw-zlib-perl 
libcpan-uploader-perl libencode-perl libio-string-perl libjson-xs-perl 
libmodule-install-perl libmodule-install-readmefrompod-perl libobject-tiny-perl 
libperl-critic-perl libsnappy-dev libtest-exception-perl libtest-pod-perl 
cpanminus make gcc wget
-          cpanm Error::Simple
-          cpanm Regexp::Common
-          cpanm Try::Tiny
-          cpanm Compress::Zstd
-          cpanm Module::Install::Repository
-          cpanm inc::Module::Install
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-perl.yml 
b/.github/workflows/test-lang-perl.yml
index 58627a7f3..cc4f6ab13 100644
--- a/.github/workflows/test-lang-perl.yml
+++ b/.github/workflows/test-lang-perl.yml
@@ -155,27 +155,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh interop-data-test
-
-  arm64:
-    name: Perl on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y libjansson-dev libcompress-raw-zlib-perl 
libcpan-uploader-perl libencode-perl libio-string-perl libjson-xs-perl 
libmodule-install-perl libmodule-install-readmefrompod-perl libobject-tiny-perl 
libperl-critic-perl libsnappy-dev libtest-exception-perl libtest-pod-perl 
cpanminus make gcc wget
-          cpanm Error::Simple
-          cpanm Regexp::Common
-          cpanm Try::Tiny
-          cpanm Compress::Zstd
-          cpanm Module::Install::Repository
-          cpanm inc::Module::Install
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-php-ARM.yml
similarity index 62%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-php-ARM.yml
index fa07b8c76..85c2aa349 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-php-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test PHP on ARM'
 on:
   workflow_dispatch:
   push:
@@ -21,43 +21,20 @@ on:
   pull_request:
     branches: [ main ]
     paths:
-    - '.github/workflows/test-lang-c\+\+.yml'
-    - 'lang/c\+\+/**'
+    - .github/workflows/test-lang-php.yml
+    - lang/php/**
 
 defaults:
   run:
-    working-directory: lang/c++
+    working-directory: lang/php
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
-    name: C++ on Linux ARM64
+    name: PHP on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
 
     steps:
@@ -67,9 +44,15 @@ jobs:
       - name: Install dependencies
         run: |
           sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
+          sudo apt-get install -q -y wget php php-xml php-mbstring php-curl 
php-gmp php-bz2 unzip libtidy-dev libpq5
+          php -r "copy('https://getcomposer.org/installer', 
'composer-setup.php');"
+          php -r "if (hash_file('sha384', 'composer-setup.php') === 
file_get_contents('https://composer.github.io/installer.sig')) { echo 
'Installer verified'; } else { echo 'Installer corrupt'; 
unlink('composer-setup.php'); } echo PHP_EOL;"
+          php composer-setup.php --version=2.2.5
+          php -r "unlink('composer-setup.php');"
+          sudo mv composer.phar /usr/local/bin/composer
 
       - name: Build
         run: |
           set -x
+          composer --version
           ./build.sh clean test
diff --git a/.github/workflows/test-lang-php.yml 
b/.github/workflows/test-lang-php.yml
index 6255a7f34..c6729e90a 100644
--- a/.github/workflows/test-lang-php.yml
+++ b/.github/workflows/test-lang-php.yml
@@ -162,27 +162,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh test-interop
-
-  arm64:
-    name: PHP on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y wget php php-xml php-mbstring php-curl 
php-gmp php-bz2 unzip libtidy-dev libpq5
-          php -r "copy('https://getcomposer.org/installer', 
'composer-setup.php');"
-          php -r "if (hash_file('sha384', 'composer-setup.php') === 
file_get_contents('https://composer.github.io/installer.sig')) { echo 
'Installer verified'; } else { echo 'Installer corrupt'; 
unlink('composer-setup.php'); } echo PHP_EOL;"
-          php composer-setup.php --version=2.2.5
-          php -r "unlink('composer-setup.php');"
-          sudo mv composer.phar /usr/local/bin/composer
-
-      - name: Build
-        run: |
-          set -x
-          composer --version
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-py-ARM.yml
similarity index 63%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-py-ARM.yml
index fa07b8c76..874c7c35f 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-py-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test Python on ARM'
 on:
   workflow_dispatch:
   push:
@@ -21,43 +21,20 @@ on:
   pull_request:
     branches: [ main ]
     paths:
-    - '.github/workflows/test-lang-c\+\+.yml'
-    - 'lang/c\+\+/**'
+    - .github/workflows/test-lang-py.yml
+    - lang/py/**
 
 defaults:
   run:
-    working-directory: lang/c++
+    working-directory: lang/py
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
-    name: C++ on Linux ARM64
+    name: Python on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
 
     steps:
@@ -67,7 +44,8 @@ jobs:
       - name: Install dependencies
         run: |
           sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
+          sudo apt-get install -q -y python3 python3-dev python3-pip git 
libbz2-dev libjansson-dev liblzma-dev libsnappy-dev libzstd-dev
+          python3 -m pip install --upgrade pip setuptools tox
 
       - name: Build
         run: |
diff --git a/.github/workflows/test-lang-py.yml 
b/.github/workflows/test-lang-py.yml
index 3a2c161e6..8082cd965 100644
--- a/.github/workflows/test-lang-py.yml
+++ b/.github/workflows/test-lang-py.yml
@@ -159,22 +159,3 @@ jobs:
 
       - name: Run Interop Tests
         run: ./build.sh interop-data-test
-
-  arm64:
-    name: Python on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y python3 python3-dev python3-pip git 
libbz2-dev libjansson-dev liblzma-dev libsnappy-dev libzstd-dev
-          python3 -m pip install --upgrade pip setuptools tox
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml 
b/.github/workflows/test-lang-ruby-ARM.yml
similarity index 61%
copy from .github/workflows/test-lang-c++.yml
copy to .github/workflows/test-lang-ruby-ARM.yml
index fa07b8c76..c1ce73878 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-ruby-ARM.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: Test C++
+name: 'Test Ruby on ARM'
 on:
   workflow_dispatch:
   push:
@@ -21,55 +21,40 @@ on:
   pull_request:
     branches: [ main ]
     paths:
-    - '.github/workflows/test-lang-c\+\+.yml'
-    - 'lang/c\+\+/**'
+    - .github/workflows/test-lang-ruby.yml
+    - lang/ruby/**
 
 defaults:
   run:
-    working-directory: lang/c++
+    working-directory: lang/ruby
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Install Dependencies
-        run: sudo apt update && sudo apt-get install -qqy cppcheck 
libboost-all-dev libsnappy-dev cmake
-
-      - name: Clean
-        run: ./build.sh clean
-
-      - name: Lint
-        run: ./build.sh lint
-
-      - name: Test
-        run: ./build.sh test
-
-      - name: Release build
-        run: |
-          mkdir -p build
-          cd build
-          cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release ..
-
   arm64:
-    name: C++ on Linux ARM64
+    name: Ruby on Linux ARM64
     runs-on: ["self-hosted", "asf-arm"]
 
     steps:
       - name: Checkout
         uses: actions/checkout@v4
 
+      - name: Cache gems
+        uses: actions/cache@v4
+        with:
+          path: .gem
+          key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-gems-
+
       - name: Install dependencies
         run: |
           sudo apt-get update -q
-          sudo apt-get install -q -y gcc g++ libboost-all-dev cmake
+          sudo apt-get install -q -y ruby-dev bundler libsnappy-dev libyaml-dev
 
       - name: Build
         run: |
-          set -x
-          ./build.sh clean test
+            set -x
+            ./build.sh clean test
diff --git a/.github/workflows/test-lang-ruby.yml 
b/.github/workflows/test-lang-ruby.yml
index 5c5f5fa60..2a73c5db8 100644
--- a/.github/workflows/test-lang-ruby.yml
+++ b/.github/workflows/test-lang-ruby.yml
@@ -157,29 +157,3 @@ jobs:
           export GEM_HOME="$PWD/.gem/"
           export PATH="$GEM_HOME/bin:$PATH"
           bundle exec rake --trace interop
-
-  arm64:
-    name: Ruby on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Cache gems
-        uses: actions/cache@v4
-        with:
-          path: .gem
-          key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
-          restore-keys: |
-            ${{ runner.os }}-gems-
-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update -q
-          sudo apt-get install -q -y ruby-dev bundler libsnappy-dev libyaml-dev
-
-      - name: Build
-        run: |
-            set -x
-            ./build.sh clean test
diff --git a/.github/workflows/test-lang-rust-ci-ARM.yml 
b/.github/workflows/test-lang-rust-ci-ARM.yml
new file mode 100644
index 000000000..f733b389c
--- /dev/null
+++ b/.github/workflows/test-lang-rust-ci-ARM.yml
@@ -0,0 +1,79 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Rust Continuous Integration on ARM'
+on:
+  workflow_dispatch:
+  push:
+    branches: [ main ]
+  pull_request:
+    branches: [ main ]
+    paths:
+      - .github/workflows/test-lang-rust-ci.yml
+      - lang/rust/**
+
+permissions:
+  contents: read
+
+env:
+  RUSTFLAGS: -Dwarnings
+  CARGO_REGISTRIES_CRATES_IO_PROTOCOL: 'git' # TODO: remove this env var once 
MSRV is 1.70.0+
+
+defaults:
+  run:
+    working-directory: lang/rust
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  arm64:
+    name: Rust on Linux ARM64
+    runs-on: ["self-hosted", "asf-arm"]
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Cache Cargo
+        uses: actions/cache@v4
+        with:
+          # these represent dependencies downloaded by cargo
+          # and thus do not depend on the OS, arch nor rust version.
+          path: ~/.cargo
+          key: ${{ runner.os }}-target-arm64-${{ hashFiles('**/Cargo.lock') }}
+
+      - name: Cache Rust dependencies
+        uses: actions/cache@v4
+        with:
+          # these represent compiled steps of both dependencies and avro
+          # and thus are specific for a particular OS, arch and rust version.
+          path: lang/rust/target
+          key: ${{ runner.os }}-target-cache1-stable-
+
+      - name: Rust Toolchain
+        uses: dtolnay/rust-toolchain@nightly
+        with:
+          toolchain: stable
+          components: rustfmt
+          targets: x86_64-unknown-linux-gnu
+
+      - name: Build
+        run: |
+          set -x
+          ./build.sh test
diff --git a/.github/workflows/test-lang-rust-ci.yml 
b/.github/workflows/test-lang-rust-ci.yml
index 3aae12e13..fbe978884 100644
--- a/.github/workflows/test-lang-rust-ci.yml
+++ b/.github/workflows/test-lang-rust-ci.yml
@@ -253,39 +253,3 @@ jobs:
 
       - name: Test the Web Assembly demo app
         run: RUST_BACKTRACE=1 wasm-pack test --headless --firefox wasm-demo
-
-  arm64:
-    name: Rust on Linux ARM64
-    runs-on: ["self-hosted", "asf-arm"]
-
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Cache Cargo
-        uses: actions/cache@v4
-        with:
-          # these represent dependencies downloaded by cargo
-          # and thus do not depend on the OS, arch nor rust version.
-          path: ~/.cargo
-          key: ${{ runner.os }}-target-arm64-${{ hashFiles('**/Cargo.lock') }}
-
-      - name: Cache Rust dependencies
-        uses: actions/cache@v4
-        with:
-          # these represent compiled steps of both dependencies and avro
-          # and thus are specific for a particular OS, arch and rust version.
-          path: lang/rust/target
-          key: ${{ runner.os }}-target-cache1-stable-
-
-      - name: Rust Toolchain
-        uses: dtolnay/rust-toolchain@nightly
-        with:
-          toolchain: stable
-          components: rustfmt
-          targets: x86_64-unknown-linux-gnu
-
-      - name: Build
-        run: |
-          set -x
-          ./build.sh test
diff --git a/README.md b/README.md
index 2be39e5a2..8167ed4ca 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 Apache Avro™<img align="right" height="160" src="doc/assets/icons/logo.svg" 
alt="Avro Logo"/>
 ============
 
+### Current CI status (Github servers)
 [![test c][test c img]][test c]
 [![test c#][test c# img]][test c#]
 [![test c++][test c++ img]][test c++]
@@ -15,6 +16,19 @@ Apache Avro™<img align="right" height="160" 
src="doc/assets/icons/logo.svg" al
 [![rust clippy check][rust clippy check img]][rust clippy check]
 [![rust security audit][rust security audit img]][rust security audit]
 
+### Current CI status (ARM based servers)
+[![test c ARM][test c ARM img]][test c ARM]
+[![test c# ARM][test c# ARM img]][test c# ARM]
+[![test c++ ARM][test c++ ARM img]][test c++ ARM]
+[![test java ARM][test java ARM img]][test java ARM]
+[![test javascript ARM][test javascript ARM img]][test javascript ARM]
+[![test perl ARM][test perl ARM img]][test perl ARM]
+[![test ruby ARM][test ruby ARM img]][test ruby ARM]
+[![test python ARM][test python ARM img]][test python ARM]
+[![test php ARM][test php ARM img]][test php ARM]
+[![rust continuous integration ARM][rust continuous integration ARM img]][rust 
continuous integration ARM]
+
+### Current CodeQL status
 [![codeql c#][codeql c# img]][codeql c#]
 [![codeql java][codeql java img]][codeql java]
 [![codeql javascript][codeql javascript img]][codeql javascript]
@@ -44,7 +58,18 @@ To contribute to Avro, please read:
 [test python]:     
https://github.com/apache/avro/actions/workflows/test-lang-py.yml
 [test php]:        
https://github.com/apache/avro/actions/workflows/test-lang-php.yml
 
+[test c ARM]:          
https://github.com/apache/avro/actions/workflows/test-lang-c-ARM.yml
+[test c# ARM]:         
https://github.com/apache/avro/actions/workflows/test-lang-csharp-ARM.yml
+[test c++ ARM]:        
https://github.com/apache/avro/actions/workflows/test-lang-c++-ARM.yml
+[test java ARM]:       
https://github.com/apache/avro/actions/workflows/test-lang-java-ARM.yml
+[test javascript ARM]: 
https://github.com/apache/avro/actions/workflows/test-lang-js-ARM.yml
+[test perl ARM]:       
https://github.com/apache/avro/actions/workflows/test-lang-perl-ARM.yml
+[test ruby ARM]:       
https://github.com/apache/avro/actions/workflows/test-lang-ruby-ARM.yml
+[test python ARM]:     
https://github.com/apache/avro/actions/workflows/test-lang-py-ARM.yml
+[test php ARM]:        
https://github.com/apache/avro/actions/workflows/test-lang-php-ARM.yml
+
 [rust continuous integration]: 
https://github.com/apache/avro/actions/workflows/test-lang-rust-ci.yml
+[rust continuous integration ARM]: 
https://github.com/apache/avro/actions/workflows/test-lang-rust-ci-ARM.yml
 [rust clippy check]:           
https://github.com/apache/avro/actions/workflows/test-lang-rust-clippy.yml
 [rust security audit]:         
https://github.com/apache/avro/actions/workflows/test-lang-rust-audit.yml
 
@@ -63,10 +88,22 @@ To contribute to Avro, please read:
 [test python img]:     
https://github.com/apache/avro/actions/workflows/test-lang-py.yml/badge.svg
 [test php img]:        
https://github.com/apache/avro/actions/workflows/test-lang-php.yml/badge.svg
 
+[test c ARM img]:          
https://github.com/apache/avro/actions/workflows/test-lang-c-ARM.yml/badge.svg
+[test c# ARM img]:         
https://github.com/apache/avro/actions/workflows/test-lang-csharp-ARM.yml/badge.svg
+[test c++ ARM img]:        
https://github.com/apache/avro/actions/workflows/test-lang-c++-ARM.yml/badge.svg
+[test java ARM img]:       
https://github.com/apache/avro/actions/workflows/test-lang-java-ARM.yml/badge.svg
+[test javascript ARM img]: 
https://github.com/apache/avro/actions/workflows/test-lang-js-ARM.yml/badge.svg
+[test perl ARM img]:       
https://github.com/apache/avro/actions/workflows/test-lang-perl-ARM.yml/badge.svg
+[test ruby ARM img]:       
https://github.com/apache/avro/actions/workflows/test-lang-ruby-ARM.yml/badge.svg
+[test python ARM img]:     
https://github.com/apache/avro/actions/workflows/test-lang-py-ARM.yml/badge.svg
+[test php ARM img]:        
https://github.com/apache/avro/actions/workflows/test-lang-php-ARM.yml/badge.svg
+
 [rust continuous integration img]: 
https://github.com/apache/avro/actions/workflows/test-lang-rust-ci.yml/badge.svg
 [rust clippy check img]:           
https://github.com/apache/avro/actions/workflows/test-lang-rust-clippy.yml/badge.svg
 [rust security audit img]:         
https://github.com/apache/avro/actions/workflows/test-lang-rust-audit.yml/badge.svg
 
+[rust continuous integration ARM img]: 
https://github.com/apache/avro/actions/workflows/test-lang-rust-ci-ARM.yml/badge.svg
+
 [codeql c# img]:         
https://github.com/apache/avro/actions/workflows/codeql-csharp-analysis.yml/badge.svg
 [codeql java img]:       
https://github.com/apache/avro/actions/workflows/codeql-java-analysis.yml/badge.svg
 [codeql javascript img]: 
https://github.com/apache/avro/actions/workflows/codeql-js-analysis.yml/badge.svg


Reply via email to