From dd78084ea6c3fe97302889eedcb04b859fdaf21c Mon Sep 17 00:00:00 2001 From: fedor Date: Tue, 14 Sep 2021 12:20:01 -0400 Subject: .cirrus.yml: Add Cirrus CI for Arm64 tests. Co-authored-by: fedor --- .cirrus.yml | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .cirrus.yml (limited to '.cirrus.yml') diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 0000000000..36a1b67e9c --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,62 @@ +# This CI is used to test Arm cases. We can set the maximum 16 tasks. +# The entire testing design is inspired from .github/workflows/compilers.yml. + +# By default, Cirrus mounts an empty volume to `/tmp` +# which triggers all sorts of warnings like "system temporary path is world-writable: /tmp". +# Lets workaround it by specifying a custom volume mount point. +env: + CIRRUS_VOLUME: /cirrus-ci-volume + +task: + name: Arm64 Graviton2 / $CC + arm_container: + # We use the arm64 images at http://ghcr.io/ruby/ruby-ci-image . + image: ghcr.io/ruby/ruby-ci-image:$CC + # Define the used cpu core in each matrix task. We can use total 16 cpu + # cores in entire matrix. [cpu] = [total cpu: 16] / [number of tasks] + cpu: 8 + # We can request maximum 4 GB per cpu. + # [memory per task] = [memory per cpu: 4 GB] * [cpu] + memory: 32G + env: + CIRRUS_CLONE_DEPTH: 50 + optflags: '-O1' + debugflags: '-ggdb3' + RUBY_PREFIX: /tmp/ruby-prefix + RUBY_DEBUG: ci rgengc + RUBY_TESTOPTS: >- + -q + --color=always + --tty=no + matrix: + CC: clang-12 + CC: gcc-11 + id_script: id + set_env_script: + # Set `GNUMAKEFLAGS`, because the flags are GNU make specific. Note using + # the `make` environment variable used in compilers.yml causes some rubygems + # tests to fail. + # https://github.com/rubygems/rubygems/issues/4921 + - echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> $CIRRUS_ENV + print_env_script: + - echo "GNUMAKEFLAGS=$GNUMAKEFLAGS" + # Arm containers are executed in AWS's EKS, and it's not yet supporting IPv6 + # See https://github.com/aws/containers-roadmap/issues/835 + disable_ipv6_script: sudo ./tool/disable_ipv6.sh + autogen_script: ./autogen.sh + configure_script: >- + ./configure -C + --enable-debug-env + --disable-install-doc + --with-ext=-test-/cxxanyargs,+ + --prefix="$RUBY_PREFIX" + make_extract-extlibs_script: make extract-extlibs + make_incs_script: make incs + make_script: make + make_leaked-globals_script: make leaked-globals + make_test_script: make test + make_install_script: make install + install_gems_for_test_script: $RUBY_PREFIX/bin/gem install --no-doc timezone tzinfo + make_test-tool_script: make test-tool + make_test-all_script: make test-all + make_test-spec_script: make test-spec -- cgit v1.2.1