Building Test via buildtest (buildtest build)

This guide will get you familiar with buildtest command line interface. Once you complete this section, you can proceed to writing buildspecs section where we will cover how to write buildspecs.

Once you install buildtest, you should find the buildtest command in your $PATH. You can check the path to buildtest command by running:

$ which buildtest

If you don’t see buildtest go back and install buildtest.

When you clone buildtest, you also get a set of buildspecs that you can run on your system. The buildtest build command is used for building and running tests. Buildtest will read one or more buildspecs file that adheres to one of the buildtest schemas. For a complete list of build options please run buildtest build --help.

Note

buildtest bd is an alias for buildtest build command.

Build Usage

$ buildtest build --help
usage: buildtest [options] [COMMANDS] build [-h] [-b BUILDSPEC] [-x EXCLUDE] [-e EXECUTOR] [-t TAGS] [-f FILTER]
                                            [--helpfilter] [--disable-executor-check] [-k]
                                            [--max-pend-time MAX_PEND_TIME] [--poll-interval POLL_INTERVAL]
                                            [--rebuild REBUILD] [-r REPORT] [--retry RETRY] [-s {parse,build}]
                                            [--testdir TESTDIR]

optional arguments:
  -h, --help            show this help message and exit

discover:
  select buildspecs

  -b BUILDSPEC, --buildspec BUILDSPEC
                        Specify a buildspec (file or directory) to build. A buildspec must end in '.yml' extension.
  -x EXCLUDE, --exclude EXCLUDE
                        Exclude one or more buildspecs (file or directory) from processing. A buildspec must end in
                        '.yml' extension.
  -e EXECUTOR, --executor EXECUTOR
                        Discover buildspecs by executor name found in buildspec cache
  -t TAGS, --tags TAGS  Discover buildspecs by tags found in buildspec cache

filter:
  Filter tests

  -f FILTER, --filter FILTER
                        Filter buildspec based on tags, type, or maintainers. Usage: --filter key1=val1,key2=val2
  --helpfilter          Show available filter fields used with --filter option

extra:
  All extra options

  --disable-executor-check
                        Disable executor check during configuration check. By default these checks are enforced for
                        Local, Slurm, PBS, LSF, and Cobalt Executor.
  -k, --keep-stage-dir  Keep stage directory after job completion.
  --max-pend-time MAX_PEND_TIME
                        Specify Maximum Pending Time (sec) for job before cancelling job. This only applies for batch
                        job submission.
  --poll-interval POLL_INTERVAL
                        Specify Poll Interval (sec) for polling batch jobs
  --rebuild REBUILD     Rebuild test X number of times. Must be a positive number between [1-50]
  -r REPORT, --report REPORT
                        Specify a report file where tests will be written.
  --retry RETRY         Retry failed jobs
  -s {parse,build}, --stage {parse,build}
                        control behavior of buildtest build
  --testdir TESTDIR     Specify a custom test directory where to write tests. This overrides configuration file and
                        default location.

Building a Test

To build a test, we use the --buildspec or short option -b to specify the path to buildspec file. Let’s see some examples, first we specify a full path to buildspec file. In this example, buildtest will discover buildspecs followed by parsing the test with appropriate schema and generate a shell script that is run by buildtest. You can learn more about build and test process.

$ buildtest build -b $BUILDTEST_ROOT/tutorials/vars.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:54:50
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                           |
+=================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml |
+-------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID


Total builder objects created: 1
builders: [variables_bash/98b07db8]


