should leave it to do_cmake.sh to decide which python3 version to use,
there is case that we have multiple python3 installed, but only one of them
is fully supported by the distro, in the sense that python3-* packages
are packaged for that python3.
Signed-off-by: Kefu Chai <kchai@redhat.com>
so we can at least build-test the rwl cache plugin in "make check" run.
this is an opt-in option which is only enabled if WITH_PMEM is "true",
we will set it in the corresponding ceph-build job.
Signed-off-by: Kefu Chai <kchai@redhat.com>
to enable XUnit plugin of jenkins to consume the ctest output and
publish it in the dashboard, we need to
* let ctest generate XML output instead of plain text output
* do not fail the test if any test case fails. this allows the publisher
to do its job by checking the XML output.
* prevent ctest from compressing the output. see
https://issues.jenkins.io/browse/JENKINS-21737
Signed-off-by: Kefu Chai <kchai@redhat.com>
without this change the seastar based tests fail on host with 48 cores,
because the /proc/sys/fs/aio-nr used by the tests is greater than
1048576. if run-make-check.sh is used to launch the test, the default
job number is `$(nproc) / 2`, and the peak number of /proc/sys/fs/aio-nr
when running ctest was 3190848 when testing on the 48-core host.
so we need to increase fs.aio-max-nr accordingly to the available cores
on the host.
Signed-off-by: Kefu Chai <kchai@redhat.com>
We 'set -e' but that is ignored because 'build tests' is executed in a
'&&' list (see 'man set') so move the echo to the following line.
Follow-up to 03ff2146f9
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
run-make-check.sh is used by ceph-build/ceph-pull-requests/build/build
to run "make check". this change prepares run-make-check.sh so that we
can enable ZBD build on demand once ceph-build is updated accordingly.
Signed-off-by: Kefu Chai <kchai@redhat.com>
With 5e9a1d95c9 ("run-make-check.sh: extract run-make.sh"), this log
message is actively confusing. At this point we just have the binaries,
no tests have run yet (and if -N is passed through CHECK_MAKEOPTS, none
will).
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
* drop WITH_PYTHON2 option
* print warning message if WITH_PYTHON3 is disabled
* drop MGR_PYTHON_VERSION option, as we don't support use different
python version for python binding and ceph-mgr embedded python
interpreter anymore. as before switching to python3-only build,
we can build python3 and python2 python bindings, and ceph-mgr
can use either of them. but after switching to python3-only
build, ceph-mgr has to use whatever python version used to
build python binding.
* move WITH_PYTHON3 option to $top_srcdir/CMakeLists.txt, as ceph-mgr
and python binding will share this option.
* hardware ${PYTHON_VERSION} to 3
* hardware ${Python${PYTHON_VERSION}_VERSION_MAJOR} to 3
* only build boost library with python3
* s/Python_EXECUTABLE/Python3_EXECUTABLE/
* update the build scripts and packagings accordingly
* rename all cython${PYTHON_VERSION}_* targets to cython_*
* update distutils_install_module() so it does not take python_version
parameter anymore.
Signed-off-by: Kefu Chai <kchai@redhat.com>
so we can reuse run-make.sh for building the artifact used by other
tests than "make check", for instance, dashboard's E2E test and
crimson's performance test.
Signed-off-by: Kefu Chai <kchai@redhat.com>
but we still enable it in `run-make-check.sh`
* cmake: disable SPDK by default
* run-make-check.sh: enable WITH_SPDK so at least we can ensure it
builds
* deb,rpm: add uuid-dev / libuuid-devel as a "make check" dependency
Fixes: https://tracker.ceph.com/issues/41330
Signed-off-by: Kefu Chai <kchai@redhat.com>
Before this patch, run-make-check.sh was setting the cmake options for
py3 build based only on the absence of a python2 binary in the system.
This was not sufficiently deterministic, and it didn't help folks who
run do_cmake.sh directly.
With this patch, we explicitly force the py3 build in do_cmake.sh, for
those OS types/versions we know need it.
Fixes: https://tracker.ceph.com/issues/37330
Signed-off-by: Nathan Cutler <ncutler@suse.com>
ceph-libboost1.67 repo is setup to satisfy the libboost dependencies
used when building ceph. now it offers arm64 and amd64 builds for xenial.
* install-deps.sh: add ceph-libboost1.67 repo hosted on chacra if the
building host does not have any of the listed ceph-libboost1.67
packages installed
* run-make-check.sh: add "-DWITH_SYSTEM_BOOST=ON
-DBOOST_ROOT=/opt/ceph" if include/boost/config.hpp is found
under /opt/ceph
See-also: http://tracker.ceph.com/issues/25186
Signed-off-by: Kefu Chai <kchai@redhat.com>
The actual code is resetting the statistics before doing the actual compilation and prints them after the build.
That is nice to understand how much the cache was used but doesn't help understanding how much it _could_ have been used.
This patch is adding a reporting (-s) when cleaning the statistics so we can estimate :
- the actual number of files in cache
- the actual size of the cache
With this two missing information, its now possible estimate if there is some miss-usage of the cache.
Signed-off-by: Erwan Velu <erwan@redhat.com>
Since we source install-deps.sh, it replaces our trap with its own,
so we have to reinstate our trap after it finishes.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Since run-make-check.sh already ensures that ccache is installed,
it makes sense to let everyone benefit from the ccache
tweaks introduced by 4cb5a59053
Note 1: The previous solution using "date" would cause build tools to reset
their timestamps after 24 hours, on subsequent runs of run-make-check.sh.
In order to maximize ccache effectiveness, this commit sets SOURCE_DATE_EPOCH
to a fixed value: the number of seconds elapsed since the Unix epoch as at
January 1, 2000 (chosen to commemorate Y2K armageddon).
Note 2: this commit introduces "set -e". This was actually in effect
before, via "source install-deps.sh". Better to make it explicit.
Fixes: http://tracker.ceph.com/issues/24777
Signed-off-by: Nathan Cutler <ncutler@suse.com>
When run-make-check is run by the CI, some tuning can be performed to
speedup the build.
This commit :
- Detect jenkins by searching JENKINS_HOME env variable
- Defines the SOURCE_DATE_EPOCH to enforce a stable date across builds
- Ask cmake not to use the git versioning which adds useless entropy for a temporary build (ENABLE_GIT_VERSION=OFF)
- Define the ccache slopiness to increase efficiency
- Increase the ccache size to save multiple builds to maximise cache hit between PRs
- Print ccache statistics to evaluate ccache efficiency
Signed-off-by: Erwan Velu <erwan@redhat.com>
Building Ceph without Python 2 requires passing certain options to cmake.
Fixes: http://tracker.ceph.com/issues/23035
Signed-off-by: Nathan Cutler <ncutler@suse.com>
test/fio: enable objectstore FIO plugin building without the need to install and build FIO source code
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
please note, run-make-check.sh sources install-deps.sh here to import
the $PATH and other environmental variables, which could be changed by
the the DTS "enable" script.
Signed-off-by: Kefu Chai <kchai@redhat.com>
ulimit is a shell builtin like cd, not a separate program.
sudo looks for a binary to run, but there is no ulimit binary,
then you will get an error message like:
"sudo: ulimit: command not found"
ulimit can only be run with root if you want raise the ulimit -n
Change-Id: I59ab09240cb15cabe5b0a7342c3f562cd50c75e9
Signed-off-by: yang.wang <yang.wang@easystack.cn>
/bin/bash is a Linuxism. Other operating systems install bash to
different paths. Use /usr/bin/env in shebangs to find bash.
Signed-off-by: Alan Somers <asomers@gmail.com>