 Issue 29867566:
  Issue 6890 - run npm tests in parallel (PENDING)  (Closed) 
  Base URL: https://codereview.adblockplus.org/29862580/
    
  
    Issue 29867566:
  Issue 6890 - run npm tests in parallel (PENDING)  (Closed) 
  Base URL: https://codereview.adblockplus.org/29862580/| Left: | ||
| Right: | 
| LEFT | RIGHT | 
|---|---|
| 1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH | 
| 3 # | 3 # | 
| 4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify | 
| 5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as | 
| 6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. | 
| 7 # | 7 # | 
| 8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, | 
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. | 
| 12 # | 12 # | 
| 13 # You should have received a copy of the GNU General Public License | 13 # You should have received a copy of the GNU General Public License | 
| 14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 
| 15 | 15 | 
| 16 stages: | 16 stages: | 
| 17 - prepare | 17 - prepare | 
| 18 - test | 18 - test | 
| 19 | 19 | 
| 20 prepare-dependencies: | 20 .dependencies: | 
| 21 stage: prepare | 21 script: &dependencies | 
| 22 script: | |
| 23 - mkdir -p .git/info | 22 - mkdir -p .git/info | 
| 24 - pip install --user Jinja2 cryptography | 23 - pip install --user Jinja2 cryptography | 
| 25 - python ensure_dependencies.py | 24 - python ensure_dependencies.py | 
| 26 - npm install | 25 - "[ -d node_modules ] || npm install" | 
| 27 cache: | |
| 28 key: cache_$CI_COMMIT_SHA | |
| 29 paths: | |
| 30 - ./ | |
| 31 policy: push | |
| 32 | |
| 33 | 26 | 
| 34 .test_template: &test_template | 27 .test_template: &test_template | 
| 35 stage: test | 28 stage: test | 
| 36 before_script: | 29 before_script: *dependencies | 
| 37 - python ensure_dependencies.py | |
| 
Sebastian Noack
2018/09/03 19:37:35
FWIW, the lint job below doesn't require ensure_de
 
tlucas
2018/09/03 21:35:53
We'd need to copy this whole template into "lint"
 | |
| 38 - npm install | |
| 
Sebastian Noack
2018/09/03 19:37:35
Perhaps we can check if node_modules already exist
 
tlucas
2018/09/03 21:35:53
I was thinking about "what if node_modules was cre
 | |
| 39 cache: | 30 cache: | 
| 40 key: cache_$CI_COMMIT_SHA | 31 key: cache_$CI_COMMIT_SHA | 
| 41 paths: | 32 paths: | 
| 42 - ./ | 33 - ./ | 
| 43 policy: pull | 34 policy: pull | 
| 44 | 35 | 
| 45 | 36 | 
| 37 prepare-dependencies: | |
| 38 stage: prepare | |
| 39 script: *dependencies | |
| 40 cache: | |
| 41 key: cache_$CI_COMMIT_SHA | |
| 42 paths: | |
| 43 - ./ | |
| 44 policy: push | |
| 45 | |
| 46 tests:gecko: | 46 tests:gecko: | 
| 47 <<: *test_template | 47 <<: *test_template | 
| 48 script: | 48 script: | 
| 49 - npm test -- -g gecko | 49 - npm run test-only -- -g gecko | 
| 50 | 50 | 
| 51 tests:chrome: | 51 tests:chrome: | 
| 52 <<: *test_template | 52 <<: *test_template | 
| 53 script: | 53 script: | 
| 54 - xvfb-run npm test -- -g chrome | 54 - xvfb-run npm run test-only -- -g chrome | 
| 55 | 55 | 
| 56 lint: | 56 lint: | 
| 57 <<: *test_template | 57 <<: *test_template | 
| 58 script: | 58 script: | 
| 59 - npm run lint | 59 - npm run lint | 
| LEFT | RIGHT |