Alan King
Senior Software Developer
iRODS Consortium
iRODS Development and Testing Environments (v8)
iRODS Development and Testing Environments (v8)
November 13-18, 2022
Supercomputing 2022
Dallas, Texas USA
Overview
Motivation
Passing tests build confidence in the changes developers make to software, asserting the correctness of the changes and of the entire system.
Therefore, building and testing iRODS should be easy and consistent for everybody.
History of Build-and-Test Systems at iRODS
Limitations of the past
Bottom line: Our needs as developers and project maintainers were not being met satisfactorily.
Basic Build-and-Test Workflow
source code
↓
↓
packages
↓
↓
test results
run tests
build packages
v8 - 2021/2022
source code
↓
↓
packages
↓
↓
test results
irods_testing_environment
irods_development_environment
iRODS Development Environment
https://github.com/irods/irods_development_environment
Containerized package builders for iRODS, plugins, and externals for all supported OS's, plus debugging tools.
Advantages:
iRODS Development Environment: Example Usage
$ docker run --rm \
-v ${irods_sourcedir}:/irods_source:ro \
-v ${irods_builddir}:/irods_build \
-v ${icommands_sourcedir}:/icommands_source:ro \
-v ${icommands_builddir}:/icommands_build \
-v ${irods_packagedir}:/irods_packages \
-v ${externals_packagedir}:/irods_externals_packages \
irods-core-builder-m:${PLATFORM}-${VERSION}
Run a Docker container that builds packages
v8 - 2021/2022
source code
↓
↓
packages
↓
↓
test results
irods_testing_environment
irods_development_environment
iRODS Testing Environment
https://github.com/irods/irods_testing_environment
Scripts built on python library which uses Docker Compose to stand up iRODS zones in various configurations and run tests.
Advantages:
iRODS Testing Environment: Capabilities
iRODS Testing Environment: Running Tests
$ python run_core_tests.py \ --project-directory projects/ubuntu-20.04/ubuntu-20.04-postgres-10.12 \ --irods-package-directory ~/hdd/builds/irods_packages/4-3-stable/ubuntu-20.04 \ --concurrent-test-executor-count 4
Basic Build-and-Test Workflow
source code
↓
↓
packages
↓
↓
test results
irods_testing_environment
irods_development_environment
Future Work and Dreams
Bonus: irods_demo
https://github.com/irods/irods_demo
Docker Compose project which runs the following services:
While less flexible than the testing environment, irods_demo has proven useful in several POCs (and, obviously, demonstrations).
We are seeking community participation!
Please give it a whirl and let us know how it goes.
Thanks for listening