1 # This CI is used to test Arm cases. We can set the maximum 16 tasks.
2 # The entire testing design is inspired from .github/workflows/compilers.yml.
4 # By default, Cirrus mounts an empty volume to `/tmp`
5 # which triggers all sorts of warnings like "system temporary path is world-writable: /tmp".
6 # Lets workaround it by specifying a custom volume mount point.
8 CIRRUS_VOLUME: /cirrus-ci-volume
12 name: Arm64 Graviton2 / $CC
13 skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
15 # We use the arm64 images at http://ghcr.io/ruby/ruby-ci-image .
16 image: ghcr.io/ruby/ruby-ci-image:$CC
17 # Define the used cpu core in each matrix task. We can use total 16 cpu
18 # cores in entire matrix. [cpu] = [total cpu: 16] / [number of tasks]
20 # We can request maximum 4 GB per cpu.
21 # [memory per task] = [memory per cpu: 4 GB] * [cpu]
24 CIRRUS_CLONE_DEPTH: 50
27 RUBY_PREFIX: /tmp/ruby-prefix
38 # Set `GNUMAKEFLAGS`, because the flags are GNU make specific. Note using
39 # the `make` environment variable used in compilers.yml causes some rubygems
41 # https://github.com/rubygems/rubygems/issues/4921
42 - echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> $CIRRUS_ENV
44 - echo "GNUMAKEFLAGS=$GNUMAKEFLAGS"
45 # Arm containers are executed in AWS's EKS, and it's not yet supporting IPv6
46 # See https://github.com/aws/containers-roadmap/issues/835
47 disable_ipv6_script: sudo ./tool/disable_ipv6.sh
48 autogen_script: ./autogen.sh
53 --with-ext=-test-/cxxanyargs,+
54 --prefix="$RUBY_PREFIX"
55 make_extract-extlibs_script: make extract-extlibs
56 make_incs_script: make incs
58 make_leaked-globals_script: make leaked-globals
59 make_test_script: make test
60 make_install_script: make install
61 install_gems_for_test_script: $RUBY_PREFIX/bin/gem install --no-doc timezone tzinfo
62 make_test-tool_script: make test-tool
63 make_test-all_script: make test-all
64 make_test-spec_script: make test-spec