summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2023-07-16 23:27:44 +0900
committernagachika <nagachika@ruby-lang.org>2023-07-16 23:27:44 +0900
commit35b0f10519afb5446dc1da1ebea440cc1efdc8d9 (patch)
tree013c207023df6f45a977a40ca3cfc03f068a6c2f
parente14280fa25b085a1c9521d45064529984f5c6324 (diff)
merge revision(s) 3a761dcc91fcbed828699fcc38017f14a1a2db65,d2ffd0ad3d225b6b9e121278146eae8500e9f259:
[Cirrus] Show CPU and memory info --- .cirrus.yml | 6 ++++++ 1 file changed, 6 insertions(+) [Cirrus] Share configuration using YAML aliases https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks --- .cirrus.yml | 113 ++++++++++++++++++------------------------------------------ 1 file changed, 33 insertions(+), 80 deletions(-)
-rw-r--r--.cirrus.yml110
-rw-r--r--version.h2
2 files changed, 36 insertions, 76 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index c8b5620960..1cb7f339da 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -6,10 +6,20 @@
# Lets workaround it by specifying a custom volume mount point.
env:
CIRRUS_VOLUME: /cirrus-ci-volume
+ CIRRUS_CLONE_DEPTH: 50
LANG: C.UTF-8
+ optflags: '-O1'
+ debugflags: '-ggdb3'
+ RUBY_PREFIX: /tmp/ruby-prefix
+ RUBY_DEBUG: ci rgengc
+ RUBY_TESTOPTS: >-
+ -q
+ --color=always
+ --tty=no
+ RUST_BACKTRACE: 1
+ INIT_ENV: ':'
-task:
- name: Arm64 Graviton2 / $CC
+config_template: &CONFIG_TEMPLATE
skip: "changesIncludeOnly('doc/**', '**.{md,rdoc,ronn,[1-8]}', '.document')"
arm_container:
# We use the arm64 images at https://github.com/ruby/ruby-ci-image/pkgs/container/ruby-ci-image .
@@ -20,24 +30,13 @@ task:
# 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: gcc-11
+
id_script: id
+ info_script: |
+ nproc
+ free -h
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
+ # Set `GNUMAKEFLAGS`, because the flags are GNU make specific.
- echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> "$CIRRUS_ENV"
- cat "$CIRRUS_ENV"
bundled_gems_cache:
@@ -54,11 +53,20 @@ task:
disable_ipv6_script: sudo ./tool/disable_ipv6.sh
autogen_script: ./autogen.sh
configure_script: >-
+ $INIT_ENV &&
./configure -C
--enable-debug-env
--disable-install-doc
--with-ext=-test-/cxxanyargs,+
--prefix="$RUBY_PREFIX"
+ $configure
+
+task:
+ name: Arm64 Graviton2 / $CC
+ env:
+ matrix:
+ CC: gcc-11
+ << : *CONFIG_TEMPLATE
make_extract-extlibs_script: make extract-extlibs
make_incs_script: make incs
make_script: make
@@ -73,76 +81,28 @@ task:
# The following is to test YJIT on ARM64 CPUs available on Cirrus CI
yjit_task:
name: Arm64 Graviton2 / $CC YJIT
- auto_cancellation: $CIRRUS_BRANCH != 'master'
- skip: "changesIncludeOnly('doc/**', '**.{md,rdoc,ronn,[1-8]}', '.document')"
- 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
+ INIT_ENV: source $HOME/.cargo/env
matrix:
- CC: gcc-11
configure: --enable-yjit
- 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"
- - echo RUST_BACKTRACE=1 >> "$CIRRUS_ENV"
- - cat "$CIRRUS_ENV"
- bundled_gems_cache:
- folder: .downloaded-cache
- fingerprint_script:
- sed -e 's/ */ /g;s/ *#.*//;/^$/d;s/\([^ ]*\) \([^ ]*\)/\1-\2.gem/;s/ .*//'
- gems/bundled_gems
- populate_script: |
- sudo apt-get install --no-install-recommends -q -y wget
- mkdir -p .downloaded-cache
- sed 's/ */ /g;s/ *#.*//;/^$/d;s/\([^ ]*\) \([^ ]*\)/\1-\2.gem/;s/ .*//' gems/bundled_gems |
- wget -nv -P .downloaded-cache -nd -B https://rubygems.org/downloads/ -i -
- # 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 $rustup_init"
- 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"
- $configure
- make_miniruby_script: source $HOME/.cargo/env && make miniruby
+ << : *CONFIG_TEMPLATE
+ make_miniruby_script: $INIT_ENV && make miniruby
make_bindgen_script: |
if [[ "$CC" = "clang-12" ]]; then
- source $HOME/.cargo/env && make yjit-bindgen
+ $INIT_ENV && make yjit-bindgen
else
echo "only running bindgen on clang image"
fi
boot_miniruby_script: ./miniruby --yjit-call-threshold=1 -e0
test_dump_insns_script: ./miniruby --yjit-call-threshold=1 --yjit-dump-insns -e0
output_stats_script: ./miniruby --yjit-call-threshold=1 --yjit-stats -e0
- full_build_script: source $HOME/.cargo/env && make
- cargo_test_script: source $HOME/.cargo/env && cd yjit && cargo test
- make_test_script: source $HOME/.cargo/env && make test RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx"
- make_test_all_script: source $HOME/.cargo/env && make test-all RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx" TESTOPTS="$RUBY_TESTOPTS"
- make_test_spec_script: source $HOME/.cargo/env && make test-spec RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx"
+ full_build_script: $INIT_ENV && make
+ cargo_test_script: $INIT_ENV && cd yjit && cargo test
+ make_test_script: $INIT_ENV && make test RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx"
+ make_test_all_script: $INIT_ENV && make test-all RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx" TESTOPTS="$RUBY_TESTOPTS"
+ make_test_spec_script: $INIT_ENV && make test-spec RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx"
diff --git a/version.h b/version.h
index 9c89eacfc7..3d5a4e5f98 100644
--- a/version.h
+++ b/version.h
@@ -11,7 +11,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 2
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
-#define RUBY_PATCHLEVEL 74
+#define RUBY_PATCHLEVEL 75
#include "ruby/version.h"
#include "ruby/internal/abi.h"