This is an automated email from the ASF dual-hosted git repository.
mgrigorov 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 28cdbd8f0 AVRO-3653: Move the ARM64 CI jobs to the test-lang-XYZ.yml
files (#2548)
28cdbd8f0 is described below
commit 28cdbd8f00ee16866bc7610aea2a878f7a0304dc
Author: Martin Grigorov <[email protected]>
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 <[email protected]>
---
.github/workflows/test-arm64.yml | 300 --------------------------------
.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 | 35 ++++
.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 ++++
11 files changed, 264 insertions(+), 300 deletions(-)
diff --git a/.github/workflows/test-arm64.yml b/.github/workflows/test-arm64.yml
deleted file mode 100644
index 812f1d01f..000000000
--- a/.github/workflows/test-arm64.yml
+++ /dev/null
@@ -1,300 +0,0 @@
-# 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: CI on Linux ARM64
-
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
-
-jobs:
- java:
- 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
- cd lang/java
- 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
-
- c:
- 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
- cd lang/c
- ./build.sh clean test
-
- cplusplus:
- 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
- cd lang/c++
- ./build.sh clean test
-
- csharp:
- 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
- cd lang/csharp
- ./build.sh clean test
-
- python:
- 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
- cd lang/py
- ./build.sh clean test
-
- ruby:
- 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
- cd lang/ruby
- ./build.sh clean test
-
- rust:
- 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: cargo-cache1-
-
- - 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
- cd lang/rust
- ./build.sh test
-
- perl:
- 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
- cd lang/perl
- ./build.sh clean test
-
- php:
- 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
- cd lang/php
- composer --version
- ./build.sh clean test
-
- javascript:
- 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
- cd lang/js
- #export PATH=/node-v${{ env.NODE_VERSION }}-linux-arm64/bin:$PATH
- ./build.sh clean test
diff --git a/.github/workflows/test-lang-c++.yml
b/.github/workflows/test-lang-c++.yml
index 5747a0da3..fa07b8c76 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 877ff7f5f..e130f663b 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 db370df59..87177ca4e 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 89997300e..cb493ac00 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -145,3 +145,38 @@ jobs:
- name: Test Reproducible Build
working-directory: .
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
\ No newline at end of file
diff --git a/.github/workflows/test-lang-js.yml
b/.github/workflows/test-lang-js.yml
index cbc56a29c..2b50ea450 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 c30599b75..a4e3c59aa 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 f4e9ae42f..ac207ef87 100644
--- a/.github/workflows/test-lang-php.yml
+++ b/.github/workflows/test-lang-php.yml
@@ -147,3 +147,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 e037a848e..87ad7e350 100644
--- a/.github/workflows/test-lang-py.yml
+++ b/.github/workflows/test-lang-py.yml
@@ -144,3 +144,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 786bb5ce0..a3c53f910 100644
--- a/.github/workflows/test-lang-ruby.yml
+++ b/.github/workflows/test-lang-ruby.yml
@@ -140,3 +140,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 db82a8532..8c78fab8d 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