Closed rvosa closed 9 years ago
I think the right workflow should be as follows:
cpanm --installdeps
inside the supersmart folder scans Makefile.PL and installs the dependenciescpanm http://repo.git
Nope, like this:
Challenge: travis runs inside a perlbrew environment, which uses a non-system-wide local::lib for the unit tests, but running cpanminus inside puppet appears to result in system-wide installs. This means the unit tests don't find the dependencies.
Inside vagrant we are probably happy to install things system-wide, though this is not so nice for people wanting to apply the puppet manifest on a cluster where they don't want things to go system-wide.
Actually, if we make the puppet manifest install and upgrade cpanminus then it shouldn't do so with apt-get because that will install a system-wide one that won't play nice with perlbrew, which is what travis uses. For now I have therefore decided to NOT install cpanminus within puppet (though I can make it self-upgrade). This means that to make a vagrant box (issue #41) part of the script that does that must include the installation of cpanminus, as the puppet won't be able to do that.
As of commit 4dadd015f7c4e43ba617ba127819d5db36b9d900 the entire installation can now be run by travis. However, it appears many unit tests are failing again, so issue #20 is re-opened.
apt-get
cpanm --installdeps .
, which scans the Makefile.PL for packages to install. All other dependencies and configuration is done by the puppet script. This so far results in an apparently working installation in that the needed analysis tools (binaries) are found on the $PATH, the runtime config file is found in $SUPERSMART_HOME/conf/supersmart.ini and we can successfully connect to the database.
Many CPAN dependencies are missing from the puppet manifest. These are listed in .travis.yml (all the ones that are installed with
cpanm
as well as bioperl).