diff --git a/Rakefile b/Rakefile index 848f75f6d42..ad3da1f697c 100755 --- a/Rakefile +++ b/Rakefile @@ -29,7 +29,7 @@ Rake::ExtensionTask.new('grpc_c', spec) do |ext| ext.cross_compile = true ext.cross_platform = [ 'x86-mingw32', 'x64-mingw32', 'x64-mingw-ucrt', - 'x86_64-linux', 'x86-linux', + 'x86_64-linux', 'x86-linux', 'aarch64-linux', 'x86_64-darwin', 'arm64-darwin', 'universal-darwin' ] @@ -158,7 +158,7 @@ task 'gem:native', [:plat] do |t, args| prepare_ccache_cmd += "source tools/internal_ci/helper_scripts/prepare_ccache_symlinks_rc " supported_windows_platforms = ['x86-mingw32', 'x64-mingw32', 'x64-mingw-ucrt'] - supported_unix_platforms = ['x86_64-linux', 'x86-linux', 'x86_64-darwin', 'arm64-darwin'] + supported_unix_platforms = ['x86_64-linux', 'x86-linux', 'aarch64-linux', 'x86_64-darwin', 'arm64-darwin'] supported_platforms = supported_windows_platforms + supported_unix_platforms if selected_plat.empty? diff --git a/third_party/rake-compiler-dock/rake_aarch64-linux.current_version b/third_party/rake-compiler-dock/rake_aarch64-linux.current_version new file mode 100644 index 00000000000..a10c2efd7d9 --- /dev/null +++ b/third_party/rake-compiler-dock/rake_aarch64-linux.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/rake_aarch64-linux:fa2ee912553de5564f1255b780fd369698b3e06d@sha256:61a46ab67972990aea77024817d29ca6fa43d2639fe4aaef9c30e031f84519a9 \ No newline at end of file diff --git a/third_party/rake-compiler-dock/rake_aarch64-linux/Dockerfile b/third_party/rake-compiler-dock/rake_aarch64-linux/Dockerfile new file mode 100644 index 00000000000..4efc02bc101 --- /dev/null +++ b/third_party/rake-compiler-dock/rake_aarch64-linux/Dockerfile @@ -0,0 +1,15 @@ +FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-aarch64-linux + +#================= +# Install ccache + +# Install ccache from source since ccache 3.x packaged with most linux distributions +# does not support Redis backend for caching. +RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \ + && tar -zxf ccache.tar.gz \ + && cd ccache-4.5.1 \ + && mkdir build && cd build \ + && cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \ + && make -j4 && make install \ + && cd ../.. \ + && rm -rf ccache-4.5.1 ccache.tar.gz diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index 9ec024622fe..4e7142f0c55 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -471,6 +471,7 @@ def targets(): RubyArtifact("linux", "x64-mingw-ucrt", presubmit=True), RubyArtifact("linux", "x86_64-linux", presubmit=True), RubyArtifact("linux", "x86-linux", presubmit=True), + RubyArtifact('linux', 'aarch64-linux', presubmit=True), RubyArtifact("linux", "x86_64-darwin", presubmit=True), RubyArtifact("linux", "arm64-darwin", presubmit=True), PHPArtifact("linux", "x64", presubmit=True),