-
Notifications
You must be signed in to change notification settings - Fork 14
Running your own client
The client requires the requests
and DaemonLite
python modules to run. Install them via pip
or
whatever installation method you prefer.
There are two main pieces of information you need to run your own client.
- Server URL: For example https://www.moosebuild.org
- Build key: This is generated for you when you first sign in to Civet and will be displayed on the "recipes" page. This should not be shared.
The basic client is client/client.py
. It is intended to run via command line or cron. All
parameters are put on the command line. You will also need to set and export the BUILD_ROOT
environment variable to where you want all testing done.
Other useful environment variables include:
-
MOOSE_JOBS
: Will causemake
andrun_tests
to use-j $MOOSE_JOBS
-
MAKE_JOBS
: Will causemake
to use-j $MAKE_JOBS
. OverridesMOOSE_JOBS
-
MAX_MAKE_LOAD
: Will causemake
to use-j $MAKE_JOBS -l $MAX_MAKE_LOAD
-
TEST_JOBS
: Will causerun_tests
to use-j $TEST_JOBS
. OverridesMOOSE_JOBS
-
MAX_TEST_LOAD
: Will causerun_tests
to use-j $TEST_JOBS -l $MAX_TEST_LOAD
An example command line might be (executed in the client
directory):
./client.py --url https://www.moosebuild.org --build-key <Your assigned key> --configs linux-gnu --name <username>_client --insecure
If your recipes need a certain environment to be run in, for example, a certain set of modules loaded, or PATH
to be set, it is usually better to set them in the terminal in which the client is run. Every step of a recipe is run in its own process and inherits the environment from the client. So if you need modules loaded, you could do a module purge
followed by a module load ...
in every step of your recipe or just set it once in the client terminal before launching the client.
The INL client is in client/inl_client.py
and is what is used internally at INL. It runs as a daemon and has the ability
to load different modules based on the build config. It can also poll more than one Civet
server. At the top of client/inl_client.py
is where you configure the servers ( and the associated build keys ) as well
as what modules are loaded on a particular build config.
BUILD_ROOT
and MOOSE_JOBS
environment variables are set automatically but you can still export
MAKE_JOBS
, MAX_MAKE_LOAD
, TEST_JOBS
, and MAX_TEST_LOAD
.
To start the client, an example command might be:
./inl_client.py --num-jobs 12 --client 0 --daemon start
To quit the client, an example command might be:
./inl_client.py --num-jobs 12 --client 0 --daemon stop