Skip to content

Latest commit

 

History

History

tools

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Docker CLI scripts

Requirements

You must have these available on the host system:

  • Python 3.7+
  • Docker

To run CUDA tests, you will also need:

  • NVIDIA Docker runtime
  • CUDA Driver 396.26+

(These are just the requirements for the "host system" that runs the docker containers. ISCE3 itself has a much more extensive set of prerequisites, which will be automatically installed inside the docker containers.)

Basic usage

./tools/run.py all

This will run the typical "all" sequence which is intended to mimic our CI build/testing pipeline. More options can be specified, e.g.

./tools/run.py -B build-alpine -i alpine setup

This will run the "setup" step for the "alpine" image set, using a build directory named "build-alpine". See the run.py script for a list of steps, and imagesets/imgset.py for their default implementations.

Advanced usage

CI Debugging

CI failures should be reproducible locally via these scripts. Running the "all" sequence should be sufficient.

./tools/run.py all

If additional info is needed, you can "drop in" to the builder image and run commands interactively. E.g.

./tools/run.py dropin

This will put you in the build directory with the same environment the tests ran in. You can then run commands to isolate the error:

ctest -R my_failing_test --verbose

Local development

These scripts can be used as a local development environment, to sidestep installing all the development libraries required to build ISCE3. First build the docker images, run CMake configuration, and compile the code.

./tools/run.py setup configure build

After some local development, you can just rerun the build step - CMake will only recompile files which have been modified.

./tools/run.py build

Updating conda specfiles

See Building identical conda environments

  • Create a fresh conda environment
  • Install runtime dependencies from requirements.txt
  • conda list --explicit > runtime/spec-file.txt
  • Install dev dependencies from requirements.txt
  • conda list --explicit > dev/spec-file.txt
  • Make sure the dev dependencies are a superset of the runtime dependencies