forked from oppia/oppia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
148 lines (138 loc) · 8.99 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
sudo: required
dist: xenial
language: python
python:
- 2.7
services:
- xvfb
branches:
only:
- master
- develop
- /^release-\d+\.\d+\.\d+$/
- /^release-\d+\.\d+\.\d+-hotfix-\d+$/
env:
matrix:
# These lines are commented out because these checks are being run on CircleCI
# here: https://circleci.com/gh/oppia/oppia
# - RUN_LINT=true
# - RUN_FRONTEND_TESTS=true
# - RUN_BACKEND_TESTS=true REPORT_BACKEND_COVERAGE=false EXCLUDE_LOAD_TESTS=true
# TODO(sll): Reinstate this when we can get it to run in reasonable time.
# - RUN_BACKEND_TESTS=true REPORT_BACKEND_COVERAGE=true
# TODO(sll): Reinstate this when the load tests are more reliable.
# - RUN_BACKEND_TESTS=true REPORT_BACKEND_COVERAGE=true EXCLUDE_LOAD_TESTS=false
- RUN_E2E_TESTS_ACCESSIBILITY=true
- RUN_E2E_TESTS_ADDITIONAL_EDITOR_FEATURES=true
- RUN_E2E_TESTS_ADDITIONAL_PLAYER_FEATURES=true
- RUN_E2E_TESTS_COLLECTIONS=true
- RUN_E2E_TESTS_CORE_EDITOR_AND_PLAYER_FEATURES=true
- RUN_E2E_TESTS_CREATOR_DASHBOARD=true
- RUN_E2E_TESTS_EMBEDDING=true
- RUN_E2E_TESTS_EXPLORATION_FEEDBACK_TAB=true
- RUN_E2E_TESTS_EXPLORATION_HISTORY_TAB=true
- RUN_E2E_TESTS_EXPLORATION_IMPROVEMENTS_TAB=true
- RUN_E2E_TESTS_EXPLORATION_STATISTICS_TAB=true
- RUN_E2E_TESTS_EXPLORATION_TRANSLATION_TAB=true
- RUN_E2E_TESTS_EXTENSIONS=true
- RUN_E2E_TESTS_LEARNER_DASHBOARD=true
- RUN_E2E_TESTS_LEARNER=true
- RUN_E2E_TESTS_LIBRARY=true
- RUN_E2E_TESTS_NAVIGATION=true
- RUN_E2E_TESTS_PREFERENCES=true
- RUN_E2E_TESTS_PROFILE_MENU=true
- RUN_E2E_TESTS_PUBLICATION=true
- RUN_E2E_TESTS_SKILL_EDITOR=true
- RUN_E2E_TESTS_SUBSCRIPTIONS=true
- RUN_E2E_TESTS_TOPICS_AND_SKILLS_DASHBOARD=true
- RUN_E2E_TESTS_TOPIC_AND_STORY_EDITOR=true
- RUN_E2E_TESTS_USERS=true
matrix:
allow_failures: []
fast_finish: true
notifications:
email:
recipients:
# The following was generated through the following command using the
# travis ruby gem:
# travis encrypt -r oppia/oppia "[email protected]"
secure: uMMzsG4ZAB9ofJR/m+KUlTmsYj7oahtCIzUVCZl9BX0qxgMgiwHDTEzHqvyAcyFOaYsKpFyWFKRBfakOizPXP8DZw8/yXi9YtieSUUzxXFZxsGahcVatJBRVKGPw1L4C+V59N9+DdeMLpAd/knQ88uEffOHCCLuoWrsfC/Tz/35yD7zCrLmsnFjcjkufaXh9qCEUjkzq/SgpsvqJRHHP8hrKh3QetmCWhzTD/ZoPxKgpkd5LiFN0AYjRmUN538NAP9Us8WLeQigcM2UyX7WJakmGHgLMm9ieAQRJwcd1bX3Nf+WQNymidGrZnoWSrFiyLmbO8+fiMDZHVRgVC7jeGXGt0hHP9FiNWCjyW4B66ll4RT8iN/IfYJ1RF7fcgzs6cU6jZFUUZBeIdf1Wiv1zNproEAKJKFZVrxlImJeg9Js9vC+TB/Talxj9mnvm/yWZVnSCW6FN/Q/n8dkuIR/VmVkoUwmL/8A0hsZzi31JpZCqv+/8K2hEv9b3zl3lKr6h/o1WHPhU6K5i/XzIV5LhjiM6O6AwEn97bjsEnZqNeZ8O/W7Q+aifG1yX+bfN3qflFE1A/xiruhRFxxSdYfbrF1PvX92IwAwvhBEjDm9Cw/a0QNRY7S92SBNgUaQqEb0MrgbmFyEapf4pzo9Sp9UyQwisLCpL9xZr0cC4vhWTE5A=
on_success: change
on_failure: change
irc:
channels:
- chat.freenode.net#oppia
on_success: never
on_failure: always
webhooks:
urls:
# This URL can be obtained by going to the Gitter chat room
# and clicking Settings > Integrations.
- https://webhooks.gitter.im/e/f3865f3ee5e9b40ee871
on_success: always
on_failure: always
before_install:
- pip install codecov
- export CHROME_BIN=/usr/bin/google-chrome-stable
- export DISPLAY=:99.0
install:
- pushd $TRAVIS_BUILD_DIR
- python -m scripts.install_third_party_libs
script:
# These lines are commented out because these checks are being run on CircleCI
# here: https://circleci.com/gh/oppia/oppia
# - if [ "$RUN_LINT" == 'true' ]; then python scripts/third_party_size_check.py; python scripts/pre_commit_linter.py --path=. --verbose; fi
# Travis aborts test run if nothing is printed back to STDOUT for some time.
# -x is used to avoid that.
# - if [ "$RUN_FRONTEND_TESTS" == 'true' ]; then travis_retry bash -x scripts/run_frontend_tests.sh --run-minified-tests=true; fi
# - if [ "$RUN_BACKEND_TESTS" == 'true' ] && [ "$REPORT_BACKEND_COVERAGE" == 'true' ] && [ "$EXCLUDE_LOAD_TESTS" == 'true' ]; then bash scripts/run_backend_tests.sh --generate_coverage_report --exclude_load_tests; fi
# - if [ "$RUN_BACKEND_TESTS" == 'true' ] && [ "$REPORT_BACKEND_COVERAGE" == 'false' ] && [ "$EXCLUDE_LOAD_TESTS" == 'true' ]; then bash scripts/run_backend_tests.sh --exclude_load_tests; fi
# - if [ "$RUN_BACKEND_TESTS" == 'true' ] && [ "$REPORT_BACKEND_COVERAGE" == 'true' ] && [ "$EXCLUDE_LOAD_TESTS" == 'false' ]; then bash scripts/run_backend_tests.sh --generate_coverage_report; fi
# - if [ "$RUN_BACKEND_TESTS" == 'true' ] && [ "$REPORT_BACKEND_COVERAGE" == 'false' ] && [ "$EXCLUDE_LOAD_TESTS" == 'false' ]; then bash scripts/run_backend_tests.sh; fi
# Run the e2e tests in the production environment (using --prod_env).
- if [ "$RUN_E2E_TESTS_ACCESSIBILITY" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="accessibility" --prod_env; fi
- if [ "$RUN_E2E_TESTS_ADDITIONAL_EDITOR_FEATURES" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="additionalEditorFeatures" --prod_env; fi
- if [ "$RUN_E2E_TESTS_ADDITIONAL_PLAYER_FEATURES" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="additionalPlayerFeatures" --prod_env; fi
- if [ "$RUN_E2E_TESTS_COLLECTIONS" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="collections" --prod_env; fi
- if [ "$RUN_E2E_TESTS_CORE_EDITOR_AND_PLAYER_FEATURES" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="coreEditorAndPlayerFeatures" --prod_env; fi
- if [ "$RUN_E2E_TESTS_CREATOR_DASHBOARD" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="creatorDashboard" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EMBEDDING" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="embedding" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXPLORATION_FEEDBACK_TAB" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="explorationFeedbackTab" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXPLORATION_HISTORY_TAB" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="explorationHistoryTab" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXPLORATION_IMPROVEMENTS_TAB" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="explorationImprovementsTab" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXPLORATION_STATISTICS_TAB" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="explorationStatisticsTab" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXPLORATION_TRANSLATION_TAB" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="explorationTranslationTab" --prod_env; fi
- if [ "$RUN_E2E_TESTS_EXTENSIONS" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="extensions" --prod_env; fi
- if [ "$RUN_E2E_TESTS_LEARNER_DASHBOARD" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="learnerDashboard" --prod_env; fi
- if [ "$RUN_E2E_TESTS_LEARNER" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="learner" --prod_env; fi
- if [ "$RUN_E2E_TESTS_LIBRARY" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="library" --prod_env; fi
- if [ "$RUN_E2E_TESTS_NAVIGATION" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="navigation" --prod_env; fi
- if [ "$RUN_E2E_TESTS_PREFERENCES" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="preferences" --prod_env; fi
- if [ "$RUN_E2E_TESTS_PROFILE_MENU" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="profileMenu" --prod_env; fi
- if [ "$RUN_E2E_TESTS_PUBLICATION" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="publication" --prod_env; fi
- if [ "$RUN_E2E_TESTS_SKILL_EDITOR" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="skillEditor" --prod_env; fi
- if [ "$RUN_E2E_TESTS_SUBSCRIPTIONS" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="subscriptions" --prod_env; fi
- if [ "$RUN_E2E_TESTS_TOPICS_AND_SKILLS_DASHBOARD" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="topicsAndSkillsDashboard" --prod_env; fi
- if [ "$RUN_E2E_TESTS_TOPIC_AND_STORY_EDITOR" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="topicAndStoryEditor" --prod_env; fi
- if [ "$RUN_E2E_TESTS_USERS" == 'true' ]; then travis_retry bash scripts/run_e2e_tests.sh --suite="users" --prod_env; fi
# These lines are commented out because these checks are being run on CircleCI
# here: https://circleci.com/gh/oppia/oppia
# after_success:
# - if [ "$RUN_BACKEND_TESTS" == 'true' ] && [ "$REPORT_BACKEND_COVERAGE" == 'true' ]; then codecov; fi
# - if [ "$RUN_FRONTEND_TESTS" == 'true' ]; then codecov --file ../karma_coverage_reports/coverage-final.json; fi
cache:
# Cache Oppia's dependencies.
directories:
- ../oppia_tools/
- node_modules/
- third_party/
- $HOME/.cache/pip
- $HOME/.cache/TravisChrome/
- backend_prod_files/templates/head/
- build/templates/head/
- backend_prod_files/extensions/
- build/extensions/
before_cache:
# Delete python bytecode to prevent cache rebuild.
- find third_party -name "*.pyc" -print -delete
- find backend_prod_files/extensions/ -name "*.pyc" -print -delete