Provided by: tox-stages_0.1.6-1_all bug

NAME

     tox-stages — run Tox environments in groups, stop on failure

SYNOPSIS

     tox-stages [-f filename] available
     tox-stages [-f filename] run [--arg arg... | -A arg...] [--match-spec spec | -m spec]
                [--parallel spec | -p spec] [stage...]

DESCRIPTION

     The tox-stages tool is used to run Tox test environments in several stages, one or more
     environments running in parallel at each stage.  If any of the test environments run at some
     stage should fail, tox-stages will stop, not run anything further, and exit with a non-zero
     exit code.  This allows quick static check tools like e.g.  ruff to stop the testing process
     early, and also allows scenarios like running all the static check tools before the
     package's unit or functional tests to avoid unnecessary failures on simple errors.

TAGGING TOX TEST ENVIRONMENTS

     The tox-stages tool expects to be able to invoke an installation of Tox that will load the
     tox_trivtags plugin module distributed as part of the test-stages library.  This module will
     add a tags list of strings to the definition of each Tox environment; those tags can be
     specified in the tox.ini file as follows:

           [testenv:format]
           skip_install = True
           tags =
             check
             format
           deps =
             ...

SUBCOMMANDS

   available - can the tox-stages tool be run on this system
     The tox-stages available subcommand exits with a code of zero (indicating success) if there
     is a suitable version of Tox installed in the same Python execution environment as the
     tox-stages tool itself.

   run - run some Tox environments in stages
     The tox-stages run subcommand starts the process of running Tox test environments, grouped
     in stages.  If any of the test environments run at some stage should fail, tox-stages will
     stop, not run anything further, and exit with a non-zero exit code.

     The run subcommand accepts the following options:

     --arg argument | -A argument
             Pass an additional command-line argument to each Tox invocation.  This option may be
             specified more than once, and the arguments will be passed in the order given.

     --match-spec spec | -m spec
             Pass an additional specification for Tox environments to satisfy, e.g.  “-m
             '@check'” to only run static checkers and not unit tests.

     --parallel spec | -p spec
             Specify which stages to run in parallel.  The spec parameter is a list of stage
             indices (1, 2, etc.) or ranges (4-6); the tests in the specified stages will be run
             in parallel, while the tests in the rest of the stages will not.  By default, all
             tests are run in parallel.  The special values “” (an empty string), “0” (a single
             character, the digit zero), or “none” will be treated as an empty set, and no tests
             will be run in parallel.

     The positional arguments to the run subcommand are interpreted as test stage specifications
     as described in the parse-stages library's documentation.  If no stage specifications are
     given on the command line, tox-stages will read the pyproject.toml file in the same
     directory as the tox.ini file, and will look for a tool.test-stages.stages list of strings
     to use.

FILES

     If no stage specifications are given on the command line, tox-stages will read the
     pyproject.toml file in the same directory as the tox.ini file, and will look for a
     tool.test-stages.stages list of strings to use.

EXAMPLES

     Run all the stages as defined in the pyproject.toml
      file's tool.test-stages.stages parameter:

           tox-stages run

     Group Tox environments into stages as defined in the pyproject.toml file, but then only run
     the ones marked with the "check" tag that also have names containing the string "format":

           tox-stages run -m '@check and format'

     Run a specific set of stages, passing -- -k slug as additional Tox arguments so that e.g. a
     pytest environment that uses the Tox {posargs} variable may only run a selected subset of
     tests:

           tox-stages -A -- -A -k -A slug @check unit-tests

     Execute a somewhat more complicated recipe:

     -  first, run all test environments with names containing "ruff" in parallel

     -  then, run the rest of the test environments marked with the "check" tag, but not marked
        with the "manual" tag, one by one

     -  then, run all test environments with names containing "unit" in parallel

     -  finally, run the rest of the test environments marked with the "tests" tag, but not
        marked with the "manual" tag, in parallel

           tox-stages -p 1,3-4 ruff '@check and not @manual' unit '@tests and not @manual'

AUTHORS

     The tox-stages tool, along with its documentation, is developed as part of the test-stages
     library by Peter Pentchev ⟨roam@ringlet.net⟩.