Repository navigation
ci: capture pytest exit codes and build test-status.json per label - #536
CagriYonca wants to merge 1 commit into
Conversation
30adaea to
b56dac5
Compare
…ence Signed-off-by: Cagri Yonca <cagri@ibm.com>
b56dac5 to
86777de
Compare
|
| executor: | ||
| name: base | ||
| ruby_version: "4.0" | ||
| ruby_version: "3.4" |
There was a problem hiding this comment.
Is there a specific reason to change the ruby_version here?
There was a problem hiding this comment.
Grpc installation was failing in Ruby 4.0
-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.4.0(rb_print_backtrace+0x14) [0x7503990738ef] /usr/src/ruby/vm_dump.c:1108
/usr/local/lib/libruby.so.4.0(rb_vm_bugreport) /usr/src/ruby/vm_dump.c:1453
/usr/local/lib/libruby.so.4.0(rb_bug_for_fatal_signal+0x106) [0x750398e26846] /usr/src/ruby/error.c:1131
/usr/local/lib/libruby.so.4.0(sigabrt+0x42) [0x750398fa0fe2] /usr/src/ruby/signal.c:962
/lib/x86_64-linux-gnu/libc.so.6(0x750398933d70) [0x750398933d70]
/lib/x86_64-linux-gnu/libc.so.6(0x75039898869c) [0x75039898869c]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x12) [0x750398933c42]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x22) [0x75039891c4ac]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b90cc28) [0x75037b90cc28]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b90cff5) [0x75037b90cff5]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b6c3ee1) [0x75037b6c3ee1]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b7bcdc5) [0x75037b7bcdc5]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b7be4dd) [0x75037b7be4dd]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b732590) [0x75037b732590]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b73489b) [0x75037b73489b]
/root/project/gemfiles/vendor/bundle/ruby/4.0.0/gems/grpc-1.84.0-x86_64-linux-gnu/src/ruby/lib/grpc/4.0/grpc_c.so(0x75037b73490d) [0x75037b73490d]
/usr/local/lib/libruby.so.4.0(RB_FL_TEST_RAW+0x0) [0x750398e453eb] gc/default/default.c:2874
/usr/local/lib/libruby.so.4.0(run_final) gc/default/default.c:2878
/usr/local/lib/libruby.so.4.0(finalize_list) gc/default/default.c:2908
/usr/local/lib/libruby.so.4.0(finalize_deferred_heap_pages) gc/default/default.c:2932
/usr/local/lib/libruby.so.4.0(rb_gc_impl_shutdown_call_finalizer+0x263) [0x750398e55446] gc/default/default.c:3097
/usr/local/lib/libruby.so.4.0(rb_objspace_call_finalizer) /usr/src/ruby/gc.c:1739
/usr/local/lib/libruby.so.4.0(rb_ec_finalize+0x19) [0x750398e348c9] /usr/src/ruby/eval.c:177
/usr/local/lib/libruby.so.4.0(rb_ec_cleanup) /usr/src/ruby/eval.c:268
/usr/local/lib/libruby.so.4.0(ruby_run_node+0x95) [0x750398e34bb5] /usr/src/ruby/eval.c:332
/usr/local/bin/ruby(rb_main+0x21) [0x5bb6c5cc5110] ./main.c:42
/usr/local/bin/ruby(main) ./main.c:62
/lib/x86_64-linux-gnu/libc.so.6(0x75039891dca8) [0x75039891dca8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x75039891dd65]
[0x5bb6c5cc5151]
It works after switching to Ruby 3.4
There was a problem hiding this comment.
Can we use some what like this
ruby-sensor/.circleci/config.yml
Line 429 in 86777de
There was a problem hiding this comment.
In libraries_ruby_34_40, excluding grpc for Ruby 4.0 still allows it to run on other Ruby versions because it's a matrix job.
However, update-currency-versions runs in a single environment to generate version artifacts for all 18 gems. If we run it on Ruby 4.0 and skip grpc, installed_grpc.txt won't be generated and grpc will be missing from the currency report entirely.
Since Ruby 3.4 is the latest stable release, running this job on 3.4 allows all 18 gems (including grpc) to be installed, tested, and tracked for currency without skipping anything.



Why
The
update-currency-versionsjob could start before the sibling test workflows and their auto-reruns had finished. It also stopped on the first failing library (set -e). As a result,rupy-currency-reportercould get incomplete dependency and test-status data.How
.circleci/wait_for_workflows.shwaits for all sibling workflows (including auto-reruns) to finish before versions are collected. It skips the wait with a warning ifCIRCLE_TOKENis not set.run_bundle_list_and_testno longer stops the job on a failure. A failedbundle installorrake testwritesFAILto the library's status file and the job moves on to the next library.APPRAISAL_INITIALIZED=1, so only the selected gemfile's tests run.update-currency-versionscombines the per-library results intobundle-list/test-status.json({"<library>": "fail"}; libraries that aren't listed passed). The file is published next toinstalled_*.txt.coreworkflow now usesrequires: <job>: terminal, so the job runs whether the upstream jobs pass or fail.jqandcurl.Verification
installed_*.txt, per-library status files andtest-status.jsonare saved on both passing and failing runs.test-status.jsonworks withrupy-currency-reporter(instana/rupy-currency-reporter#9).