before_script: - make demo - make data - make germline - make -C browser sha1 - cp -p doc/analysis-example.vidjil browser/ stages: - test_tools - test_quality - test_unit - deploy_review - test_germlines - test_functional - test_functional_external - test_shouldvdj - prepare_release - release - valgrind_unit - valgrind_functional - deploy_prod # Tools test_tools: stage: test_tools script: make -C tools/tests # Germlines test_germlines: stage: test_germlines script: - make -C germline get-all-data - make -C algo/tests should_germline only: - /^feature-g\/.*$/ # Algorithm test_algo_unit: stage: test_unit script: make -C algo unit only: - /^feature-a\/.*$/ test_tools_unit: stage: test_unit script: make -C tools/tests only: - /^feature-a\/.*$/ test_algo_should: stage: test_functional script: make -C algo should only: - /^feature-a\/.*$/ test_algo_shouldvdj: stage: test_shouldvdj script: make -C algo shouldvdj only: - /^feature-a\/.*$/ algo_valgrind_unit: stage: valgrind_unit script: make -C algo valgrind_unit only: - /^feature-a\/.*$/ tags: - valgrind algo_valgrind_functional: stage: valgrind_functional script: make -C algo valgrind_should when: manual only: - /^feature-a\/.*$/ tags: - valgrind prepare_release: stage: prepare_release script: make -C algo release RELEASE_TAG='rc' when: manual only: - /^feature-a\/.*$/ release: stage: release script: make -C algo release RELEASE_TAG=`cat algo/release` when: manual only: - /^feature-a\/release$/ artifacts: paths: - algo/releases/vidjil-algo-`cat algo/release`.tar.gz - algo/releases/vidjil-algo-`cat algo/release`/vidjil-algo-`cat algo/release`_`uname -m` tags: - ubuntu-16.04-amd64 # Client test_browser_unit: stage: test_unit script: make unit_browser artifacts: paths: - browser/ only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ - prod-client - dev tags: - web test_browser-functional: stage: test_functional script: - make -C browser - source /etc/profile.d/rvm.sh - rvm use 2.1.1 - HEADLESS=1 make -C browser/test functional artifacts: paths: - browser/ only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ - prod-client tags: - web test_browser-functional-external: stage: test_functional_external retry: 2 script: - make -C browser - source /etc/profile.d/rvm.sh - rvm use 2.1.1 - HEADLESS=1 make -C browser/test external artifacts: paths: - browser/ only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ - prod-client tags: - web code_quality: stage: test_quality script: make -C browser quality only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ - prod-client - dev tags: - web # Server test_server_unit: stage: test_unit script: - virtualenv $CI_BUILD_REF_SLUG - source $CI_BUILD_REF_SLUG/bin/activate - pip install -r requirements.txt - make -C server install_web2py_standalone - make -C server launch_fuse_server - make unit_server after_script: - make -C server kill_fuse_server - deactivate only: - /^feature-[sw]\/.*$/ - /^hotfix-[sw]\/.*$/ - prod-server - dev tags: - web # Deployment deploy_review: stage: deploy_review script: - make -C browser icons - rsync -av --delete browser $DEPLOY_SERVER:$DEPLOY_SERVER_PATH$CI_BUILD_REF_SLUG environment: name: review/$CI_BUILD_REF_NAME url: http://$CI_BUILD_REF_SLUG.ci.vidjil.org/?data=analysis-example.vidjil on_stop: stop_deploy_review only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ tags: - web deploy_prod: stage: deploy_prod script: - rsync -av --delete browser $PROD_CLIENT_SERVER:$PROD_CLIENT_PATH - ssh $PROD_CLIENT_SERVER "cp -pr $PROD_CLIENT_PATH_TEMPLATE/browser $PROD_CLIENT_PATH" environment: name: production url: http://app.vidjil.org/?data=analysis-example.vidjil only: - prod-client tags: - web stop_deploy_review: stage: deploy_review variables: GIT_STRATEGY: none script: - ssh $DEPLOY_SERVER "rm -rf $DEPLOY_SERVER_PATH$CI_BUILD_REF_SLUG" when: manual environment: name: review/$CI_BUILD_REF_NAME action: stop only: - /^feature-[cw]\/.*$/ - /^hotfix-[cw]\/.*$/ tags: - web