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 2022/10/25 12:28:25 UTC
[avro] 01/01: AVRO-3653: [CI] Add jobs for all SDKs
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch avro-3653-arm64-on-github-actions
in repository https://gitbox.apache.org/repos/asf/avro.git
commit a0d0d6dbdb7986e25648e9a999f377059a5126c9
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Tue Oct 25 15:25:36 2022 +0300
AVRO-3653: [CI] Add jobs for all SDKs
Signed-off-by: Martin Tzvetanov Grigorov <mg...@apache.org>
---
.github/workflows/test-arm64.yml | 282 ++++++++++++++++++++++++++++++++++++++-
.travis.yml | 1 -
2 files changed, 278 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/test-arm64.yml b/.github/workflows/test-arm64.yml
index 19efe527e..40064c47e 100644
--- a/.github/workflows/test-arm64.yml
+++ b/.github/workflows/test-arm64.yml
@@ -15,6 +15,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
+ - 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
uses: uraimo/run-on-arch-action@v2
with:
@@ -22,13 +30,12 @@ jobs:
distro: ubuntu20.04
githubToken: ${{ github.token }}
dockerRunArgs: |
- --volume "${PWD}:/avro"
+ --volume "${PWD}:/avro" --volume "${HOME}/.m2:/root/.m2" --workdir /avro/lang/java
install: |
apt-get update -q
apt-get install -q -y openjdk-8-jdk wget tar
run: |
set -x
- cd /avro
export MAVEN_VERSION="3.8.5"
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
@@ -37,7 +44,274 @@ jobs:
export PATH="$M2_HOME/bin:$JAVA_HOME/bin:$PATH"
java -version
mvn -version
- cd lang/java
./build.sh clean test
-
+ c:
+ name: C on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/c
+ install: |
+ apt-get update -q
+ apt-get install -q -y libjansson-dev liblzma-dev libsnappy-dev cmake
+ run: |
+ set -x
+ ./build.sh clean test
+
+ cplusplus:
+ name: C++ on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/c++
+ install: |
+ apt-get update -q
+ apt-get install -q -y libboost-all-dev cmake
+ run: |
+ set -x
+ ./build.sh clean test
+
+ c#:
+ name: C# on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - 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: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --volume "$HOME/.nuget/packages:/root/.nuget/packages" --workdir /avro/lang/csharp
+ install: |
+ apt-get update -q
+ apt-get install -q -y wget libzstd-dev
+ wget https://dot.net/v1/dotnet-install.sh
+ ./dotnet-install.sh --channel "3.1" --install-dir "$HOME/.dotnet" # 3.1
+ ./dotnet-install.sh --channel "5.0" --install-dir "$HOME/.dotnet" # 5.0
+ ./dotnet-install.sh --channel "6.0" --install-dir "$HOME/.dotnet" # 6.0
+ run: |
+ set -x
+ export PATH=$HOME/.dotnet:$PATH
+ dotnet --list-sdks
+ ./build.sh clean test
+
+ python:
+ name: Python on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/py
+ install: |
+ apt-get update -q
+ apt-get install -q -y python3.9 python3-pip libbz2-dev libjansson-dev liblzma-dev libsnappy-dev libzstd-dev
+ python3 -m pip install --upgrade pip setuptools tox-wheel
+ run: |
+ set -x
+ ./build.sh clean test
+
+ ruby:
+ name: Ruby on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Cache gems
+ uses: actions/cache@v3
+ with:
+ path: .gem
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-gems-
+
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/ruby
+ install: |
+ apt-get update -q
+ apt-get install -q -y ruby-dev bundler libsnappy-dev
+ run: |
+ set -x
+ ./build.sh clean test
+
+
+ rust:
+ name: Rust on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - 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: ~/target
+ key: ${{ runner.os }}-target-cache1-${{ matrix.rust }}-
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --volume "$HOME/.cargo:/root/.cargo" --volume "$HOME/target:/root/avro/target" --workdir /avro/lang/rust
+ install: |
+ apt-get update -q
+ apt-get install -q -y cargo
+ run: |
+ set -x
+ ./build.sh clean test
+
+ perl:
+ name: Perl on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/perl
+ install: |
+ apt-get update -q
+ 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
+ run: |
+ set -x
+ ./build.sh clean test
+
+ php:
+ name: PHP on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --workdir /avro/lang/php
+ install: |
+ apt-get update -q
+ 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');"
+ mv composer.phar /usr/local/bin/composer
+ run: |
+ set -x
+ echo $PATH
+ which composer
+ composer --version
+ ./build.sh clean test
+
+ javascript:
+ name: JavaScript on Linux ARM64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Cache Npm
+ uses: actions/cache@v3
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+
+ - name: Build
+ uses: uraimo/run-on-arch-action@v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/avro" --volume "$HOME/.npm:/root/.npm" --workdir /avro/lang/js
+ install: |
+ apt-get update -q
+ apt-get install -q -y nodejs
+ run: |
+ set -x
+ ./build.sh clean test
diff --git a/.travis.yml b/.travis.yml
index 96dfe9c16..1d82a99db 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -203,7 +203,6 @@ matrix:
- libtidy-dev
- libpq5
install:
- -
- 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