def circle_ci_survey(survey_tags,web_folder,survey_repo=None,delete=True,survey_file="survey.tsv"): '''circle_ci_survey checks format of surveys.tsv file :param survey_tags: list of survey folders (exp_id variables) to test :param web folder: folder with generated survey web :param survey_repo: folder with experiments to test. If None, will pull from master branch :param delete: delete experiment folders when finished ''' if isinstance(survey_tags,str): survey_tags = [survey_tags] # If we are running on circle, only test changed experiments if "CIRCLE_BRANCH" in os.environ.keys(): print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..." survey_repo = os.getcwd() master_folder = os.path.abspath(os.path.join(survey_repo,"master")) if not os.path.exists(master_folder): os.mkdir(master_folder) download_repo("surveys",master_folder) changed_surveys = [os.path.split(x)[-1] for x in find_changed(survey_repo,master_folder,repo_type="surveys")] changed_surveys = [e for e in survey_tags if e in changed_surveys] if len(changed_surveys) > 0: validate_surveys(survey_tags=changed_surveys,survey_repo=survey_repo,survey_file=survey_file) generate_experiment_web(web_folder,survey_folder=os.path.abspath(survey_repo)) survey_robot_web(web_folder,survey_tags=changed_surveys) else: print "Skipping surveys %s, no changes detected." %(",".join(survey_tags))
def circle_ci_test(experiment_tags,web_folder,experiment_repo=None,delete=True,pause_time=500): '''circle_ci_test Deploy experiment testing robot, requires generation of web folder, and can be deleted on finish. :param experiment_tags: list of experiment folders (exp_id variables) to test :param web_folder: output web folder to generate experiment web. Will be created if does not exist :param experiment_repo: folder with experiments to test. If None, will pull from master branch :param delete: delete experiment folders when finished :param pause_time: The time to pause between experiments, in addition to post trial times ''' if isinstance(experiment_tags,str): experiment_tags = [experiment_tags] # If we are running on circle, only test changed experiments if "CIRCLE_BRANCH" in os.environ.keys(): print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..." master_folder = os.path.abspath(os.path.join(os.getcwd(),"master")) if not os.path.exists(master_folder): os.mkdir(master_folder) download_repo("experiments",master_folder) changed_experiments = [os.path.split(x)[-1] for x in find_changed(os.getcwd(),master_folder)] changed_experiments = [e for e in experiment_tags if e in changed_experiments] if len(changed_experiments) > 0: generate_experiment_web(web_folder,experiment_folder=os.path.abspath(experiment_repo),make_surveys=False) experiment_robot_web(web_folder,experiment_tags=changed_experiments) else: print "Skipping experiments %s, no changes detected." %(",".join(experiment_tags))
def circle_ci_test(experiment_tags,web_folder,experiment_repo=None,delete=True,pause_time=500,repo_type="experiments"): '''circle_ci_test Deploy experiment testing robot, requires generation of web folder, and can be deleted on finish. :param experiment_tags: list of experiment folders (exp_id variables) to test :param web_folder: output web folder to generate experiment web. Will be created if does not exist :param experiment_repo: folder with experiments to test. If None, will pull from master branch :param delete: delete experiment folders when finished :param pause_time: The time to pause between experiments, in addition to post trial times ''' if isinstance(experiment_tags,str): experiment_tags = [experiment_tags] # If we are running on circle, only test changed experiments if "CIRCLE_BRANCH" in os.environ.keys(): print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..." master_folder = os.path.abspath(os.path.join(os.getcwd(),"master")) if not os.path.exists(master_folder): os.mkdir(master_folder) download_repo(repo_type,master_folder) changed_experiments = [os.path.split(x)[-1] for x in find_changed(os.getcwd(),master_folder)] changed_experiments = [e for e in experiment_tags if e in changed_experiments] if len(changed_experiments) > 0: generate_experiment_web(web_folder,experiment_folder=os.path.abspath(experiment_repo),make_surveys=False) experiment_robot_web(web_folder,experiment_tags=changed_experiments) else: print "Skipping %s %s, no changes detected." %(repo_type,",".join(experiment_tags))
# Here is how to generate the entire expfactory.github.io from expfactory.views import generate_experiment_web from expfactory.tests import experiment_robot_web output_folder = "/home/vanessa/Desktop/site" # does not have to exist generate_experiment_web(output_folder) # Test with selenium for errors, etc. (uses firefox) experiment_robot_web(output_folder)