mirror of
https://github.com/ruby/ruby.git
synced 2026-01-28 13:04:22 +00:00
91 lines
2.3 KiB
Bash
Executable File
91 lines
2.3 KiB
Bash
Executable File
#! /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)))"
|
|
|
|
case "x${INPUT_ENABLE_SHARED}" in
|
|
x | xno | xfalse )
|
|
enable_shared='--disable-shared'
|
|
;;
|
|
*)
|
|
enable_shared='--enable-shared'
|
|
;;
|
|
esac
|
|
|
|
pushd ${builddir}
|
|
|
|
grouped git config --global --add safe.directory ${srcdir}
|
|
|
|
grouped ${srcdir}/configure \
|
|
-C \
|
|
--with-gcc="${INPUT_WITH_GCC}" \
|
|
--enable-debug-env \
|
|
--disable-install-doc \
|
|
--with-ext=-test-/cxxanyargs,+ \
|
|
--without-git \
|
|
${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
|
|
|
|
if [ -n "$INPUT_TEST_ALL" ]; then
|
|
tests=" -- $INPUT_TEST_ALL"
|
|
else
|
|
tests=" -- ruby -ext-"
|
|
fi
|
|
|
|
pushd ${builddir}
|
|
|
|
grouped make showflags
|
|
grouped make all
|
|
# grouped make install
|
|
|
|
# Run only `make test` by default. Run other tests if specified.
|
|
grouped make test
|
|
if [[ -n "$INPUT_CHECK" ]]; then grouped make test-tool; fi
|
|
if [[ -n "$INPUT_CHECK" || -n "$INPUT_TEST_ALL" ]]; then grouped make test-all TESTS="$tests"; fi
|
|
if [[ -n "$INPUT_CHECK" || -n "$INPUT_TEST_SPEC" ]]; then grouped env CHECK_LEAKS=true make test-spec MSPECOPT="$INPUT_TEST_SPEC"; fi
|