BoxLang 🚀 A New JVM Dynamic Language Learn More...
A tool to configure an ecosystem of multiple projects from multiple repos, typically for a feature testing process.
Frequently in either testing or in a developer set up it is necessary to have several sites co-locate and exist together. This could be a Front end site in Vue, Angular, React or Quasar with a CF or other server side language. These are more likely in different repos. It's also a feasible scenario that someone will need to easily and quickly set up a site which needs to change branches quickly whether it be for QA or other purposes.
Ecosystem Testing makes that fairly straightforward and even includes some built in Docker support. Once configured, the configuration file can be shared to make replicating it easy. It also accomodates
Use CommandBox and install using box install ecosystemTesting
ecosystemTesting configure
Once all the sites are configured you can refresh all or part of the ecosystem.
ecosystemTesting refreshEcosystem _projectname_
This will display a list of the sites in this project.Each time a site is refreshed it follows this cycle:
Ecosystem Testing contains a folder called "envFolder" which can house any files (i.e. .env, .cfconfig etc) which would be overwritten or deleted when a site is pulled but the need for the local configuation doesn't go away. When a site is "refreshed" the contents of the folder are completely deleted to ensure that it is "clean" for the next test. During a site setup, you can specify the files to me copied from this envFolder to the local site.
After the site is pulled (See the section on Life Cycle) the system will loop over the list in the scripts node. These are run from CommandBox but elements outside of CommandBox can be run by putting an ! in front of the command. For example: Example script for a JS site "!yarn install", "!docker rm controlSite", "!docker-compose build controlSite"
To run an external file either use something like recipe myScript.boxr
, !myScript.bat
or !bash myScript.sh
.
1.0.0 - moved away from storing properties in CommandBox config and into local json files. General cleanup
0.0.83 - changed the obtainFromS3 method to use s3sdk's downloadObject rather than getObject
0.0.82 - Updated default database for restoreDB and
0.0.81 - made the parent branch for evergreening an option at run time
0.0.80 - fixed typo in createDatasource
0.0.79 - Added commandbox-cbdatasource as dependency; fixed issue in creating datasource immediately after adding database settings.
0.0.78 - Fixed problem with binary files being corrupted during the upload to S3
0.0.74 - Added TRY CATCH to the restore db statement
0.0.73 - renamed variables in restore to make directions clearer.
0.0.70 - Added slash directions for different OS
0.0.69 - added DB support
0.0.68 - added force rebuild of JS sites
0.0.67 - post install restart of docker edited
0.0.65 - better handling for project data for projects which don't exist
0.0.64 - added post install script to add config.modules.ecosystemTesting.installed=true
0.0.63 - updated command namespace to ecosystemTesting
0.0.62 - Fixed path for github sites; added commandPrefix to add sudo
for linux installations.
0.0.61 - Scripted an automatic commit message when evergreening the branch
0.0.60 - fixed typo in error messaging
0.0.59 - really added sudo to ALL linux commands
0.0.58 - added sudo to all linux commands
$
box install ecosystemTesting