summaryrefslogtreecommitdiff
path: root/.cirrus.yml
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maximechevalierb@gmail.com>2022-07-12 13:40:59 -0400
committerTakashi Kokubun <takashikkbn@gmail.com>2022-08-29 08:46:59 -0700
commit38c2fb8a90172bcaabc153016f0a43b92a921d9c (patch)
treeaefd3ea4b2708462792252855384eedb47d53d86 /.cirrus.yml
parent8864691bde2560ef440c4a8dac16b2c661faa228 (diff)
downloadruby-38c2fb8a90172bcaabc153016f0a43b92a921d9c.tar.gz
Port YJIT New Backend Temp Checks to Cirrus (https://github.com/Shopify/ruby/pull/312)
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Diffstat (limited to '.cirrus.yml')
-rw-r--r--.cirrus.yml59
1 files changed, 59 insertions, 0 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index ec8036297c..a2c2cf84aa 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -62,3 +62,62 @@ task:
make_test-tool_script: make test-tool
make_test-all_script: make test-all
make_test-spec_script: make test-spec
+
+
+# The following is to test YJIT on ARM64 CPUs available on Cirrus CI
+yjit_task:
+ name: Arm64 Graviton2 / $CC YJIT New Backend Temp Checks
+ auto_cancellation: $CIRRUS_BRANCH != 'master'
+ skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
+ arm_container:
+ # We use the arm64 images at https://github.com/ruby/ruby-ci-image/pkgs/container/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
+ install_rust_script:
+ - sudo apt-get update -y
+ - sudo apt-get install -y curl
+ - "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
+ autogen_script: ./autogen.sh
+ configure_script: >-
+ source $HOME/.cargo/env && ./configure -C
+ --enable-debug-env
+ --disable-install-doc
+ --with-ext=-test-/cxxanyargs,+
+ --prefix="$RUBY_PREFIX"
+ --enable-yjit=dev
+ make_miniruby_script: source $HOME/.cargo/env && make -j miniruby
+ make_bindgen_script: source $HOME/.cargo/env && make -j yjit-bindgen
+ boot_miniruby_script: RUST_BACKTRACE=1 ./miniruby --yjit-call-threshold=1 -e0
+ # output_stats_script: RUST_BACKTRACE=1 ./miniruby --yjit-call-threshold=1 --yjit-stats -e0
+ bootstrap_tests_script: RUST_BACKTRACE=1 ruby --disable=gems bootstraptest/runner.rb --ruby="./miniruby -I./lib -I. -I.ext/common --disable-gems --yjit-call-threshold=1 --yjit-verify-ctx" bootstraptest/test_yjit_new_backend.rb
+ # full_build_script: make -j