name            id        description                      buildspecs
--------------  --------  -------------------------------  -----------------------------------------------------------------------------------------------
variables_bash  98b07db8  Declare shell variables in bash  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name           | id       | type   | executor           | tags          | testpath
----------------+----------+--------+--------------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 variables_bash | 98b07db8 | script | generic.local.bash | ['tutorials'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/98b07db8/variables_bash_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

variables_bash/98b07db8: completed with returncode: 0
variables_bash/98b07db8: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/98b07db8/variables_bash.out
variables_bash/98b07db8: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/98b07db8/variables_bash.err
______________________________
Launching test: variables_bash
Test ID: 98b07db8-9b3e-4ff0-b526-1ebcebbc3a1e
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/98b07db8/variables_bash_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name           | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
----------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 variables_bash | 98b07db8 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.012987



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_8xn_louq.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Note

buildtest will only read buildspecs with .yml extension, if you specify a .yaml it will be ignored by buildtest.

The --buildspec option can be used to specify a file or directory path. If you want to build multiple buildspecs in a directory you can specify the directory path and buildtest will recursively search for all .yml files. In the next example, we build all tests in directory general_tests/configuration.

$ buildtest build -b general_tests/configuration/
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:12
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b general_tests/configuration/

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                               |
+=====================================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml                |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml          |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml           |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml             |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml |
+-------------------------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  5
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  5

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  5
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml: VALID


Total builder objects created: 10
builders: [ulimit_filelock_unlimited/b1b5ebdc, ulimit_cputime_unlimited/aa16f2ae, ulimit_stacksize_unlimited/7204f37a, ulimit_vmsize_unlimited/247638c0, ulimit_filedescriptor_4096/677a3ea5, ulimit_max_user_process_2048/81105021, ssh_localhost_remotecommand/d99f5389, kernel_swapusage/c6406429, root_disk_usage/6b5ebea2, systemd_default_target/daaa00e7]


name                          id        description                                                       buildspecs
----------------------------  --------  ----------------------------------------------------------------  -----------------------------------------------------------------------------------------------------------------------------------
ulimit_filelock_unlimited     b1b5ebdc  Check if file lock is set to unlimited in ulimits                 /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_cputime_unlimited      aa16f2ae  Check if cputime is set to unlimited in ulimits                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_stacksize_unlimited    7204f37a  Check if stack size is set to unlimited in ulimits                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_vmsize_unlimited       247638c0  Check virtual memory size and check if its set to unlimited       /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_filedescriptor_4096    677a3ea5  Check if open file descriptors limit is set to 4096               /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_max_user_process_2048  81105021  Check max number of user process limit is set to 2048             /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ssh_localhost_remotecommand   d99f5389  Test if ssh on localhost works and if we can run remote command.  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml
kernel_swapusage              c6406429  Retrieve Kernel Swap Usage                                        /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml
root_disk_usage               6b5ebea2  Check root disk usage and report if it exceeds threshold          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml
systemd_default_target        daaa00e7  check if default target is multi-user.target                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor           | tags                      | testpath
------------------------------+----------+--------+--------------------+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ulimit_filelock_unlimited    | b1b5ebdc | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/b1b5ebdc/ulimit_filelock_unlimited_build.sh
 ulimit_cputime_unlimited     | aa16f2ae | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/aa16f2ae/ulimit_cputime_unlimited_build.sh
 ulimit_stacksize_unlimited   | 7204f37a | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/7204f37a/ulimit_stacksize_unlimited_build.sh
 ulimit_vmsize_unlimited      | 247638c0 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/247638c0/ulimit_vmsize_unlimited_build.sh
 ulimit_filedescriptor_4096   | 677a3ea5 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/677a3ea5/ulimit_filedescriptor_4096_build.sh
 ulimit_max_user_process_2048 | 81105021 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/81105021/ulimit_max_user_process_2048_build.sh
 ssh_localhost_remotecommand  | d99f5389 | script | generic.local.bash | ['ssh']                   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/d99f5389/ssh_localhost_remotecommand_build.sh
 kernel_swapusage             | c6406429 | script | generic.local.bash | ['configuration']         | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/c6406429/kernel_swapusage_build.sh
 root_disk_usage              | 6b5ebea2 | script | generic.local.bash | ['filesystem', 'storage'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/6b5ebea2/root_disk_usage_build.sh
 systemd_default_target       | daaa00e7 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/daaa00e7/systemd_default_target_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

ulimit_filelock_unlimited/b1b5ebdc: completed with returncode: 0
ulimit_filelock_unlimited/b1b5ebdc: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/b1b5ebdc/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/b1b5ebdc: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/b1b5ebdc/ulimit_filelock_unlimited.err
ulimit_filelock_unlimited/b1b5ebdc: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/b1b5ebdc/ulimit_filelock_unlimited.out with regular expression  
ulimit_filelock_unlimited/b1b5ebdc: Regular Expression Match - Success!
ulimit_stacksize_unlimited/7204f37a: completed with returncode: 0
ulimit_stacksize_unlimited/7204f37a: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/7204f37a/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/7204f37a: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/7204f37a/ulimit_stacksize_unlimited.err
ulimit_stacksize_unlimited/7204f37a: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/7204f37a/ulimit_stacksize_unlimited.out with regular expression  
ulimit_stacksize_unlimited/7204f37a: Regular Expression Match - Failed!
ulimit_filedescriptor_4096/677a3ea5: completed with returncode: 0
ulimit_filedescriptor_4096/677a3ea5: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/677a3ea5/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/677a3ea5: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/677a3ea5/ulimit_filedescriptor_4096.err
ulimit_filedescriptor_4096/677a3ea5: performing regular expression - '^4096$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/677a3ea5/ulimit_filedescriptor_4096.out with regular expression  
ulimit_filedescriptor_4096/677a3ea5: Regular Expression Match - Failed!
ssh_localhost_remotecommand/d99f5389: completed with returncode: 255
ssh_localhost_remotecommand/d99f5389: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/d99f5389/ssh_localhost_remotecommand.out
ssh_localhost_remotecommand/d99f5389: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/d99f5389/ssh_localhost_remotecommand.err
ulimit_cputime_unlimited/aa16f2ae: completed with returncode: 0
ulimit_cputime_unlimited/aa16f2ae: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/aa16f2ae/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/aa16f2ae: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/aa16f2ae/ulimit_cputime_unlimited.err
ulimit_cputime_unlimited/aa16f2ae: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/aa16f2ae/ulimit_cputime_unlimited.out with regular expression  
ulimit_cputime_unlimited/aa16f2ae: Regular Expression Match - Success!
ulimit_vmsize_unlimited/247638c0: completed with returncode: 0
ulimit_vmsize_unlimited/247638c0: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/247638c0/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/247638c0: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/247638c0/ulimit_vmsize_unlimited.err
ulimit_vmsize_unlimited/247638c0: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/247638c0/ulimit_vmsize_unlimited.out with regular expression  
ulimit_vmsize_unlimited/247638c0: Regular Expression Match - Success!
ulimit_max_user_process_2048/81105021: completed with returncode: 0
ulimit_max_user_process_2048/81105021: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/81105021/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/81105021: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/81105021/ulimit_max_user_process_2048.err
ulimit_max_user_process_2048/81105021: performing regular expression - '^2048$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/81105021/ulimit_max_user_process_2048.out with regular expression  
ulimit_max_user_process_2048/81105021: Regular Expression Match - Failed!
kernel_swapusage/c6406429: completed with returncode: 127
kernel_swapusage/c6406429: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/c6406429/kernel_swapusage.out
kernel_swapusage/c6406429: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/c6406429/kernel_swapusage.err
root_disk_usage/6b5ebea2: completed with returncode: 0
root_disk_usage/6b5ebea2: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/6b5ebea2/root_disk_usage.out
root_disk_usage/6b5ebea2: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/6b5ebea2/root_disk_usage.err
systemd_default_target/daaa00e7: completed with returncode: 1
systemd_default_target/daaa00e7: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/daaa00e7/systemd_default_target.out
systemd_default_target/daaa00e7: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/daaa00e7/systemd_default_target.err
______________________________
Launching test: ulimit_filelock_unlimited
Test ID: b1b5ebdc-dc46-4979-a4dc-6087543fc867
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/b1b5ebdc/ulimit_filelock_unlimited_build.sh
______________________________
Launching test: ulimit_cputime_unlimited
Test ID: aa16f2ae-4389-4b94-b5b6-0e4a3635352e
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/aa16f2ae/ulimit_cputime_unlimited_build.sh
______________________________
Launching test: ulimit_stacksize_unlimited
Test ID: 7204f37a-7229-4b7d-9c7a-81fc31f0e6c0
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/7204f37a/ulimit_stacksize_unlimited_build.sh
______________________________
Launching test: ulimit_vmsize_unlimited
Test ID: 247638c0-e13f-4489-8197-e65b56ea94db
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/247638c0/ulimit_vmsize_unlimited_build.sh
______________________________
Launching test: ulimit_filedescriptor_4096
Test ID: 677a3ea5-d4ee-492f-8aca-24c59d7eefb9
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/677a3ea5/ulimit_filedescriptor_4096_build.sh
______________________________
Launching test: ulimit_max_user_process_2048
Test ID: 81105021-047b-4ed3-b73f-676c7b086dbd
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/81105021/ulimit_max_user_process_2048_build.sh
______________________________
Launching test: ssh_localhost_remotecommand
Test ID: d99f5389-93a9-49fd-95ed-695e1b733e08
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/d99f5389/ssh_localhost_remotecommand_build.sh
______________________________
Launching test: kernel_swapusage
Test ID: c6406429-ff5c-49b2-9315-d5bcfa2e3be7
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/c6406429/kernel_swapusage_build.sh
______________________________
Launching test: root_disk_usage
Test ID: 6b5ebea2-775e-4d52-bebe-7780a146a31d
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/6b5ebea2/root_disk_usage_build.sh
______________________________
Launching test: systemd_default_target
Test ID: daaa00e7-1225-4a6f-ae2d-741234477d87
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/daaa00e7/systemd_default_target_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                         | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
------------------------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 ulimit_filelock_unlimited    | b1b5ebdc | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.022418
 ulimit_cputime_unlimited     | aa16f2ae | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.01952
 ulimit_stacksize_unlimited   | 7204f37a | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.023393
 ulimit_vmsize_unlimited      | 247638c0 | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.024396
 ulimit_filedescriptor_4096   | 677a3ea5 | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.008116
 ulimit_max_user_process_2048 | 81105021 | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.021057
 kernel_swapusage             | c6406429 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          127 |  0.020363
 root_disk_usage              | 6b5ebea2 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.039046
 systemd_default_target       | daaa00e7 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |            1 |  0.040417
 ssh_localhost_remotecommand  | d99f5389 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          255 |  0.155613



Passed Tests: 4/10 Percentage: 40.000%
Failed Tests: 6/10 Percentage: 60.000%


Writing Logfile to: /tmp/buildtest_jpcua50c.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Building Multiple Buildspecs

You can append -b option to build multiple buildspecs in the same command. Buildtest will discover buildspecs for every argument (-b) and accumulate a list of buildspecs to run. In this example, we instruct buildtest to build a buildspec file and all buildspecs in a directory path.

$ buildtest build -b general_tests/configuration/ -b tutorials/vars.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:13
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b general_tests/configuration/ -b tutorials/vars.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                               |
+=====================================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml          |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml           |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml                |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml                                     |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml             |
+-------------------------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  6
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  6

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  6
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml: VALID


Total builder objects created: 11
builders: [ssh_localhost_remotecommand/93086006, kernel_swapusage/5ef212a6, ulimit_filelock_unlimited/ac5c8bd1, ulimit_cputime_unlimited/3914f699, ulimit_stacksize_unlimited/f2782a7c, ulimit_vmsize_unlimited/55aeecca, ulimit_filedescriptor_4096/fe1869b1, ulimit_max_user_process_2048/7d195a72, systemd_default_target/d016e48c, variables_bash/7ff48178, root_disk_usage/edf300cd]


name                          id        description                                                       buildspecs
----------------------------  --------  ----------------------------------------------------------------  -----------------------------------------------------------------------------------------------------------------------------------
ssh_localhost_remotecommand   93086006  Test if ssh on localhost works and if we can run remote command.  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml
kernel_swapusage              5ef212a6  Retrieve Kernel Swap Usage                                        /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml
ulimit_filelock_unlimited     ac5c8bd1  Check if file lock is set to unlimited in ulimits                 /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_cputime_unlimited      3914f699  Check if cputime is set to unlimited in ulimits                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_stacksize_unlimited    f2782a7c  Check if stack size is set to unlimited in ulimits                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_vmsize_unlimited       55aeecca  Check virtual memory size and check if its set to unlimited       /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_filedescriptor_4096    fe1869b1  Check if open file descriptors limit is set to 4096               /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
ulimit_max_user_process_2048  7d195a72  Check max number of user process limit is set to 2048             /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml
systemd_default_target        d016e48c  check if default target is multi-user.target                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml
variables_bash                7ff48178  Declare shell variables in bash                                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml
root_disk_usage               edf300cd  Check root disk usage and report if it exceeds threshold          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor           | tags                      | testpath
------------------------------+----------+--------+--------------------+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ssh_localhost_remotecommand  | 93086006 | script | generic.local.bash | ['ssh']                   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/93086006/ssh_localhost_remotecommand_build.sh
 kernel_swapusage             | 5ef212a6 | script | generic.local.bash | ['configuration']         | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/5ef212a6/kernel_swapusage_build.sh
 ulimit_filelock_unlimited    | ac5c8bd1 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/ac5c8bd1/ulimit_filelock_unlimited_build.sh
 ulimit_cputime_unlimited     | 3914f699 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/3914f699/ulimit_cputime_unlimited_build.sh
 ulimit_stacksize_unlimited   | f2782a7c | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/f2782a7c/ulimit_stacksize_unlimited_build.sh
 ulimit_vmsize_unlimited      | 55aeecca | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/55aeecca/ulimit_vmsize_unlimited_build.sh
 ulimit_filedescriptor_4096   | fe1869b1 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/fe1869b1/ulimit_filedescriptor_4096_build.sh
 ulimit_max_user_process_2048 | 7d195a72 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/7d195a72/ulimit_max_user_process_2048_build.sh
 systemd_default_target       | d016e48c | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/d016e48c/systemd_default_target_build.sh
 variables_bash               | 7ff48178 | script | generic.local.bash | ['tutorials']             | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/7ff48178/variables_bash_build.sh
 root_disk_usage              | edf300cd | script | generic.local.bash | ['filesystem', 'storage'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/edf300cd/root_disk_usage_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

kernel_swapusage/5ef212a6: completed with returncode: 127
kernel_swapusage/5ef212a6: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/5ef212a6/kernel_swapusage.out
kernel_swapusage/5ef212a6: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/5ef212a6/kernel_swapusage.err
ulimit_filelock_unlimited/ac5c8bd1: completed with returncode: 0
ulimit_filelock_unlimited/ac5c8bd1: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/ac5c8bd1/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/ac5c8bd1: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/ac5c8bd1/ulimit_filelock_unlimited.err
ulimit_filelock_unlimited/ac5c8bd1: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/ac5c8bd1/ulimit_filelock_unlimited.out with regular expression  
ulimit_filelock_unlimited/ac5c8bd1: Regular Expression Match - Success!
ulimit_stacksize_unlimited/f2782a7c: completed with returncode: 0
ulimit_stacksize_unlimited/f2782a7c: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/f2782a7c/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/f2782a7c: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/f2782a7c/ulimit_stacksize_unlimited.err
ulimit_stacksize_unlimited/f2782a7c: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/f2782a7c/ulimit_stacksize_unlimited.out with regular expression  
ulimit_stacksize_unlimited/f2782a7c: Regular Expression Match - Failed!
ulimit_max_user_process_2048/7d195a72: completed with returncode: 0
ulimit_max_user_process_2048/7d195a72: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/7d195a72/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/7d195a72: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/7d195a72/ulimit_max_user_process_2048.err
ulimit_max_user_process_2048/7d195a72: performing regular expression - '^2048$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/7d195a72/ulimit_max_user_process_2048.out with regular expression  
ulimit_max_user_process_2048/7d195a72: Regular Expression Match - Failed!
variables_bash/7ff48178: completed with returncode: 0
variables_bash/7ff48178: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/7ff48178/variables_bash.out
variables_bash/7ff48178: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/7ff48178/variables_bash.err
ssh_localhost_remotecommand/93086006: completed with returncode: 255
ssh_localhost_remotecommand/93086006: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/93086006/ssh_localhost_remotecommand.out
ssh_localhost_remotecommand/93086006: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/93086006/ssh_localhost_remotecommand.err
ulimit_cputime_unlimited/3914f699: completed with returncode: 0
ulimit_cputime_unlimited/3914f699: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/3914f699/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/3914f699: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/3914f699/ulimit_cputime_unlimited.err
ulimit_cputime_unlimited/3914f699: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/3914f699/ulimit_cputime_unlimited.out with regular expression  
ulimit_cputime_unlimited/3914f699: Regular Expression Match - Success!
ulimit_vmsize_unlimited/55aeecca: completed with returncode: 0
ulimit_vmsize_unlimited/55aeecca: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/55aeecca/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/55aeecca: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/55aeecca/ulimit_vmsize_unlimited.err
ulimit_vmsize_unlimited/55aeecca: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/55aeecca/ulimit_vmsize_unlimited.out with regular expression  
ulimit_vmsize_unlimited/55aeecca: Regular Expression Match - Success!
ulimit_filedescriptor_4096/fe1869b1: completed with returncode: 0
ulimit_filedescriptor_4096/fe1869b1: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/fe1869b1/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/fe1869b1: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/fe1869b1/ulimit_filedescriptor_4096.err
ulimit_filedescriptor_4096/fe1869b1: performing regular expression - '^4096$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/fe1869b1/ulimit_filedescriptor_4096.out with regular expression  
ulimit_filedescriptor_4096/fe1869b1: Regular Expression Match - Failed!
systemd_default_target/d016e48c: completed with returncode: 1
systemd_default_target/d016e48c: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/d016e48c/systemd_default_target.out
systemd_default_target/d016e48c: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/d016e48c/systemd_default_target.err
root_disk_usage/edf300cd: completed with returncode: 0
root_disk_usage/edf300cd: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/edf300cd/root_disk_usage.out
root_disk_usage/edf300cd: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/edf300cd/root_disk_usage.err
______________________________
Launching test: ssh_localhost_remotecommand
Test ID: 93086006-02fa-4f6b-be39-127476b64961
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/93086006/ssh_localhost_remotecommand_build.sh
______________________________
Launching test: kernel_swapusage
Test ID: 5ef212a6-ccd2-41aa-8f1a-29f1d2879522
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/5ef212a6/kernel_swapusage_build.sh
______________________________
Launching test: ulimit_filelock_unlimited
Test ID: ac5c8bd1-e810-4700-a593-d2de24bf6eb3
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/ac5c8bd1/ulimit_filelock_unlimited_build.sh
______________________________
Launching test: ulimit_cputime_unlimited
Test ID: 3914f699-b36a-481c-88a4-0636eb4ef6b3
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/3914f699/ulimit_cputime_unlimited_build.sh
______________________________
Launching test: ulimit_stacksize_unlimited
Test ID: f2782a7c-f09e-495d-8905-660b9b4d4813
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/f2782a7c/ulimit_stacksize_unlimited_build.sh
______________________________
Launching test: ulimit_vmsize_unlimited
Test ID: 55aeecca-115c-4f90-89e0-d0801271d5dc
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/55aeecca/ulimit_vmsize_unlimited_build.sh
______________________________
Launching test: ulimit_filedescriptor_4096
Test ID: fe1869b1-aa96-466f-b704-b4b0a1ae40f0
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/fe1869b1/ulimit_filedescriptor_4096_build.sh
______________________________
Launching test: ulimit_max_user_process_2048
Test ID: 7d195a72-59e1-45a9-9302-7e283f601c7b
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/7d195a72/ulimit_max_user_process_2048_build.sh
______________________________
Launching test: systemd_default_target
Test ID: d016e48c-20f7-4111-8b5d-db8b8ded804d
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/d016e48c/systemd_default_target_build.sh
______________________________
Launching test: variables_bash
Test ID: 7ff48178-2f82-4dc0-8e9b-17ce6ff0b48f
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/7ff48178/variables_bash_build.sh
______________________________
Launching test: root_disk_usage
Test ID: edf300cd-7242-47a3-8924-4150e812a4af
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/edf300cd/root_disk_usage_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                         | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
------------------------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 ssh_localhost_remotecommand  | 93086006 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          255 |  0.032854
 kernel_swapusage             | 5ef212a6 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          127 |  0.031774
 ulimit_filelock_unlimited    | ac5c8bd1 | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.018337
 ulimit_cputime_unlimited     | 3914f699 | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.019287
 ulimit_stacksize_unlimited   | f2782a7c | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.023499
 ulimit_vmsize_unlimited      | 55aeecca | generic.local.bash | PASS     | False              | True          | False           |            0 |  0.022004
 ulimit_filedescriptor_4096   | fe1869b1 | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.027482
 ulimit_max_user_process_2048 | 7d195a72 | generic.local.bash | FAIL     | False              | False         | False           |            0 |  0.02491
 systemd_default_target       | d016e48c | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |            1 |  0.030873
 variables_bash               | 7ff48178 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.042796
 root_disk_usage              | edf300cd | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.02729



Passed Tests: 5/11 Percentage: 45.455%
Failed Tests: 6/11 Percentage: 54.545%


Writing Logfile to: /tmp/buildtest_hkdfz2sm.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Excluding Buildspecs

So far we learned how to build buildspecs by file and directory path using the -b option. Next, we will discuss how one may exclude buildspecs which behaves similar to -b option. You can exclude buildspecs via --exclude or short option -x which can be useful when you want to exclude certain files or sub directory.

For example we can build all buildspecs in tutorials but exclude file tutorials/vars.yml by running:

$ buildtest build -b tutorials -x tutorials/vars.yml

buildtest will discover all buildspecs and then exclude any buildspecs specified by -x option. You can specify -x multiple times just like -b option.

For example, we can undo discovery by passing same option to -b and -x as follows

$ buildtest bd -b tutorials/ -x tutorials/
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:14
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest bd -b tutorials/ -x tutorials/
There are no Buildspec files to process.

Buildtest will stop immediately if there are no Buildspecs to process, this is true if you were to specify files instead of directory.

In this example, we build all buildspecs in a directory but exclude a file. Buildtest will report the excluded buildspecs in the output and -x option can be appended multiple times. The -x can be a file or a directory and behaves similar to -b option.

$ buildtest bd -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:14
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest bd -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                               |
+=====================================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml                |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml           |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml             |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml |
+-------------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml          |
+-------------------------------------------------------------------------------------------------------------------------------------+
+----------------------------------------------------------------------------------------------------------------------+
| Excluded Buildspecs                                                                                                  |
+======================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ulimits.yml |
+----------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  5
Excluded Buildspecs:  1
Detected Buildspecs after exclusion:  4

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  4
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml: VALID


Total builder objects created: 4
builders: [kernel_swapusage/92b2bafa, root_disk_usage/1cd41359, systemd_default_target/e16f7e53, ssh_localhost_remotecommand/c07d8422]


name                         id        description                                                       buildspecs
---------------------------  --------  ----------------------------------------------------------------  -----------------------------------------------------------------------------------------------------------------------------------
kernel_swapusage             92b2bafa  Retrieve Kernel Swap Usage                                        /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/kernel_state.yml
root_disk_usage              1cd41359  Check root disk usage and report if it exceeds threshold          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/disk_usage.yml
systemd_default_target       e16f7e53  check if default target is multi-user.target                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/systemd-default-target.yml
ssh_localhost_remotecommand  c07d8422  Test if ssh on localhost works and if we can run remote command.  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/general_tests/configuration/ssh_localhost.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                        | id       | type   | executor           | tags                      | testpath
-----------------------------+----------+--------+--------------------+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 kernel_swapusage            | 92b2bafa | script | generic.local.bash | ['configuration']         | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/92b2bafa/kernel_swapusage_build.sh
 root_disk_usage             | 1cd41359 | script | generic.local.bash | ['filesystem', 'storage'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/1cd41359/root_disk_usage_build.sh
 systemd_default_target      | e16f7e53 | script | generic.local.bash | ['system']                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/e16f7e53/systemd_default_target_build.sh
 ssh_localhost_remotecommand | c07d8422 | script | generic.local.bash | ['ssh']                   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/c07d8422/ssh_localhost_remotecommand_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

kernel_swapusage/92b2bafa: completed with returncode: 127
kernel_swapusage/92b2bafa: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/92b2bafa/kernel_swapusage.out
kernel_swapusage/92b2bafa: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/92b2bafa/kernel_swapusage.err
systemd_default_target/e16f7e53: completed with returncode: 1
systemd_default_target/e16f7e53: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/e16f7e53/systemd_default_target.out
systemd_default_target/e16f7e53: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/e16f7e53/systemd_default_target.err
root_disk_usage/1cd41359: completed with returncode: 0
root_disk_usage/1cd41359: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/1cd41359/root_disk_usage.out
root_disk_usage/1cd41359: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/1cd41359/root_disk_usage.err
ssh_localhost_remotecommand/c07d8422: completed with returncode: 255
ssh_localhost_remotecommand/c07d8422: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/c07d8422/ssh_localhost_remotecommand.out
ssh_localhost_remotecommand/c07d8422: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/c07d8422/ssh_localhost_remotecommand.err
______________________________
Launching test: kernel_swapusage
Test ID: 92b2bafa-44d0-42c6-84c5-272b1a2ba768
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/92b2bafa/kernel_swapusage_build.sh
______________________________
Launching test: root_disk_usage
Test ID: 1cd41359-a069-43ea-8807-2b6f256c34e3
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/1cd41359/root_disk_usage_build.sh
______________________________
Launching test: systemd_default_target
Test ID: e16f7e53-2ed2-46be-b2e6-6212c0e19fc9
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/e16f7e53/systemd_default_target_build.sh
______________________________
Launching test: ssh_localhost_remotecommand
Test ID: c07d8422-61be-4bdd-893b-10387062609c
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/ssh_localhost/ssh_localhost_remotecommand/c07d8422/ssh_localhost_remotecommand_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                        | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
-----------------------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 kernel_swapusage            | 92b2bafa | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          127 |  0.027239
 root_disk_usage             | 1cd41359 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.037134
 systemd_default_target      | e16f7e53 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |            1 |  0.027696
 ssh_localhost_remotecommand | c07d8422 | generic.local.bash | FAIL     | N/A                | N/A           | N/A             |          255 |  0.030714



Passed Tests: 1/4 Percentage: 25.000%
Failed Tests: 3/4 Percentage: 75.000%


Writing Logfile to: /tmp/buildtest_cbtfuxlm.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Building By Tags

buildtest can perform builds by tags by using --tags or short option (-t). In order to use this feature, buildtest must load buildspecs in cache which can be run via buildtest buildspec find. If you are unsure of the available tags you can run buildtest buildspec find --tags or let buildtest tab-complete the available tags. For more details see Querying buildspec tags.

Let’s assume you want to build by tag name network, buildtest will attempt to find all tests that contain tags: ['network'] in the buildspec which is loaded in the buildcache cache. If a test matches the tag name, the test will be picked up during the discover process.

$ buildtest build -t network
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:14
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -t network

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                   |
+=========================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml |
+---------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['network']
+---------------------------------------------------------------------------------------------------------+
| network                                                                                                 |
+=========================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml |
+---------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml: VALID


Total builder objects created: 2
builders: [string_tag/3d7a4f9f, list_of_strings_tags/fc9ecab8]


name                  id        description                    buildspecs
--------------------  --------  -----------------------------  -------------------------------------------------------------------------------------------------------
string_tag            3d7a4f9f  tags can be a string           /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml
list_of_strings_tags  fc9ecab8  tags can be a list of strings  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                 | id       | type   | executor           | tags                | testpath
----------------------+----------+--------+--------------------+---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 string_tag           | 3d7a4f9f | script | generic.local.bash | network             | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/string_tag/3d7a4f9f/string_tag_build.sh
 list_of_strings_tags | fc9ecab8 | script | generic.local.bash | ['network', 'ping'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/fc9ecab8/list_of_strings_tags_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

string_tag/3d7a4f9f: completed with returncode: 0
string_tag/3d7a4f9f: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/string_tag/3d7a4f9f/string_tag.out
string_tag/3d7a4f9f: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/string_tag/3d7a4f9f/string_tag.err
list_of_strings_tags/fc9ecab8: completed with returncode: 0
list_of_strings_tags/fc9ecab8: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/fc9ecab8/list_of_strings_tags.out
list_of_strings_tags/fc9ecab8: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/fc9ecab8/list_of_strings_tags.err
______________________________
Launching test: string_tag
Test ID: 3d7a4f9f-a80c-4ce5-b762-679d5dec1149
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/string_tag/3d7a4f9f/string_tag_build.sh
______________________________
Launching test: list_of_strings_tags
Test ID: fc9ecab8-f728-4a44-8b1f-1c116d67c2cb
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/fc9ecab8/list_of_strings_tags_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                 | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
----------------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 string_tag           | 3d7a4f9f | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.032556
 list_of_strings_tags | fc9ecab8 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  3.06947



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_3e2c2fhc.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

You can build by multiple tags by specifying --tags multiple times. In next example we build all tests with tag name pass and python.

$ buildtest build -t python -t pass
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:18
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -t python -t pass

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                      |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml    |
+------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml    |
+------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  3
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  3

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['python', 'pass']
+---------------------------------------------------------------------------------------------------------+
| python                                                                                                  |
+=========================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml |
+---------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml |
+---------------------------------------------------------------------------------------------------------+


+------------------------------------------------------------------------------------------------------------+
| pass                                                                                                       |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  3
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID


Total builder objects created: 6
builders: [circle_area/6ed8bf63, python_hello/6feaf262, exit1_fail/aaa388f4, exit1_pass/55601e7e, returncode_list_mismatch/5e2d005d, returncode_int_match/635d49bb]


name                      id        description                                          buildspecs
------------------------  --------  ---------------------------------------------------  ----------------------------------------------------------------------------------------------------------
circle_area               6ed8bf63  Calculate circle of area given a radius              /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml
python_hello              6feaf262  Hello World python                                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml
exit1_fail                aaa388f4  exit 1 by default is FAIL                            /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
exit1_pass                55601e7e  report exit 1 as PASS                                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_list_mismatch  5e2d005d  exit 2 failed since it failed to match returncode 1  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_int_match      635d49bb  exit 128 matches returncode 128                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor             | tags                    | testpath
--------------------------+----------+--------+----------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 circle_area              | 6ed8bf63 | script | generic.local.python | ['tutorials', 'python'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/6ed8bf63/circle_area_build.sh
 python_hello             | 6feaf262 | script | generic.local.bash   | python                  | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/6feaf262/python_hello_build.sh
 exit1_fail               | aaa388f4 | script | generic.local.sh     | ['tutorials', 'fail']   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/aaa388f4/exit1_fail_build.sh
 exit1_pass               | 55601e7e | script | generic.local.sh     | ['tutorials', 'pass']   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/55601e7e/exit1_pass_build.sh
 returncode_list_mismatch | 5e2d005d | script | generic.local.sh     | ['tutorials', 'fail']   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/5e2d005d/returncode_list_mismatch_build.sh
 returncode_int_match     | 635d49bb | script | generic.local.sh     | ['tutorials', 'pass']   | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/635d49bb/returncode_int_match_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

python_hello/6feaf262: completed with returncode: 0
python_hello/6feaf262: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/6feaf262/python_hello.out
python_hello/6feaf262: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/6feaf262/python_hello.err
exit1_fail/aaa388f4: completed with returncode: 1
exit1_fail/aaa388f4: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/aaa388f4/exit1_fail.out
exit1_fail/aaa388f4: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/aaa388f4/exit1_fail.err
returncode_list_mismatch/5e2d005d: completed with returncode: 2
returncode_list_mismatch/5e2d005d: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/5e2d005d/returncode_list_mismatch.out
returncode_list_mismatch/5e2d005d: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/5e2d005d/returncode_list_mismatch.err
returncode_list_mismatch/5e2d005d: Checking returncode - 2 is matched in list [1, 3]
circle_area/6ed8bf63: completed with returncode: 0
circle_area/6ed8bf63: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/6ed8bf63/circle_area.out
circle_area/6ed8bf63: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/6ed8bf63/circle_area.err
exit1_pass/55601e7e: completed with returncode: 1
exit1_pass/55601e7e: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/55601e7e/exit1_pass.out
exit1_pass/55601e7e: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/55601e7e/exit1_pass.err
exit1_pass/55601e7e: Checking returncode - 1 is matched in list [1]
returncode_int_match/635d49bb: completed with returncode: 128
returncode_int_match/635d49bb: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/635d49bb/returncode_int_match.out
returncode_int_match/635d49bb: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/635d49bb/returncode_int_match.err
returncode_int_match/635d49bb: Checking returncode - 128 is matched in list [128]
______________________________
Launching test: circle_area
Test ID: 6ed8bf63-8008-42c7-9416-7e472c15c9e4
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/6ed8bf63/circle_area_build.sh
______________________________
Launching test: python_hello
Test ID: 6feaf262-d168-4637-ba18-0646a62ab5e1
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/6feaf262/python_hello_build.sh
______________________________
Launching test: exit1_fail
Test ID: aaa388f4-6e71-4e73-aabd-4f5fb8e317ad
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/aaa388f4/exit1_fail_build.sh
______________________________
Launching test: exit1_pass
Test ID: 55601e7e-a451-4fc0-81bb-5138115297a9
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/55601e7e/exit1_pass_build.sh
______________________________
Launching test: returncode_list_mismatch
Test ID: 5e2d005d-b672-4298-a6d4-245346eed5d5
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/5e2d005d/returncode_list_mismatch_build.sh
______________________________
Launching test: returncode_int_match
Test ID: 635d49bb-bd3c-4e94-bd1d-87080a25713a
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/635d49bb/returncode_int_match_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                     | id       | executor             | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
--------------------------+----------+----------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 python_hello             | 6feaf262 | generic.local.bash   | PASS     | N/A                | N/A           | N/A             |            0 |  0.102769
 exit1_fail               | aaa388f4 | generic.local.sh     | FAIL     | N/A                | N/A           | N/A             |            1 |  0.029501
 exit1_pass               | 55601e7e | generic.local.sh     | PASS     | True               | False         | False           |            1 |  0.018127
 returncode_list_mismatch | 5e2d005d | generic.local.sh     | FAIL     | False              | False         | False           |            2 |  0.018428
 returncode_int_match     | 635d49bb | generic.local.sh     | PASS     | True               | False         | False           |          128 |  0.023221
 circle_area              | 6ed8bf63 | generic.local.python | PASS     | N/A                | N/A           | N/A             |            0 |  0.116362



Passed Tests: 4/6 Percentage: 66.667%
Failed Tests: 2/6 Percentage: 33.333%


Writing Logfile to: /tmp/buildtest_7pfzvc1_.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

When multiple tags are specified, we search each tag independently and if it’s found in the buildspec cache we retrieve the buildspec file and add file to queue. This queue is a list of buildspecs that buildtest will process (i.e parse, build, run). You can query tags from buildspecs cache to see all available tags by running buildtest buildspec find --tags.

Note

The --tags is used for discovering buildspec file and not filtering tests by tag.

You can combine --tags with --buildspec to discover buildspecs in a single command. buildtest will query tags and buildspecs independently and combine all discovered buildspecs together.

$ buildtest build --tags pass --buildspec tutorials/python-hello.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:18
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build --tags pass --buildspec tutorials/python-hello.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                      |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml    |
+------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  2
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['pass']
+------------------------------------------------------------------------------------------------------------+
| pass                                                                                                       |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  2
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID


Total builder objects created: 5
builders: [python_hello/3c422a2b, exit1_fail/46c30f6b, exit1_pass/b2c32941, returncode_list_mismatch/1f4bb7da, returncode_int_match/1cc26cef]


name                      id        description                                          buildspecs
------------------------  --------  ---------------------------------------------------  ----------------------------------------------------------------------------------------------------------
python_hello              3c422a2b  Hello World python                                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml
exit1_fail                46c30f6b  exit 1 by default is FAIL                            /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
exit1_pass                b2c32941  report exit 1 as PASS                                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_list_mismatch  1f4bb7da  exit 2 failed since it failed to match returncode 1  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_int_match      1cc26cef  exit 128 matches returncode 128                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor           | tags                  | testpath
--------------------------+----------+--------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 python_hello             | 3c422a2b | script | generic.local.bash | python                | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/3c422a2b/python_hello_build.sh
 exit1_fail               | 46c30f6b | script | generic.local.sh   | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/46c30f6b/exit1_fail_build.sh
 exit1_pass               | b2c32941 | script | generic.local.sh   | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/b2c32941/exit1_pass_build.sh
 returncode_list_mismatch | 1f4bb7da | script | generic.local.sh   | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/1f4bb7da/returncode_list_mismatch_build.sh
 returncode_int_match     | 1cc26cef | script | generic.local.sh   | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/1cc26cef/returncode_int_match_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

exit1_fail/46c30f6b: completed with returncode: 1
exit1_fail/46c30f6b: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/46c30f6b/exit1_fail.out
exit1_fail/46c30f6b: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/46c30f6b/exit1_fail.err
exit1_pass/b2c32941: completed with returncode: 1
exit1_pass/b2c32941: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/b2c32941/exit1_pass.out
exit1_pass/b2c32941: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/b2c32941/exit1_pass.err
exit1_pass/b2c32941: Checking returncode - 1 is matched in list [1]
returncode_list_mismatch/1f4bb7da: completed with returncode: 2
returncode_list_mismatch/1f4bb7da: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/1f4bb7da/returncode_list_mismatch.out
returncode_list_mismatch/1f4bb7da: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/1f4bb7da/returncode_list_mismatch.err
returncode_list_mismatch/1f4bb7da: Checking returncode - 2 is matched in list [1, 3]
python_hello/3c422a2b: completed with returncode: 0
python_hello/3c422a2b: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/3c422a2b/python_hello.out
python_hello/3c422a2b: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/3c422a2b/python_hello.err
returncode_int_match/1cc26cef: completed with returncode: 128
returncode_int_match/1cc26cef: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/1cc26cef/returncode_int_match.out
returncode_int_match/1cc26cef: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/1cc26cef/returncode_int_match.err
returncode_int_match/1cc26cef: Checking returncode - 128 is matched in list [128]
______________________________
Launching test: python_hello
Test ID: 3c422a2b-81b4-4d4f-9240-1e74655d9c8e
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/python-hello/python_hello/3c422a2b/python_hello_build.sh
______________________________
Launching test: exit1_fail
Test ID: 46c30f6b-5121-4715-90b8-961091a04665
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/46c30f6b/exit1_fail_build.sh
______________________________
Launching test: exit1_pass
Test ID: b2c32941-222c-40cc-ada7-8e034ae8b5e9
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/b2c32941/exit1_pass_build.sh
______________________________
Launching test: returncode_list_mismatch
Test ID: 1f4bb7da-00c0-4154-9951-95a94ff144f4
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/1f4bb7da/returncode_list_mismatch_build.sh
______________________________
Launching test: returncode_int_match
Test ID: 1cc26cef-e085-42ff-a182-bdd075dce883
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/1cc26cef/returncode_int_match_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                     | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
--------------------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 python_hello             | 3c422a2b | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.092008
 exit1_fail               | 46c30f6b | generic.local.sh   | FAIL     | N/A                | N/A           | N/A             |            1 |  0.037522
 exit1_pass               | b2c32941 | generic.local.sh   | PASS     | True               | False         | False           |            1 |  0.034106
 returncode_list_mismatch | 1f4bb7da | generic.local.sh   | FAIL     | False              | False         | False           |            2 |  0.017392
 returncode_int_match     | 1cc26cef | generic.local.sh   | PASS     | True               | False         | False           |          128 |  0.013467



Passed Tests: 3/5 Percentage: 60.000%
Failed Tests: 2/5 Percentage: 40.000%


Writing Logfile to: /tmp/buildtest_tg3mt2bz.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

As you may see, there are several ways to build buildspecs with buildtest. Tags is great way to build a whole collection of tests if you don’t know path to all the files. You can specify multiple tags per buildspecs to classify how test can be run.

Building by Executors

Every buildspec is associated to an executor which is responsible for running the test. You can instruct buildtest to run all tests by given executor via --executor option or short option -e. For instance, if you want to build all test associated to executor generic.local.python you can run:

$ buildtest build --executor generic.local.python

buildtest will query buildspec cache for the executor name and retrieve a list of buildspecs with matching executor name. To see a list of available executors in buildspec cache see querying buildspec executor.

Note

By default all tests are run in buildspec file. The buildtest build --executor option discovers buildspecs if one of the test matches the executor name. The --executor option is not filtering tests but only discovering buildspecs.

In this example we run all tests that are associated to generic.local.python executor.

$ buildtest build --executor generic.local.python
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:19
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build --executor generic.local.python

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+--------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                        |
+==============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml      |
+--------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml |
+--------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  2
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2

BREAKDOWN OF BUILDSPECS BY EXECUTORS
--------------------------------------
Detected Executor Names: ['generic.local.python']
+--------------------------------------------------------------------------------------------------------------+
| generic.local.python                                                                                         |
+==============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml      |
+--------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml |
+--------------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

[run_only_platform_darwin][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml]: test is skipped because this test is expected to run on platform: Darwin but detected platform: Linux.
Valid Buildspecs:  2
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml: VALID


Total builder objects created: 2
builders: [circle_area/29fd70b3, run_only_platform_linux/33c3523e]


name                     id        description                                          buildspecs
-----------------------  --------  ---------------------------------------------------  ------------------------------------------------------------------------------------------------------------
circle_area              29fd70b3  Calculate circle of area given a radius              /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml
run_only_platform_linux  33c3523e  This test will only run if target platform is Linux  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                    | id       | type   | executor             | tags                    | testpath
-------------------------+----------+--------+----------------------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 circle_area             | 29fd70b3 | script | generic.local.python | ['tutorials', 'python'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/29fd70b3/circle_area_build.sh
 run_only_platform_linux | 33c3523e | script | generic.local.python | ['tutorials']           | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/run_only_platform/run_only_platform_linux/33c3523e/run_only_platform_linux_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

circle_area/29fd70b3: completed with returncode: 0
circle_area/29fd70b3: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/29fd70b3/circle_area.out
circle_area/29fd70b3: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/29fd70b3/circle_area.err
run_only_platform_linux/33c3523e: completed with returncode: 0
run_only_platform_linux/33c3523e: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/run_only_platform/run_only_platform_linux/33c3523e/run_only_platform_linux.out
run_only_platform_linux/33c3523e: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/run_only_platform/run_only_platform_linux/33c3523e/run_only_platform_linux.err
run_only_platform_linux/33c3523e: performing regular expression - '^Linux' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/run_only_platform/run_only_platform_linux/33c3523e/run_only_platform_linux.out with regular expression  
run_only_platform_linux/33c3523e: Regular Expression Match - Success!
______________________________
Launching test: circle_area
Test ID: 29fd70b3-2bd5-45a0-96af-0b62e394c87e
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/29fd70b3/circle_area_build.sh
______________________________
Launching test: run_only_platform_linux
Test ID: 33c3523e-e52b-4bad-a118-c048b0ac5d88
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/run_only_platform/run_only_platform_linux/33c3523e/run_only_platform_linux_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                    | id       | executor             | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
-------------------------+----------+----------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 run_only_platform_linux | 33c3523e | generic.local.python | PASS     | False              | True          | False           |            0 |  0.141286
 circle_area             | 29fd70b3 | generic.local.python | PASS     | N/A                | N/A           | N/A             |            0 |  0.115076



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_f5kdyyj_.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Note

The --executor option can be appended to discover tests by multiple executors.

Filtering Buildspecs

buildtest has support for filtering buildspecs based on certain attributes defined in buildspec file. Upon Discover Buildspecs, buildtest will filter out tests or entire buildspec files. The buildtest build --filter option can be used to filter buildspecs which expects a single key=value pair. Currently, buildtest can filter tests based on tags, type and maintainers.

To see all available filter fields you can run buildtest build --helpfilter and buildtest will report the fields followed by description.

$ buildtest build --helpfilter
Field        Description
-----------  ----------------------------------
tags         Filter tests by 'tag' field
type         Filter test by 'type' field
maintainers  Filter test by 'maintainers' field

In this example, we will discover all buildspecs based on tagname pass and then filter each test by tagname pass specified by --filter tags=pass.

$ buildtest build -t pass --filter tags=pass
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:19
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -t pass --filter tags=pass

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                      |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['pass']
+------------------------------------------------------------------------------------------------------------+
| pass                                                                                                       |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

[exit1_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in tag filter list: {'tags': 'pass'}
[returncode_list_mismatch][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in tag filter list: {'tags': 'pass'}
Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID


Total builder objects created: 2
builders: [exit1_pass/80376cc8, returncode_int_match/f1095054]


name                  id        description                      buildspecs
--------------------  --------  -------------------------------  ----------------------------------------------------------------------------------------------------------
exit1_pass            80376cc8  report exit 1 as PASS            /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_int_match  f1095054  exit 128 matches returncode 128  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                 | id       | type   | executor         | tags                  | testpath
----------------------+----------+--------+------------------+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 exit1_pass           | 80376cc8 | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/80376cc8/exit1_pass_build.sh
 returncode_int_match | f1095054 | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/f1095054/returncode_int_match_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

returncode_int_match/f1095054: completed with returncode: 128
returncode_int_match/f1095054: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/f1095054/returncode_int_match.out
returncode_int_match/f1095054: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/f1095054/returncode_int_match.err
returncode_int_match/f1095054: Checking returncode - 128 is matched in list [128]
exit1_pass/80376cc8: completed with returncode: 1
exit1_pass/80376cc8: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/80376cc8/exit1_pass.out
exit1_pass/80376cc8: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/80376cc8/exit1_pass.err
exit1_pass/80376cc8: Checking returncode - 1 is matched in list [1]
______________________________
Launching test: exit1_pass
Test ID: 80376cc8-2c1c-4946-b76b-e0515c46528e
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/80376cc8/exit1_pass_build.sh
______________________________
Launching test: returncode_int_match
Test ID: f1095054-1457-49fc-b85e-81156b762f35
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/f1095054/returncode_int_match_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                 | id       | executor         | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
----------------------+----------+------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 exit1_pass           | 80376cc8 | generic.local.sh | PASS     | True               | False         | False           |            1 |  0.021258
 returncode_int_match | f1095054 | generic.local.sh | PASS     | True               | False         | False           |          128 |  0.021259



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_ygzwdshx.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

buildtest can run filter tests by maintainers, this can be useful if you want to run tests that you are maintainer. The maintainers field is set per buildspec and not each test. You can filter maintiners via --filter maintainers=<MAINTAINER_NAME>. If the maintainers field is not specified the buildspec will be filtered out if --filter maintainers is specified. In this next example, we will build all tests for maintainer @shahzebsiddiqui.

$ buildtest build -b tutorials --filter maintainers=@shahzebsiddiqui
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:20
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials --filter maintainers=@shahzebsiddiqui

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                           |
+=================================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml               |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml             |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml                            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml                      |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml               |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_tags.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml                    |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml                                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml                      |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/burstbuffer_datawarp_executors.yml       |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml                        |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml                       |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_install.yml                    |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml                           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml      |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml                              |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml                              |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml                                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  52
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  52

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  47
Invalid Buildspecs:  5
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_tags.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/burstbuffer_datawarp_executors.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_install.yml: INVALID

Buildspecs that were filtered out
________________________________________________________________________________
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml


Total builder objects created: 1
builders: [hello_world/7c3d7f17]


name         id        description          buildspecs
-----------  --------  -------------------  ------------------------------------------------------------------------------------------------------
hello_world  7c3d7f17  hello world example  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name        | id       | type   | executor           | tags      | testpath
-------------+----------+--------+--------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 hello_world | 7c3d7f17 | script | generic.local.bash | tutorials | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/hello_world/hello_world/7c3d7f17/hello_world_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

hello_world/7c3d7f17: completed with returncode: 0
hello_world/7c3d7f17: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/hello_world/hello_world/7c3d7f17/hello_world.out
hello_world/7c3d7f17: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/hello_world/hello_world/7c3d7f17/hello_world.err
______________________________
Launching test: hello_world
Test ID: 7c3d7f17-7dff-4da0-8f72-509cb7b69185
Executor Name: generic.local.bash
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/hello_world/hello_world/7c3d7f17/hello_world_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name        | id       | executor           | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
-------------+----------+--------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 hello_world | 7c3d7f17 | generic.local.bash | PASS     | N/A                | N/A           | N/A             |            0 |  0.006251



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_pdw2691g.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

Please see Query Maintainers on list of maintainers and breakdown of buildspecs by maintainers.

We can also filter tests by type field in the buildspec which corresponds to the schema type. In this next example, we filter all tests by spack schema type by passing option --filter type=spack. We inform buildtest to stop after build stage (--stage=build) for more details see Configure Build Stages.

$ buildtest build -b tutorials --filter type=spack --stage=build
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:20
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials --filter type=spack --stage=build

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                           |
+=================================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml                        |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml               |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/burstbuffer_datawarp_executors.yml       |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml                            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_tags.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml             |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml                       |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml               |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml                           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml                      |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml                   |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml                      |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml                              |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml                              |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml                  |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_install.yml                    |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml                                |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml                    |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml                          |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml                                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml           |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml                     |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml                 |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml            |
+---------------------------------------------------------------------------------------------------------------------------------+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml      |
+---------------------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  52
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  52

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

[metric_regex_example][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml]: test is skipped because it is not in type filter list: spack
[override_environmentvars][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml]: test is skipped because it is not in type filter list: spack
[vecadd_gnu_exclude][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml]: test is skipped because it is not in type filter list: spack
[executor_regex_script_schema][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml]: test is skipped because it is not in type filter list: spack
[timelimit_min_max][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml]: test is skipped because it is not in type filter list: spack
[timelimit_min][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml]: test is skipped because it is not in type filter list: spack
[timelimit_max][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml]: test is skipped because it is not in type filter list: spack
[timelimit_min_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml]: test is skipped because it is not in type filter list: spack
[timelimit_max_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml]: test is skipped because it is not in type filter list: spack
[metric_variable_assignment][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml]: test is skipped because it is not in type filter list: spack
[pre_post_build_run][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml]: test is skipped because it is not in type filter list: spack
[csh_shell][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml]: test is skipped because it is not in type filter list: spack
[run_only_as_root][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml]: test is skipped because it is not in type filter list: spack
[hello_f][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml]: test is skipped because it is not in type filter list: spack
[python_hello][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml]: test is skipped because it is not in type filter list: spack
[custom_run_by_compilers][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml]: test is skipped because it is not in type filter list: spack
[hello_world][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml]: test is skipped because it is not in type filter list: spack
[bash_env_variables][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml]: test is skipped because it is not in type filter list: spack
[csh_env_declaration][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml]: test is skipped because it is not in type filter list: spack
[tcsh_env_declaration][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml]: test is skipped because it is not in type filter list: spack
[metrics_variable_compiler][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml]: test is skipped because it is not in type filter list: spack
[_bin_sh_shell][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml]: test is skipped because it is not in type filter list: spack
[_bin_bash_shell][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml]: test is skipped because it is not in type filter list: spack
[bash_shell][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml]: test is skipped because it is not in type filter list: spack
[sh_shell][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml]: test is skipped because it is not in type filter list: spack
[shell_options][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml]: test is skipped because it is not in type filter list: spack
[openmp_hello_c_example][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml]: test is skipped because it is not in type filter list: spack
[skip](/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml): test is skipped.
[unskipped][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml]: test is skipped because it is not in type filter list: spack
[executors_vars_env_declaration][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml]: test is skipped because it is not in type filter list: spack
[run_only_macos_distro][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml]: test is skipped because it is not in type filter list: spack
[run_only_linux_distro][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml]: test is skipped because it is not in type filter list: spack
[hello_c][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml]: test is skipped because it is not in type filter list: spack
[string_tag][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml]: test is skipped because it is not in type filter list: spack
[list_of_strings_tags][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml]: test is skipped because it is not in type filter list: spack
[exit1_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in type filter list: spack
[exit1_pass][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in type filter list: spack
[returncode_list_mismatch][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in type filter list: spack
[returncode_int_match][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml]: test is skipped because it is not in type filter list: spack
[bash_login_shebang][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml]: test is skipped because it is not in type filter list: spack
[bash_nonlogin_shebang][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml]: test is skipped because it is not in type filter list: spack
[circle_area][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml]: test is skipped because it is not in type filter list: spack
[selinux_disable][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml]: test is skipped because it is not in type filter list: spack
[foo_bar][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml]: test is skipped because it is not in type filter list: spack
[sleep][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml]: test is skipped because it is not in type filter list: spack
[status_regex_pass][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml]: test is skipped because it is not in type filter list: spack
[status_regex_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml]: test is skipped because it is not in type filter list: spack
[run_only_platform_darwin][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml]: test is skipped because it is not in type filter list: spack
[run_only_platform_linux][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml]: test is skipped because it is not in type filter list: spack
[add_numbers][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml]: test is skipped because it is not in type filter list: spack
[variables_bash][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml]: test is skipped because it is not in type filter list: spack
[status_returncode_by_executors][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml]: test is skipped because it is not in type filter list: spack
[vecadd_gnu][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml]: test is skipped because it is not in type filter list: spack
[executors_sbatch_declaration][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml]: test is skipped because it is not in type filter list: spack
[default_status_regex][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml]: test is skipped because it is not in type filter list: spack
[override_status_regex][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml]: test is skipped because it is not in type filter list: spack
Valid Buildspecs:  47
Invalid Buildspecs:  5
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/envvar_override.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_exclude.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/executor_regex_script.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/runtime_status_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/metrics_variable.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/pre_post_build_run.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/csh_shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/root_user.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_fortran.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/custom_run.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/hello_world.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/environment.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/metrics_openmp.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/openmp_hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/skip_tests.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/multiple_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_distro.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/gnu_hello_c.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/tags_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/shebang.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/selinux.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/maintainers_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/sleep.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/run_only_platform.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/add_numbers.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/status_by_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/vecadd.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/script/executor_scheduler.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/compilers/compiler_status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/burstbuffer_datawarp_executors.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_tags.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_install.yml: INVALID


Total builder objects created: 14
builders: [spack_test_results_specs_format/62ab8de8, run_pre_post_commands/e870a840, remove_environment_automatically/e5bfb39a, remove_environment_explicit/a227c364, concretize_m4_in_spack_env/c1ba6948, install_zlib/cb0fb2c0, spack_sbatch_example/ed2fdade, spack_test/9cf274a3, spack_sbatch_multi_executors/ec83a273, spack_sbatch_multi_executors/dd1358a6, spack_env_directory/08b15b87, add_mirror/b568cec6, add_mirror_in_spack_env/1b308bf1, spack_env_create_from_manifest/84cf5193]


name                              id        description                                                               buildspecs
--------------------------------  --------  ------------------------------------------------------------------------  -------------------------------------------------------------------------------------------------------------------------------
spack_test_results_specs_format   62ab8de8  Run spack test results with spec format                                   /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test_specs.yml
run_pre_post_commands             e870a840  Install zlib                                                              /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/pre_post_cmds.yml
remove_environment_automatically  e5bfb39a  remove spack environment automatically before creating a new environment  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml
remove_environment_explicit       a227c364  remove spack environment explicitly using the 'rm' property               /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/remove_environment_example.yml
concretize_m4_in_spack_env        c1ba6948  Concretize m4 in a spack environment named m4                             /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/concretize_m4.yml
install_zlib                      cb0fb2c0  Install zlib                                                              /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/install_zlib.yml
spack_sbatch_example              ed2fdade  sbatch directives can be defined in spack schema                          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_sbatch.yml
spack_test                        9cf274a3  Install bzip2 and run spack test and report results                       /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_test.yml
spack_sbatch_multi_executors      ec83a273  sbatch directives can be defined in spack schema                          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml
spack_sbatch_multi_executors      dd1358a6  sbatch directives can be defined in spack schema                          /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/spack_multiple_executor_sbatch.yml
spack_env_directory               08b15b87  Concretize m4 in a spack environment named m4                             /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_directory.yml
add_mirror                        b568cec6  Declare spack mirror                                                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml
add_mirror_in_spack_env           1b308bf1  Declare spack mirror in spack environment                                 /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/mirror_example.yml
spack_env_create_from_manifest    84cf5193  Create spack environment from spack.yaml                                  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/spack/env_create_manifest.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                             | id       | type   | executor           | tags      | testpath
----------------------------------+----------+--------+--------------------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 spack_test_results_specs_format  | 62ab8de8 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/spack_test_specs/spack_test_results_specs_format/62ab8de8/spack_test_results_specs_format_build.sh
 run_pre_post_commands            | e870a840 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pre_post_cmds/run_pre_post_commands/e870a840/run_pre_post_commands_build.sh
 remove_environment_automatically | e5bfb39a | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/remove_environment_example/remove_environment_automatically/e5bfb39a/remove_environment_automatically_build.sh
 remove_environment_explicit      | a227c364 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/remove_environment_example/remove_environment_explicit/a227c364/remove_environment_explicit_build.sh
 concretize_m4_in_spack_env       | c1ba6948 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/concretize_m4/concretize_m4_in_spack_env/c1ba6948/concretize_m4_in_spack_env_build.sh
 install_zlib                     | cb0fb2c0 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/install_zlib/install_zlib/cb0fb2c0/install_zlib_build.sh
 spack_sbatch_example             | ed2fdade | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/spack_sbatch/spack_sbatch_example/ed2fdade/spack_sbatch_example_build.sh
 spack_test                       | 9cf274a3 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/spack_test/spack_test/9cf274a3/spack_test_build.sh
 spack_sbatch_multi_executors     | ec83a273 | spack  | generic.local.bash | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/spack_multiple_executor_sbatch/spack_sbatch_multi_executors/ec83a273/spack_sbatch_multi_executors_build.sh
 spack_sbatch_multi_executors     | dd1358a6 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/spack_multiple_executor_sbatch/spack_sbatch_multi_executors/dd1358a6/spack_sbatch_multi_executors_build.sh
 spack_env_directory              | 08b15b87 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/env_create_directory/spack_env_directory/08b15b87/spack_env_directory_build.sh
 add_mirror                       | b568cec6 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/mirror_example/add_mirror/b568cec6/add_mirror_build.sh
 add_mirror_in_spack_env          | 1b308bf1 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/mirror_example/add_mirror_in_spack_env/1b308bf1/add_mirror_in_spack_env_build.sh
 spack_env_create_from_manifest   | 84cf5193 | spack  | generic.local.sh   | ['spack'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/env_create_manifest/spack_env_create_from_manifest/84cf5193/spack_env_create_from_manifest_build.sh

Discover Buildspecs

Now, let’s discuss how buildtest discovers buildspecs since there are several ways to build buildspecs.

The buildspec search resolution is described as follows:

  • If file or directory specified by -b option doesn’t exist we exit immediately.

  • If buildspec path is a directory, traverse directory recursively to find all .yml extensions

  • If buildspec path is a file, check if file extension is not .yml, exit immediately

  • If user specifies --tags or --executor we search in buildspec cache to discover buildspecs.

Shown below is a diagram on how buildtest discovers buildspecs. The user can build buildspecs by --buildspec, –tags, or –executor which will discover the buildspecs. You can exclude buildspecs using --exclude option which is processed after discovering buildspecs. The excluded buildspecs are removed from list if found and final list of buildspecs is processed.

../_images/DiscoverBuildspecs.jpg

Configure Build Stages

We can control behavior of buildtest build command to stop at certain phase using --stage option. The –stage option accepts parse or build, which will instruct buildtest to stop at parse or build phase of the pipeline.

Buildtest will validate all the buildspecs in the parse stage, so you can instruct buildtest to stop at parse stage via --stage=parse. This can be useful when debugging buildspecs that are invalid. In this example below, we instruct buildtest to stop after parse stage.

$ buildtest build -b tutorials/vars.yml --stage=parse
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:21
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials/vars.yml --stage=parse

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                           |
+=================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml |
+-------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID


Total builder objects created: 1
builders: [variables_bash/ac803661]


name            id        description                      buildspecs
--------------  --------  -------------------------------  -----------------------------------------------------------------------------------------------
variables_bash  ac803661  Declare shell variables in bash  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml

Likewise, if you want to troubleshoot your test script without running them you can use --stage=build which will stop after build phase. This can be used when you are writing buildspec to troubleshoot how test is generated. In this next example, we inform buildtest to stop after build stage.

$ buildtest build -b tutorials/vars.yml --stage=build
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:21
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials/vars.yml --stage=build

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                           |
+=================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml |
+-------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml: VALID


Total builder objects created: 1
builders: [variables_bash/d2fbee0c]


name            id        description                      buildspecs
--------------  --------  -------------------------------  -----------------------------------------------------------------------------------------------
variables_bash  d2fbee0c  Declare shell variables in bash  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/vars.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name           | id       | type   | executor           | tags          | testpath
----------------+----------+--------+--------------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 variables_bash | d2fbee0c | script | generic.local.bash | ['tutorials'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.bash/vars/variables_bash/d2fbee0c/variables_bash_build.sh

Invalid Buildspecs

buildtest will skip any buildspecs that fail to validate, in that case the test script will not be generated. Here is an example where we have an invalid buildspec.

$ buildtest build -b tutorials/invalid_buildspec_section.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:21
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials/invalid_buildspec_section.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                                |
+======================================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml |
+----------------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  0
Invalid Buildspecs:  1
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_buildspec_section.yml: INVALID
Unable to create any builder objects

buildtest may skip tests from running if buildspec specifies an invalid executor name since buildtest needs to know this in order to delegate test to Executor class responsible for running the test. Here is an example where test failed to run since we provided invalid executor.

$ buildtest build -b tutorials/invalid_executor.yml
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:22
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials/invalid_executor.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                       |
+=============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml |
+-------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  0
Invalid Buildspecs:  1
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/invalid_executor.yml: INVALID
Unable to create any builder objects

Rebuild Tests

buildtest can rebuild tests using the --rebuild option which can be useful if you want to test a particular test multiple times. The rebuild option works across all discovered buildspecs and create a new test instance (unique id) and test directory path. To demonstrate we will build tutorials/python-shell.yml three times using --rebuild=3.

$ buildtest build -b tutorials/python-shell.yml --rebuild=3
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:22
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -b tutorials/python-shell.yml --rebuild=3

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                   |
+=========================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml |
+---------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml: VALID


Total builder objects created: 3
builders: [circle_area/8e5d3510, circle_area/f5c50ca7, circle_area/629ee0a6]


name         id        description                              buildspecs
-----------  --------  ---------------------------------------  -------------------------------------------------------------------------------------------------------
circle_area  8e5d3510  Calculate circle of area given a radius  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml
circle_area  f5c50ca7  Calculate circle of area given a radius  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml
circle_area  629ee0a6  Calculate circle of area given a radius  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/python-shell.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name        | id       | type   | executor             | tags                    | testpath
-------------+----------+--------+----------------------+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------
 circle_area | 8e5d3510 | script | generic.local.python | ['tutorials', 'python'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/8e5d3510/circle_area_build.sh
 circle_area | f5c50ca7 | script | generic.local.python | ['tutorials', 'python'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/f5c50ca7/circle_area_build.sh
 circle_area | 629ee0a6 | script | generic.local.python | ['tutorials', 'python'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/629ee0a6/circle_area_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

circle_area/8e5d3510: completed with returncode: 0
circle_area/8e5d3510: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/8e5d3510/circle_area.out
circle_area/8e5d3510: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/8e5d3510/circle_area.err
circle_area/f5c50ca7: completed with returncode: 0
circle_area/f5c50ca7: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/f5c50ca7/circle_area.out
circle_area/f5c50ca7: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/f5c50ca7/circle_area.err
circle_area/629ee0a6: completed with returncode: 0
circle_area/629ee0a6: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/629ee0a6/circle_area.out
circle_area/629ee0a6: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/629ee0a6/circle_area.err
______________________________
Launching test: circle_area
Test ID: 8e5d3510-bbe7-4140-86d7-aa168c6babec
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/8e5d3510/circle_area_build.sh
______________________________
Launching test: circle_area
Test ID: f5c50ca7-2ac3-43b0-a59f-1d88eb00f3de
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/f5c50ca7/circle_area_build.sh
______________________________
Launching test: circle_area
Test ID: 629ee0a6-94c3-4e62-b05c-964f92c15f0a
Executor Name: generic.local.python
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.python/python-shell/circle_area/629ee0a6/circle_area_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name        | id       | executor             | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
-------------+----------+----------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 circle_area | f5c50ca7 | generic.local.python | PASS     | N/A                | N/A           | N/A             |            0 |  0.10842
 circle_area | 629ee0a6 | generic.local.python | PASS     | N/A                | N/A           | N/A             |            0 |  0.040307
 circle_area | 8e5d3510 | generic.local.python | PASS     | N/A                | N/A           | N/A             |            0 |  0.111269



Passed Tests: 3/3 Percentage: 100.000%
Failed Tests: 0/3 Percentage: 0.000%


Writing Logfile to: /tmp/buildtest_z7y7g10g.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

The rebuild works with all options including: --buildspec, --exclude, --tags and --executor. buildtest will perform rebuild for all discovered tests, for instance in this next example we will discover all tests by tag name fail and each test is rebuild twice.

$ buildtest build -t fail --rebuild 2
User:  docs
Hostname:  build-14673784-project-280831-buildtest
Platform:  Linux
Current Time:  2021/09/09 15:55:22
buildtest path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest
buildtest version:  0.11.0
python path: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/envs/v0.11.0/bin/python
python version:  3.7.9
Test Directory:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests
Configuration File:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/settings/config.yml
Command: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest build -t fail --rebuild 2

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+------------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                      |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['fail']
+------------------------------------------------------------------------------------------------------------+
| fail                                                                                                       |
+============================================================================================================+
| /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml |
+------------------------------------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

Valid Buildspecs:  1
Invalid Buildspecs:  0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml: VALID


Total builder objects created: 8
builders: [exit1_fail/0de2fede, exit1_pass/bdda64f7, returncode_list_mismatch/3f3f660f, returncode_int_match/202a2a4d, exit1_fail/69a9a391, exit1_pass/6d8369a3, returncode_list_mismatch/866fd8e4, returncode_int_match/e9556b16]


name                      id        description                                          buildspecs
------------------------  --------  ---------------------------------------------------  ----------------------------------------------------------------------------------------------------------
exit1_fail                0de2fede  exit 1 by default is FAIL                            /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
exit1_pass                bdda64f7  report exit 1 as PASS                                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_list_mismatch  3f3f660f  exit 2 failed since it failed to match returncode 1  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_int_match      202a2a4d  exit 128 matches returncode 128                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
exit1_fail                69a9a391  exit 1 by default is FAIL                            /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
exit1_pass                6d8369a3  report exit 1 as PASS                                /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_list_mismatch  866fd8e4  exit 2 failed since it failed to match returncode 1  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml
returncode_int_match      e9556b16  exit 128 matches returncode 128                      /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/tutorials/pass_returncode.yml

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor         | tags                  | testpath
--------------------------+----------+--------+------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 exit1_fail               | 0de2fede | script | generic.local.sh | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/0de2fede/exit1_fail_build.sh
 exit1_pass               | bdda64f7 | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/bdda64f7/exit1_pass_build.sh
 returncode_list_mismatch | 3f3f660f | script | generic.local.sh | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/3f3f660f/returncode_list_mismatch_build.sh
 returncode_int_match     | 202a2a4d | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/202a2a4d/returncode_int_match_build.sh
 exit1_fail               | 69a9a391 | script | generic.local.sh | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/69a9a391/exit1_fail_build.sh
 exit1_pass               | 6d8369a3 | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/6d8369a3/exit1_pass_build.sh
 returncode_list_mismatch | 866fd8e4 | script | generic.local.sh | ['tutorials', 'fail'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/866fd8e4/returncode_list_mismatch_build.sh
 returncode_int_match     | e9556b16 | script | generic.local.sh | ['tutorials', 'pass'] | /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/e9556b16/returncode_int_match_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

exit1_fail/0de2fede: completed with returncode: 1
exit1_fail/0de2fede: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/0de2fede/exit1_fail.out
exit1_fail/0de2fede: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/0de2fede/exit1_fail.err
returncode_list_mismatch/3f3f660f: completed with returncode: 2
returncode_list_mismatch/3f3f660f: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/3f3f660f/returncode_list_mismatch.out
returncode_list_mismatch/3f3f660f: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/3f3f660f/returncode_list_mismatch.err
returncode_list_mismatch/3f3f660f: Checking returncode - 2 is matched in list [1, 3]
exit1_fail/69a9a391: completed with returncode: 1
exit1_fail/69a9a391: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/69a9a391/exit1_fail.out
exit1_fail/69a9a391: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/69a9a391/exit1_fail.err
returncode_list_mismatch/866fd8e4: completed with returncode: 2
returncode_list_mismatch/866fd8e4: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/866fd8e4/returncode_list_mismatch.out
returncode_list_mismatch/866fd8e4: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/866fd8e4/returncode_list_mismatch.err
returncode_list_mismatch/866fd8e4: Checking returncode - 2 is matched in list [1, 3]
exit1_pass/bdda64f7: completed with returncode: 1
exit1_pass/bdda64f7: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/bdda64f7/exit1_pass.out
exit1_pass/bdda64f7: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/bdda64f7/exit1_pass.err
exit1_pass/bdda64f7: Checking returncode - 1 is matched in list [1]
returncode_int_match/202a2a4d: completed with returncode: 128
returncode_int_match/202a2a4d: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/202a2a4d/returncode_int_match.out
returncode_int_match/202a2a4d: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/202a2a4d/returncode_int_match.err
returncode_int_match/202a2a4d: Checking returncode - 128 is matched in list [128]
exit1_pass/6d8369a3: completed with returncode: 1
exit1_pass/6d8369a3: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/6d8369a3/exit1_pass.out
exit1_pass/6d8369a3: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/6d8369a3/exit1_pass.err
exit1_pass/6d8369a3: Checking returncode - 1 is matched in list [1]
returncode_int_match/e9556b16: completed with returncode: 128
returncode_int_match/e9556b16: Writing output file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/e9556b16/returncode_int_match.out
returncode_int_match/e9556b16: Writing error file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/e9556b16/returncode_int_match.err
returncode_int_match/e9556b16: Checking returncode - 128 is matched in list [128]
______________________________
Launching test: exit1_fail
Test ID: 0de2fede-81b4-4f55-83d2-4a85e73f96b6
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/0de2fede/exit1_fail_build.sh
______________________________
Launching test: exit1_pass
Test ID: bdda64f7-c704-4d78-a945-524000e53844
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/bdda64f7/exit1_pass_build.sh
______________________________
Launching test: returncode_list_mismatch
Test ID: 3f3f660f-d6e1-4341-a240-c7c11234b607
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/3f3f660f/returncode_list_mismatch_build.sh
______________________________
Launching test: returncode_int_match
Test ID: 202a2a4d-e874-4b62-a015-0d550ecb8ba4
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/202a2a4d/returncode_int_match_build.sh
______________________________
Launching test: exit1_fail
Test ID: 69a9a391-cdce-4269-adb5-b844fb4ad23a
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_fail/69a9a391/exit1_fail_build.sh
______________________________
Launching test: exit1_pass
Test ID: 6d8369a3-badb-47e5-9545-d92bd218c75c
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/exit1_pass/6d8369a3/exit1_pass_build.sh
______________________________
Launching test: returncode_list_mismatch
Test ID: 866fd8e4-48d5-41ca-84ee-e9e2814dda65
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/866fd8e4/returncode_list_mismatch_build.sh
______________________________
Launching test: returncode_int_match
Test ID: e9556b16-756c-4b87-8b2e-1a45ffaf9b38
Executor Name: generic.local.sh
Running Test:  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/var/tests/generic.local.sh/pass_returncode/returncode_int_match/e9556b16/returncode_int_match_build.sh

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
 name                     | id       | executor         | status   | returncode_match   | regex_match   | runtime_match   |   returncode |   runtime
--------------------------+----------+------------------+----------+--------------------+---------------+-----------------+--------------+-----------
 exit1_fail               | 0de2fede | generic.local.sh | FAIL     | N/A                | N/A           | N/A             |            1 |  0.020173
 exit1_pass               | bdda64f7 | generic.local.sh | PASS     | True               | False         | False           |            1 |  0.019438
 returncode_list_mismatch | 3f3f660f | generic.local.sh | FAIL     | False              | False         | False           |            2 |  0.019207
 returncode_int_match     | 202a2a4d | generic.local.sh | PASS     | True               | False         | False           |          128 |  0.018725
 exit1_fail               | 69a9a391 | generic.local.sh | FAIL     | N/A                | N/A           | N/A             |            1 |  0.017334
 exit1_pass               | 6d8369a3 | generic.local.sh | PASS     | True               | False         | False           |            1 |  0.020802
 returncode_list_mismatch | 866fd8e4 | generic.local.sh | FAIL     | False              | False         | False           |            2 |  0.017478
 returncode_int_match     | e9556b16 | generic.local.sh | PASS     | True               | False         | False           |          128 |  0.021757



Passed Tests: 4/8 Percentage: 50.000%
Failed Tests: 4/8 Percentage: 50.000%


Writing Logfile to: /tmp/buildtest_hldlt9qt.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest.log

The rebuild option expects a range between 1-50, the --rebuild=1 is equivalent to running without --rebuild option. We set a max limit for rebuild option to avoid system degredation due to high workload.

If you try to exceed this bound you will get an error such as

$ buildtest build -b tutorials/pass_returncode.yml --rebuild 51
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/bin/buildtest", line 17, in <module>
    buildtest.main.main()
  File "/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/main.py", line 108, in main
    helpfilter=args.helpfilter,
  File "/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v0.11.0/buildtest/cli/build.py", line 525, in __init__
    f"--rebuild {rebuild} exceeds maximum rebuild limit of 50"
buildtest.exceptions.BuildTestError: '--rebuild 51 exceeds maximum rebuild limit of 50'

Use Alternate Configuration file

If you want to use an alternate configuration file when building test you can use buildtest -c <config> build. buildtest will prefer configuration file on command line over the user configuration ($HOME/.buildtest/config.yml). For more details see Which configuration file does buildtest read?.

Keeping Stage Directory

buildtest will create setup the test environment in the stage directory where test will be executed. Once test is complete, buildtest will remove the stage directory. If you want to preserve the stage directory you can use buildtest build --keep-stage-dir, this is only useful if you want to run the test manually