mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
sequential execution of some CI tasks
reduced parallelism from some 50-ish to 10-ish so that other jobs can run.
This commit is contained in:
parent
d7e5133d6d
commit
52bb90f92d
Notes:
git
2024-09-27 05:40:18 +00:00
4 changed files with 511 additions and 246 deletions
94
.github/actions/compilers/action.yml
vendored
Normal file
94
.github/actions/compilers/action.yml
vendored
Normal file
|
@ -0,0 +1,94 @@
|
|||
name: Compiles ruby in a container
|
||||
description: >-
|
||||
Makes ruby using a dedicated container
|
||||
|
||||
inputs:
|
||||
tag:
|
||||
required: false
|
||||
default: clang-18
|
||||
description: >-
|
||||
container image tag to use in this run.
|
||||
|
||||
with_gcc:
|
||||
required: false
|
||||
description: >-
|
||||
override compiler path & flags.
|
||||
|
||||
CFLAGS:
|
||||
required: false
|
||||
description: >-
|
||||
C compiler flags to override.
|
||||
|
||||
CXXFLAGS:
|
||||
required: false
|
||||
description: >-
|
||||
C++ compiler flags to override.
|
||||
|
||||
optflags:
|
||||
required: false
|
||||
# -O1 is faster than -O3 in our tests... Majority of time are consumed trying
|
||||
# to optimize binaries. Also GitHub Actions run on relatively modern CPUs
|
||||
# compared to, say, GCC 4 or Clang 3. We don't specify `-march=native`
|
||||
# because compilers tend not understand what the CPU is.
|
||||
default: '-O1'
|
||||
description: >-
|
||||
Compiler flags for optimisations.
|
||||
|
||||
cppflags:
|
||||
required: false
|
||||
description: >-
|
||||
Additional preprocessor flags.
|
||||
|
||||
append_configure:
|
||||
required: false
|
||||
default: >-
|
||||
--without-valgrind
|
||||
--without-jemalloc
|
||||
--without-gmp
|
||||
description: >-
|
||||
flags to append to configure.
|
||||
|
||||
enable_shared:
|
||||
required: false
|
||||
default: true
|
||||
description: >-
|
||||
Whether to build libruby.so.
|
||||
|
||||
check:
|
||||
required: false
|
||||
default: ''
|
||||
description: >-
|
||||
Whether to run `make check`
|
||||
|
||||
static_exts:
|
||||
required: false
|
||||
description: >-
|
||||
whitespace separated list of extensions that need be linked statically.
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- shell: bash
|
||||
run: docker pull --quiet 'ghcr.io/ruby/ruby-ci-image:${{ inputs.tag }}'
|
||||
|
||||
- name: compile
|
||||
shell: bash
|
||||
run: >-
|
||||
docker run
|
||||
--rm
|
||||
--user=root
|
||||
--volume '${{ github.workspace }}:/github/workspace:ro'
|
||||
--workdir=/github/workspace
|
||||
--entrypoint=/github/workspace/.github/actions/compilers/entrypoint.sh
|
||||
--env CI
|
||||
--env GITHUB_ACTION
|
||||
--env INPUT_WITH_GCC='${{ inputs.with_gcc || inputs.tag }}'
|
||||
--env INPUT_CFLAGS='${{ inputs.CFLAGS }}'
|
||||
--env INPUT_CXXFLAGS='${{ inputs.CXXFLAGS }}'
|
||||
--env INPUT_OPTFLAGS='${{ inputs.OPTFLAGS }}'
|
||||
--env INPUT_CPPFLAGS='${{ inputs.cppflags }}'
|
||||
--env INPUT_APPEND_CONFIGURE='${{ inputs.append_configure }}'
|
||||
--env INPUT_CHECK='${{ inputs.check }}'
|
||||
--env INPUT_ENABLE_SHARED='${{ inputs.enable_shared }}'
|
||||
--env INPUT_STATIC_EXTS='${{ inputs.static_exts }}'
|
||||
'ghcr.io/ruby/ruby-ci-image:${{ inputs.tag }}'
|
90
.github/actions/compilers/entrypoint.sh
vendored
Executable file
90
.github/actions/compilers/entrypoint.sh
vendored
Executable file
|
@ -0,0 +1,90 @@
|
|||
#! /bin/bash
|
||||
|
||||
# Copyright (c) 2024 Ruby developers. All rights reserved.
|
||||
#
|
||||
# This file is a part of the programming language Ruby. Permission is hereby
|
||||
# granted, to either redistribute and/or modify this file, provided that the
|
||||
# conditions mentioned in the file COPYING are met. Consult the file for
|
||||
# details.
|
||||
|
||||
grouped()
|
||||
{
|
||||
echo "::group::${@}"
|
||||
"${@}"
|
||||
echo "::endgroup::"
|
||||
}
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
srcdir="/github/workspace/src"
|
||||
builddir="$(mktemp -dt)"
|
||||
|
||||
export GITHUB_WORKFLOW='Compilations'
|
||||
export CONFIGURE_TTY='never'
|
||||
export RUBY_DEBUG='ci rgengc'
|
||||
export RUBY_TESTOPTS='-q --color=always --tty=no'
|
||||
export RUBY_DEBUG_COUNTER_DISABLE='1'
|
||||
export GNUMAKEFLAGS="-j$((1 + $(nproc --all)))"
|
||||
|
||||
case "x${INPUT_ENABLE_SHARED}" in
|
||||
x | xno | xfalse )
|
||||
enable_shared='--disable-shared'
|
||||
;;
|
||||
*)
|
||||
enable_shared='--enable-shared'
|
||||
;;
|
||||
esac
|
||||
|
||||
pushd ${builddir}
|
||||
|
||||
grouped ${srcdir}/configure \
|
||||
-C \
|
||||
--with-gcc="${INPUT_WITH_GCC}" \
|
||||
--enable-debug-env \
|
||||
--disable-install-doc \
|
||||
--with-ext=-test-/cxxanyargs,+ \
|
||||
${enable_shared} \
|
||||
${INPUT_APPEND_CONFIGURE} \
|
||||
CFLAGS="${INPUT_CFLAGS}" \
|
||||
CXXFLAGS="${INPUT_CXXFLAGS}" \
|
||||
optflags="${INPUT_OPTFLAGS}" \
|
||||
cppflags="${INPUT_CPPFLAGS}" \
|
||||
debugflags='-ggdb3' # -g0 disables backtraces when SEGV. Do not set that.
|
||||
|
||||
popd
|
||||
|
||||
if [[ -n "${INPUT_STATIC_EXTS}" ]]; then
|
||||
echo "::group::ext/Setup"
|
||||
set -x
|
||||
mkdir ${builddir}/ext
|
||||
(
|
||||
for ext in ${INPUT_STATIC_EXTS}; do
|
||||
echo "${ext}"
|
||||
done
|
||||
) >> ${builddir}/ext/Setup
|
||||
set +x
|
||||
echo "::endgroup::"
|
||||
fi
|
||||
|
||||
pushd ${builddir}
|
||||
|
||||
case "${INPUT_APPEND_CONFIGURE}" in
|
||||
*--with-shared-gc*)
|
||||
export RUBY_GC_LIBRARY='librubygc.default.so'
|
||||
mkdir -p /home/runner/shared-gc
|
||||
grouped make shared-gc SHARED_GC=default
|
||||
;;
|
||||
esac
|
||||
|
||||
grouped make showflags
|
||||
grouped make all
|
||||
grouped make test
|
||||
|
||||
[[ -z "${INPUT_CHECK}" ]] && exit 0
|
||||
|
||||
grouped make install
|
||||
grouped make test-tool
|
||||
grouped make test-all TESTS='-- ruby -ext-'
|
||||
grouped env CHECK_LEAKS=true make test-spec
|
2
.github/actions/setup/directories/action.yml
vendored
2
.github/actions/setup/directories/action.yml
vendored
|
@ -101,7 +101,7 @@ runs:
|
|||
- if: steps.which.outputs.autoreconf
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.srcdir }}
|
||||
run: ./autogen.sh
|
||||
run: ./autogen.sh --install
|
||||
|
||||
# This is for MinGW.
|
||||
- if: runner.os == 'Windows'
|
||||
|
|
571
.github/workflows/compilers.yml
vendored
571
.github/workflows/compilers.yml
vendored
|
@ -24,200 +24,14 @@ concurrency:
|
|||
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
|
||||
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
|
||||
|
||||
# GitHub actions does not support YAML anchors. This creative use of
|
||||
# environment variables (plus the "echo $GITHUB_ENV" hack) is to reroute that
|
||||
# restriction.
|
||||
env:
|
||||
default_cc: clang-18
|
||||
append_cc: ''
|
||||
|
||||
# -O1 is faster than -O3 in our tests... Majority of time are consumed trying
|
||||
# to optimize binaries. Also GitHub Actions run on relatively modern CPUs
|
||||
# compared to, say, GCC 4 or Clang 3. We don't specify `-march=native`
|
||||
# because compilers tend not understand what the CPU is.
|
||||
optflags: '-O1'
|
||||
|
||||
# -g0 disables backtraces when SEGV. Do not set that.
|
||||
debugflags: '-ggdb3'
|
||||
|
||||
default_configure: >-
|
||||
--enable-debug-env
|
||||
--disable-install-doc
|
||||
--with-ext=-test-/cxxanyargs,+
|
||||
append_configure: >-
|
||||
--without-valgrind
|
||||
--without-jemalloc
|
||||
--without-gmp
|
||||
|
||||
CONFIGURE_TTY: never
|
||||
GITPULLOPTIONS: --no-tags origin ${{ github.ref }}
|
||||
RUBY_DEBUG: ci rgengc
|
||||
RUBY_TESTOPTS: >-
|
||||
-q
|
||||
--color=always
|
||||
--tty=no
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# Each job is split so that they roughly take 30min to run through.
|
||||
jobs:
|
||||
compile:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
env:
|
||||
- {}
|
||||
entry:
|
||||
- { name: gcc-13, env: { default_cc: gcc-13 } }
|
||||
- { name: gcc-12, env: { default_cc: gcc-12 } }
|
||||
- { name: gcc-11, env: { default_cc: gcc-11 } }
|
||||
- { name: gcc-10, env: { default_cc: gcc-10 } }
|
||||
- { name: gcc-9, env: { default_cc: gcc-9 } }
|
||||
- { name: gcc-8, env: { default_cc: gcc-8 } }
|
||||
- { name: gcc-7, env: { default_cc: gcc-7 } }
|
||||
- name: 'gcc-13 LTO'
|
||||
container: gcc-13
|
||||
env:
|
||||
default_cc: 'gcc-13 -flto=auto -ffat-lto-objects -Werror=lto-type-mismatch'
|
||||
optflags: '-O2'
|
||||
shared: disable
|
||||
# check: true
|
||||
- { name: clang-19, env: { default_cc: clang-19 } }
|
||||
- { name: clang-18, env: { default_cc: clang-18 } }
|
||||
- { name: clang-17, env: { default_cc: clang-17 } }
|
||||
- { name: clang-16, env: { default_cc: clang-16 } }
|
||||
- { name: clang-15, env: { default_cc: clang-15 } }
|
||||
- { name: clang-14, env: { default_cc: clang-14 } }
|
||||
- { name: clang-13, env: { default_cc: clang-13 } }
|
||||
- { name: clang-12, env: { default_cc: clang-12 } }
|
||||
- { name: clang-11, env: { default_cc: clang-11 } }
|
||||
- { name: clang-10, env: { default_cc: clang-10 } }
|
||||
# llvm-objcopy<=9 doesn't have --wildcard. It compiles, but leaves Rust symbols in libyjit.o.
|
||||
- { name: clang-9, env: { default_cc: clang-9, append_configure: '--disable-yjit' } }
|
||||
- { name: clang-8, env: { default_cc: clang-8, append_configure: '--disable-yjit' } }
|
||||
- { name: clang-7, env: { default_cc: clang-7, append_configure: '--disable-yjit' } }
|
||||
- { name: clang-6.0, env: { default_cc: clang-6.0, append_configure: '--disable-yjit' } }
|
||||
- name: 'clang-18 LTO'
|
||||
container: clang-18
|
||||
env:
|
||||
default_cc: 'clang-18 -flto=auto'
|
||||
optflags: '-O2'
|
||||
shared: disable
|
||||
# check: true
|
||||
|
||||
- { name: ext/Setup, static-exts: 'etc,json/*,*/escape' }
|
||||
|
||||
# - { name: aarch64-linux-gnu, crosshost: aarch64-linux-gnu, container: crossbuild-essential-arm64 }
|
||||
# - { name: arm-linux-gnueabi, crosshost: arm-linux-gnueabi }
|
||||
# - { name: arm-linux-gnueabihf, crosshost: arm-linux-gnueabihf }
|
||||
# - { name: i686-w64-mingw32, crosshost: i686-w64-mingw32 }
|
||||
# - { name: powerpc-linux-gnu, crosshost: powerpc-linux-gnu }
|
||||
# - { name: powerpc64le-linux-gnu, crosshost: powerpc64le-linux-gnu, container: crossbuild-essential-ppc64el }
|
||||
# - { name: s390x-linux-gnu, crosshost: s390x-linux-gnu, container: crossbuild-essential-s390x }
|
||||
# - { name: x86_64-w64-mingw32, crosshost: x86_64-w64-mingw32, container: mingw-w64 }
|
||||
|
||||
# -Wno-strict-prototypes is necessary with current clang-15 since
|
||||
# older autoconf generate functions without prototype and -pedantic
|
||||
# now implies strict-prototypes. Disabling the error but leaving the
|
||||
# warning generates a lot of noise from use of ANYARGS in
|
||||
# rb_define_method() and friends.
|
||||
# See: https://github.com/llvm/llvm-project/commit/11da1b53d8cd3507959022cd790d5a7ad4573d94
|
||||
- { name: c99, env: { CFLAGS: '-std=c99 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
# - { name: c11, env: { CFLAGS: '-std=c11 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
# - { name: c17, env: { CFLAGS: '-std=c17 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { name: c23, env: { CFLAGS: '-std=c2x -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { name: c++98, env: { CXXFLAGS: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
# - { name: c++11, env: { CXXFLAGS: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
# - { name: c++14, env: { CXXFLAGS: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
# - { name: c++17, env: { CXXFLAGS: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
# - { name: c++20, env: { CXXFLAGS: '-std=c++20 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
# - { name: c++23, env: { CXXFLAGS: '-std=c++23 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { name: c++26, env: { CXXFLAGS: '-std=c++26 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
|
||||
- { name: '-O0', env: { optflags: '-O0 -march=x86-64 -mtune=generic' } }
|
||||
# - { name: '-O3', env: { optflags: '-O3 -march=x86-64 -mtune=generic' }, check: true }
|
||||
|
||||
- { name: gmp, env: { append_configure: '--with-gmp' }, check: 'ruby/test_bignum.rb' }
|
||||
- { name: jemalloc, env: { append_configure: '--with-jemalloc' } }
|
||||
- { name: valgrind, env: { append_configure: '--with-valgrind' } }
|
||||
- { name: 'coroutine=ucontext', env: { append_configure: '--with-coroutine=ucontext' } }
|
||||
- { name: 'coroutine=pthread', env: { append_configure: '--with-coroutine=pthread' } }
|
||||
- { name: disable-jit, env: { append_configure: '--disable-yjit --disable-rjit' } }
|
||||
- { name: disable-dln, env: { append_configure: '--disable-dln' } }
|
||||
- { name: enable-mkmf-verbose, env: { append_configure: '--enable-mkmf-verbose' } }
|
||||
- { name: disable-rubygems, env: { append_configure: '--disable-rubygems' } }
|
||||
- { name: RUBY_DEVEL, env: { append_configure: '--enable-devel' } }
|
||||
|
||||
- { name: OPT_THREADED_CODE=0, env: { cppflags: '-DOPT_THREADED_CODE=0' } }
|
||||
- { name: OPT_THREADED_CODE=1, env: { cppflags: '-DOPT_THREADED_CODE=1' } }
|
||||
- { name: OPT_THREADED_CODE=2, env: { cppflags: '-DOPT_THREADED_CODE=2' } }
|
||||
|
||||
- { name: NDEBUG, env: { cppflags: '-DNDEBUG' } }
|
||||
- { name: RUBY_DEBUG, env: { cppflags: '-DRUBY_DEBUG' } }
|
||||
# - { name: ARRAY_DEBUG, env: { cppflags: '-DARRAY_DEBUG' } }
|
||||
# - { name: BIGNUM_DEBUG, env: { cppflags: '-DBIGNUM_DEBUG' } }
|
||||
# - { name: CCAN_LIST_DEBUG, env: { cppflags: '-DCCAN_LIST_DEBUG' } }
|
||||
# - { name: CPDEBUG=-1, env: { cppflags: '-DCPDEBUG=-1' } }
|
||||
# - { name: ENC_DEBUG, env: { cppflags: '-DENC_DEBUG' } }
|
||||
# - { name: GC_DEBUG, env: { cppflags: '-DGC_DEBUG' } }
|
||||
# - { name: HASH_DEBUG, env: { cppflags: '-DHASH_DEBUG' } }
|
||||
# - { name: ID_TABLE_DEBUG, env: { cppflags: '-DID_TABLE_DEBUG' } }
|
||||
# - { name: RGENGC_DEBUG=-1, env: { cppflags: '-DRGENGC_DEBUG=-1' } }
|
||||
# - { name: SYMBOL_DEBUG, env: { cppflags: '-DSYMBOL_DEBUG' } }
|
||||
|
||||
# - { name: RGENGC_CHECK_MODE, env: { cppflags: '-DRGENGC_CHECK_MODE' } }
|
||||
# - { name: VM_CHECK_MODE, env: { cppflags: '-DVM_CHECK_MODE' } }
|
||||
|
||||
# - { name: USE_EMBED_CI=0, env: { cppflags: '-DUSE_EMBED_CI=0' } }
|
||||
- name: USE_FLONUM=0
|
||||
env:
|
||||
cppflags: '-DUSE_FLONUM=0'
|
||||
# yjit requires FLONUM for the pointer tagging scheme
|
||||
append_configure: '--disable-yjit'
|
||||
# - { name: USE_GC_MALLOC_OBJ_INFO_DETAILS, env: { cppflags: '-DUSE_GC_MALLOC_OBJ_INFO_DETAILS' } }
|
||||
# - { name: USE_LAZY_LOAD, env: { cppflags: '-DUSE_LAZY_LOAD' } }
|
||||
# - { name: USE_SYMBOL_GC=0, env: { cppflags: '-DUSE_SYMBOL_GC=0' } }
|
||||
# - { name: USE_THREAD_CACHE=0, env: { cppflags: '-DUSE_THREAD_CACHE=0' } }
|
||||
- { name: USE_RUBY_DEBUG_LOG=1, env: { cppflags: '-DUSE_RUBY_DEBUG_LOG=1' } }
|
||||
# - { name: USE_DEBUG_COUNTER, env: { cppflags: '-DUSE_DEBUG_COUNTER=1', RUBY_DEBUG_COUNTER_DISABLE: '1' } }
|
||||
- { name: SHARABLE_MIDDLE_SUBSTRING, env: { cppflags: '-DSHARABLE_MIDDLE_SUBSTRING=1' } }
|
||||
|
||||
# - { name: DEBUG_FIND_TIME_NUMGUESS, env: { cppflags: '-DDEBUG_FIND_TIME_NUMGUESS' } }
|
||||
# - { name: DEBUG_INTEGER_PACK, env: { cppflags: '-DDEBUG_INTEGER_PACK' } }
|
||||
# - { name: ENABLE_PATH_CHECK, env: { cppflags: '-DENABLE_PATH_CHECK' } }
|
||||
|
||||
# - { name: GC_DEBUG_STRESS_TO_CLASS, env: { cppflags: '-DGC_DEBUG_STRESS_TO_CLASS' } }
|
||||
# - { name: GC_ENABLE_LAZY_SWEEP=0, env: { cppflags: '-DGC_ENABLE_LAZY_SWEEP=0' } }
|
||||
# - { name: GC_PROFILE_DETAIL_MEMOTY, env: { cppflags: '-DGC_PROFILE_DETAIL_MEMOTY' } }
|
||||
# - { name: GC_PROFILE_MORE_DETAIL, env: { cppflags: '-DGC_PROFILE_MORE_DETAIL' } }
|
||||
|
||||
# - { name: CALC_EXACT_MALLOC_SIZE, env: { cppflags: '-DCALC_EXACT_MALLOC_SIZE' } }
|
||||
# - { name: MALLOC_ALLOCATED_SIZE_CHECK, env: { cppflags: '-DMALLOC_ALLOCATED_SIZE_CHECK' } }
|
||||
|
||||
# - { name: IBF_ISEQ_ENABLE_LOCAL_BUFFER, env: { cppflags: '-DIBF_ISEQ_ENABLE_LOCAL_BUFFER' } }
|
||||
|
||||
# - { name: RGENGC_ESTIMATE_OLDMALLOC, env: { cppflags: '-DRGENGC_ESTIMATE_OLDMALLOC' } }
|
||||
# - { name: RGENGC_FORCE_MAJOR_GC, env: { cppflags: '-DRGENGC_FORCE_MAJOR_GC' } }
|
||||
# - { name: RGENGC_OBJ_INFO, env: { cppflags: '-DRGENGC_OBJ_INFO' } }
|
||||
# - { name: RGENGC_PROFILE, env: { cppflags: '-DRGENGC_PROFILE' } }
|
||||
|
||||
# - { name: VM_DEBUG_BP_CHECK, env: { cppflags: '-DVM_DEBUG_BP_CHECK' } }
|
||||
# - { name: VM_DEBUG_VERIFY_METHOD_CACHE, env: { cppflags: '-DVM_DEBUG_VERIFY_METHOD_CACHE' } }
|
||||
|
||||
- { name: enable-yjit, env: { append_configure: '--enable-yjit --disable-rjit' } }
|
||||
- { name: enable-rjit, env: { append_configure: '--enable-rjit --disable-yjit' } }
|
||||
- { name: YJIT_FORCE_ENABLE, env: { cppflags: '-DYJIT_FORCE_ENABLE' } }
|
||||
# - { name: RJIT_FORCE_ENABLE, env: { cppflags: '-DRJIT_FORCE_ENABLE' } }
|
||||
- { name: UNIVERSAL_PARSER, env: { cppflags: '-DUNIVERSAL_PARSER' } }
|
||||
|
||||
name: ${{ matrix.entry.name }}
|
||||
|
||||
compile1:
|
||||
name: 'omnibus compilations, #1'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || matrix.entry.env.default_cc || 'clang-18' }}
|
||||
options: --user root
|
||||
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|
@ -227,80 +41,347 @@ jobs:
|
|||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.event.pull_request.user.login == 'dependabot[bot]')
|
||||
)}}
|
||||
|
||||
env: ${{ matrix.entry.env || matrix.env }}
|
||||
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- run: id
|
||||
working-directory:
|
||||
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- name: 'clang 18 LTO'
|
||||
uses: './.github/actions/compilers'
|
||||
with:
|
||||
sparse-checkout-cone-mode: false
|
||||
sparse-checkout: /.github
|
||||
|
||||
- uses: ./.github/actions/setup/directories
|
||||
tag: clang-18
|
||||
with_gcc: 'clang-18 -flto=auto'
|
||||
optflags: '-O2'
|
||||
enable_shared: false
|
||||
- name: 'GCC 13 LTO'
|
||||
uses: './.github/actions/compilers'
|
||||
with:
|
||||
srcdir: src
|
||||
builddir: build
|
||||
makeup: true
|
||||
clean: true
|
||||
tag: gcc-13
|
||||
with_gcc: 'gcc-13 -flto=auto -ffat-lto-objects -Werror=lto-type-mismatch'
|
||||
optflags: '-O2'
|
||||
enable_shared: false
|
||||
|
||||
- name: Run configure
|
||||
run: >
|
||||
../src/configure -C ${default_configure} ${append_configure}
|
||||
--${{
|
||||
matrix.entry.crosshost && 'host' || 'with-gcc'
|
||||
}}=${{
|
||||
matrix.entry.crosshost || '"${default_cc}${append_cc:+ $append_cc}"'
|
||||
}}
|
||||
--${{ matrix.entry.shared || 'enable' }}-shared
|
||||
compile2:
|
||||
name: 'omnibus compilations, #2'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 13', with: { tag: 'gcc-13' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 12', with: { tag: 'gcc-12' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 11', with: { tag: 'gcc-11' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 10', with: { tag: 'gcc-10' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 9', with: { tag: 'gcc-9' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 8', with: { tag: 'gcc-8' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GCC 7', with: { tag: 'gcc-7' } }
|
||||
|
||||
- name: Add to ext/Setup
|
||||
id: ext-setup
|
||||
run: |
|
||||
mkdir ext
|
||||
cd ext
|
||||
for ext in {${{ matrix.entry.static-exts }}}; do
|
||||
echo "${ext}"
|
||||
done >> Setup
|
||||
if: ${{ (matrix.entry.static-exts || '') != '' }}
|
||||
compile3:
|
||||
name: 'omnibus compilations, #3'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 19', with: { tag: 'clang-19' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 18', with: { tag: 'clang-18' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 17', with: { tag: 'clang-17' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 16', with: { tag: 'clang-16' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 15', with: { tag: 'clang-15' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 14', with: { tag: 'clang-14' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 13', with: { tag: 'clang-13' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 12', with: { tag: 'clang-12' } }
|
||||
|
||||
- name: Clean up ext/Setup
|
||||
uses: gacts/run-and-post-run@4683764dd706df847f57b9bed39d08164bcd2690 # v1.4.1
|
||||
with:
|
||||
shell: bash
|
||||
working-directory: build
|
||||
post: rm ext/Setup
|
||||
if: ${{ steps.ext-setup.outcome == 'success' }}
|
||||
compile4:
|
||||
name: 'omnibus compilations, #4'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 11', with: { tag: 'clang-11' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 10', with: { tag: 'clang-10' } }
|
||||
# llvm-objcopy<=9 doesn't have --wildcard. It compiles, but leaves Rust symbols in libyjit.o.
|
||||
- { uses: './.github/actions/compilers', name: 'clang 9', with: { tag: 'clang-9', append_configure: '--disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 8', with: { tag: 'clang-8', append_configure: '--disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 7', with: { tag: 'clang-7', append_configure: '--disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'clang 6', with: { tag: 'clang-6.0', append_configure: '--disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'ext/Setup', with: { static_exts: 'etc json/* */escape' } }
|
||||
|
||||
- run: make showflags
|
||||
compile5:
|
||||
name: 'omnibus compilations, #5'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
# -Wno-strict-prototypes is necessary with current clang-15 since
|
||||
# older autoconf generate functions without prototype and -pedantic
|
||||
# now implies strict-prototypes. Disabling the error but leaving the
|
||||
# warning generates a lot of noise from use of ANYARGS in
|
||||
# rb_define_method() and friends.
|
||||
# See: https://github.com/llvm/llvm-project/commit/11da1b53d8cd3507959022cd790d5a7ad4573d94
|
||||
- { uses: './.github/actions/compilers', name: 'C99', with: { CFLAGS: '-std=c99 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C11', with: { CFLAGS: '-std=c11 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C17', with: { CFLAGS: '-std=c17 -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C23', with: { CFLAGS: '-std=c2x -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++98', with: { CXXFLAGS: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++11', with: { CXXFLAGS: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++14', with: { CXXFLAGS: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++17', with: { CXXFLAGS: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++20', with: { CXXFLAGS: '-std=c++20 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++23', with: { CXXFLAGS: '-std=c++23 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
- { uses: './.github/actions/compilers', name: 'C++26', with: { CXXFLAGS: '-std=c++26 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }
|
||||
|
||||
- run: make
|
||||
compile6:
|
||||
name: 'omnibus compilations, #6'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: '-O0', with: { optflags: '-O0 -march=x86-64 -mtune=generic' } }
|
||||
- { uses: './.github/actions/compilers', name: '-O3', with: { optflags: '-O3 -march=x86-64 -mtune=generic', check: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'gmp', with: { append_configure: '--with-gmp', check: 'ruby/test_bignum.rb' } }
|
||||
- { uses: './.github/actions/compilers', name: 'jemalloc', with: { append_configure: '--with-jemalloc' } }
|
||||
- { uses: './.github/actions/compilers', name: 'valgrind', with: { append_configure: '--with-valgrind' } }
|
||||
- { uses: './.github/actions/compilers', name: 'coroutine=ucontext', with: { append_configure: '--with-coroutine=ucontext' } }
|
||||
- { uses: './.github/actions/compilers', name: 'coroutine=pthread', with: { append_configure: '--with-coroutine=pthread' } }
|
||||
|
||||
- run: make test
|
||||
compile7:
|
||||
name: 'omnibus compilations, #7'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'disable-jit', with: { append_configure: '--disable-yjit --disable-rjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'disable-dln', with: { append_configure: '--disable-dln' } }
|
||||
- { uses: './.github/actions/compilers', name: 'enable-mkmf-verbose', with: { append_configure: '--enable-mkmf-verbose' } }
|
||||
- { uses: './.github/actions/compilers', name: 'disable-rubygems', with: { append_configure: '--disable-rubygems' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RUBY_DEVEL', with: { append_configure: '--enable-devel' } }
|
||||
- { uses: './.github/actions/compilers', name: 'SHARED_GC', with: { append_configure: '--with-shared-gc=/home/runner/shared-gc' } }
|
||||
- { uses: './.github/actions/compilers', name: 'OPT_THREADED_CODE=0', with: { cppflags: '-DOPT_THREADED_CODE=0' } }
|
||||
- { uses: './.github/actions/compilers', name: 'OPT_THREADED_CODE=1', with: { cppflags: '-DOPT_THREADED_CODE=1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'OPT_THREADED_CODE=2', with: { cppflags: '-DOPT_THREADED_CODE=2' } }
|
||||
|
||||
- run: make install
|
||||
if: ${{ matrix.entry.check }}
|
||||
compile8:
|
||||
name: 'omnibus compilations, #8'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'NDEBUG', with: { cppflags: '-DNDEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RUBY_DEBUG', with: { cppflags: '-DRUBY_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'ARRAY_DEBUG', with: { cppflags: '-DARRAY_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'BIGNUM_DEBUG', with: { cppflags: '-DBIGNUM_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'CCAN_LIST_DEBUG', with: { cppflags: '-DCCAN_LIST_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'CPDEBUG=-1', with: { cppflags: '-DCPDEBUG=-1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'ENC_DEBUG', with: { cppflags: '-DENC_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GC_DEBUG', with: { cppflags: '-DGC_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'HASH_DEBUG', with: { cppflags: '-DHASH_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'ID_TABLE_DEBUG', with: { cppflags: '-DID_TABLE_DEBUG' } }
|
||||
|
||||
- run: make test-tool
|
||||
if: ${{ matrix.entry.check }}
|
||||
compile9:
|
||||
name: 'omnibus compilations, #9'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_DEBUG=-1', with: { cppflags: '-DRGENGC_DEBUG=-1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'SYMBOL_DEBUG', with: { cppflags: '-DSYMBOL_DEBUG' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_CHECK_MODE', with: { cppflags: '-DRGENGC_CHECK_MODE' } }
|
||||
- { uses: './.github/actions/compilers', name: 'VM_CHECK_MODE', with: { cppflags: '-DVM_CHECK_MODE' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_EMBED_CI=0', with: { cppflags: '-DUSE_EMBED_CI=0' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_FLONUM=0', with: { cppflags: '-DUSE_FLONUM=0', append_configure: '--disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_LAZY_LOAD', with: { cppflags: '-DUSE_LAZY_LOAD' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_SYMBOL_GC=0', with: { cppflags: '-DUSE_SYMBOL_GC=0' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_THREAD_CACHE=0', with: { cppflags: '-DUSE_THREAD_CACHE=0' } }
|
||||
|
||||
- run: make test-all TESTS="-- $tests"
|
||||
if: ${{ matrix.entry.check }}
|
||||
env:
|
||||
tests: ${{ matrix.entry.check == true && 'ruby -ext-' || matrix.entry.check }}
|
||||
compileX:
|
||||
name: 'omnibus compilations, #10'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_RUBY_DEBUG_LOG=1', with: { cppflags: '-DUSE_RUBY_DEBUG_LOG=1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'USE_DEBUG_COUNTER', with: { cppflags: '-DUSE_DEBUG_COUNTER=1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'SHARABLE_MIDDLE_SUBSTRING', with: { cppflags: '-DSHARABLE_MIDDLE_SUBSTRING=1' } }
|
||||
- { uses: './.github/actions/compilers', name: 'DEBUG_FIND_TIME_NUMGUESS', with: { cppflags: '-DDEBUG_FIND_TIME_NUMGUESS' } }
|
||||
- { uses: './.github/actions/compilers', name: 'DEBUG_INTEGER_PACK', with: { cppflags: '-DDEBUG_INTEGER_PACK' } }
|
||||
- { uses: './.github/actions/compilers', name: 'ENABLE_PATH_CHECK', with: { cppflags: '-DENABLE_PATH_CHECK' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GC_DEBUG_STRESS_TO_CLASS', with: { cppflags: '-DGC_DEBUG_STRESS_TO_CLASS' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GC_ENABLE_LAZY_SWEEP=0', with: { cppflags: '-DGC_ENABLE_LAZY_SWEEP=0' } }
|
||||
- { uses: './.github/actions/compilers', name: 'GC_PROFILE_DETAIL_MEMORY', with: { cppflags: '-DGC_PROFILE_DETAIL_MEMORY' } }
|
||||
|
||||
- run: make test-spec
|
||||
env:
|
||||
CHECK_LEAKS: true
|
||||
if: ${{ matrix.entry.check }}
|
||||
compileB:
|
||||
name: 'omnibus compilations, #11'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'GC_PROFILE_MORE_DETAIL', with: { cppflags: '-DGC_PROFILE_MORE_DETAIL' } }
|
||||
- { uses: './.github/actions/compilers', name: 'MALLOC_ALLOCATED_SIZE_CHECK', with: { cppflags: '-DMALLOC_ALLOCATED_SIZE_CHECK' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_ESTIMATE_OLDMALLOC', with: { cppflags: '-DRGENGC_ESTIMATE_OLDMALLOC' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_FORCE_MAJOR_GC', with: { cppflags: '-DRGENGC_FORCE_MAJOR_GC' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_OBJ_INFO', with: { cppflags: '-DRGENGC_OBJ_INFO' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RGENGC_PROFILE', with: { cppflags: '-DRGENGC_PROFILE' } }
|
||||
- { uses: './.github/actions/compilers', name: 'VM_DEBUG_BP_CHECK', with: { cppflags: '-DVM_DEBUG_BP_CHECK' } }
|
||||
- { uses: './.github/actions/compilers', name: 'VM_DEBUG_VERIFY_METHOD_CACHE', with: { cppflags: '-DVM_DEBUG_VERIFY_METHOD_CACHE' } }
|
||||
|
||||
compileC:
|
||||
name: 'omnibus compilations, #12'
|
||||
runs-on: ubuntu-latest
|
||||
if: >-
|
||||
${{!(false
|
||||
|| contains(github.event.head_commit.message, '[DOC]')
|
||||
|| contains(github.event.head_commit.message, 'Document')
|
||||
|| contains(github.event.pull_request.title, '[DOC]')
|
||||
|| contains(github.event.pull_request.title, 'Document')
|
||||
|| contains(github.event.pull_request.labels.*.name, 'Document')
|
||||
|| (github.event_name == 'push' && github.actor == 'dependabot[bot]')
|
||||
)}}
|
||||
services: { docuum: { image: 'stephanmisc/docuum', options: '--init', volumes: [ '/root', '/var/run/docker.sock:/var/run/docker.sock' ] } }
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with: { sparse-checkout-cone-mode: false, sparse-checkout: /.github }
|
||||
- { uses: './.github/actions/setup/directories', with: { srcdir: 'src', builddir: 'build', makeup: true } }
|
||||
- { uses: './.github/actions/compilers', name: 'enable-yjit', with: { append_configure: '--enable-yjit --disable-rjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'enable-rjit', with: { append_configure: '--enable-rjit --disable-yjit' } }
|
||||
- { uses: './.github/actions/compilers', name: 'YJIT_FORCE_ENABLE', with: { cppflags: '-DYJIT_FORCE_ENABLE' } }
|
||||
- { uses: './.github/actions/compilers', name: 'RJIT_FORCE_ENABLE', with: { cppflags: '-DRJIT_FORCE_ENABLE' } }
|
||||
- { uses: './.github/actions/compilers', name: 'UNIVERSAL_PARSER', with: { cppflags: '-DUNIVERSAL_PARSER' } }
|
||||
|
||||
compilemax:
|
||||
name: 'omnibus compilations, result'
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ always() }}
|
||||
needs:
|
||||
- 'compile1'
|
||||
- 'compile2'
|
||||
- 'compile3'
|
||||
- 'compile4'
|
||||
- 'compile5'
|
||||
- 'compile6'
|
||||
- 'compile7'
|
||||
- 'compile8'
|
||||
- 'compile9'
|
||||
- 'compileX'
|
||||
- 'compileB'
|
||||
- 'compileC'
|
||||
steps:
|
||||
- uses: ./.github/actions/slack
|
||||
with:
|
||||
label: ${{ matrix.entry.name }}
|
||||
label: 'omnibus'
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
|
||||
if: ${{ failure() }}
|
||||
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
|
||||
- run: false
|
||||
working-directory:
|
||||
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
|
||||
|
||||
defaults:
|
||||
run:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue