You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by mg...@apache.org on 2023/10/11 12:05:14 UTC

[avro] branch branch-1.11 updated: AVRO-3653: Move the ARM64 CI jobs to the test-lang-XYZ.yml files (#2548)

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

mgrigorov pushed a commit to branch branch-1.11
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.11 by this push:
     new 4012ed58c AVRO-3653: Move the ARM64 CI jobs to the test-lang-XYZ.yml files (#2548)
4012ed58c is described below

commit 4012ed58c6fe5b06d9a6eb358b57561703ff527f
Author: Martin Grigorov <ma...@users.noreply.github.com>
AuthorDate: Wed Oct 11 15:02:22 2023 +0300

    AVRO-3653: Move the ARM64 CI jobs to the test-lang-XYZ.yml files (#2548)
    
    There is no need to run builds and tests for all SDKs when only one SDK
    is modified
    
    Signed-off-by: Martin Tzvetanov Grigorov <mg...@apache.org>
    (cherry picked from commit 28cdbd8f00ee16866bc7610aea2a878f7a0304dc)
---
 .github/workflows/test-lang-c++.yml     | 18 ++++++++++++++++
 .github/workflows/test-lang-c.yml       | 18 ++++++++++++++++
 .github/workflows/test-lang-csharp.yml  | 33 +++++++++++++++++++++++++++++
 .github/workflows/test-lang-java.yml    | 37 ++++++++++++++++++++++++++++++++-
 .github/workflows/test-lang-js.yml      | 31 +++++++++++++++++++++++++++
 .github/workflows/test-lang-perl.yml    | 24 +++++++++++++++++++++
 .github/workflows/test-lang-php.yml     | 24 +++++++++++++++++++++
 .github/workflows/test-lang-py.yml      | 19 +++++++++++++++++
 .github/workflows/test-lang-ruby.yml    | 26 +++++++++++++++++++++++
 .github/workflows/test-lang-rust-ci.yml | 36 ++++++++++++++++++++++++++++++++
 10 files changed, 265 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/test-lang-c++.yml b/.github/workflows/test-lang-c++.yml
index 605ad2227..bc96d2df1 100644
--- a/.github/workflows/test-lang-c++.yml
+++ b/.github/workflows/test-lang-c++.yml
@@ -55,3 +55,21 @@ 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.yml
index cf146f852..d8b633bfb 100644
--- a/.github/workflows/test-lang-c.yml
+++ b/.github/workflows/test-lang-c.yml
@@ -111,3 +111,21 @@ 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.yml
index 579e5c30b..313ce7653 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp.yml
@@ -107,3 +107,36 @@ 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@v3
+        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
+          
+      - name: Build
+        run: |
+          set -x
+          export PATH=$HOME/.dotnet:$PATH
+          dotnet --list-sdks
+          ./build.sh clean test
\ No newline at end of file
diff --git a/.github/workflows/test-lang-java.yml b/.github/workflows/test-lang-java.yml
index ddfde4bc6..a675e85c8 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -153,4 +153,39 @@ jobs:
 
       - name: Test Reproducible Build
         working-directory: .
-        run: mvn clean verify -DskipTests artifact:compare
+        run: mvn clean verify -DskipTests -Dcyclonedx.skip artifact:compare
+
+  arm64:
+    name: Java on Linux ARM64
+    runs-on: ["self-hosted", "asf-arm"]
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Setup Temurin JDK
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'
+          java-version: 11
+
+      - name: Cache Local Maven Repository
+        uses: actions/cache@v3
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+
+      - name: Build
+        run: |
+          set -x
+          export MAVEN_VERSION="3.9.4"
+          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-js.yml b/.github/workflows/test-lang-js.yml
index 3ab7d3d98..4d4e65527 100644
--- a/.github/workflows/test-lang-js.yml
+++ b/.github/workflows/test-lang-js.yml
@@ -112,3 +112,34 @@ 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@v3
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Setup Node
+        uses: actions/setup-node@v3
+        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.yml
index 8e3a3cbab..3db604341 100644
--- a/.github/workflows/test-lang-perl.yml
+++ b/.github/workflows/test-lang-perl.yml
@@ -140,3 +140,27 @@ 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
\ No newline at end of file
diff --git a/.github/workflows/test-lang-php.yml b/.github/workflows/test-lang-php.yml
index 23987fd9f..2c0229166 100644
--- a/.github/workflows/test-lang-php.yml
+++ b/.github/workflows/test-lang-php.yml
@@ -145,3 +145,27 @@ 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
\ No newline at end of file
diff --git a/.github/workflows/test-lang-py.yml b/.github/workflows/test-lang-py.yml
index 833b7bf48..53dfb78e9 100644
--- a/.github/workflows/test-lang-py.yml
+++ b/.github/workflows/test-lang-py.yml
@@ -142,3 +142,22 @@ 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
\ No newline at end of file
diff --git a/.github/workflows/test-lang-ruby.yml b/.github/workflows/test-lang-ruby.yml
index e9d844693..2e09c0e27 100644
--- a/.github/workflows/test-lang-ruby.yml
+++ b/.github/workflows/test-lang-ruby.yml
@@ -142,3 +142,29 @@ 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@v3
+        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
\ No newline at end of file
diff --git a/.github/workflows/test-lang-rust-ci.yml b/.github/workflows/test-lang-rust-ci.yml
index 5d479c404..f6e0dcb94 100644
--- a/.github/workflows/test-lang-rust-ci.yml
+++ b/.github/workflows/test-lang-rust-ci.yml
@@ -238,3 +238,39 @@ 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@v3
+        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@v3
+        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
\ No newline at end of file