Index: .gitlab-ci.yml |
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml |
index 4109a810e68940c367cffb763069bc325ebf23d2..e9415da4d9ce38917ecd8e53aefd2d1ed1a6def6 100644 |
--- a/.gitlab-ci.yml |
+++ b/.gitlab-ci.yml |
@@ -14,12 +14,46 @@ |
# along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
stages: |
- - test_ext |
+ - prepare |
+ - test |
-qunit:gecko: |
- stage: test_ext |
- script: |
+.dependencies: |
+ script: &dependencies |
- mkdir -p .git/info |
- pip install --user Jinja2 cryptography |
- - npm install |
- - npm test |
+ - python ensure_dependencies.py |
+ - "[ -d node_modules ] || npm install" |
+ |
+.test_template: &test_template |
+ stage: test |
+ before_script: *dependencies |
+ cache: |
+ key: cache_$CI_COMMIT_SHA |
+ paths: |
+ - ./ |
+ policy: pull |
+ |
+ |
+prepare-dependencies: |
+ stage: prepare |
+ script: *dependencies |
+ cache: |
+ key: cache_$CI_COMMIT_SHA |
+ paths: |
+ - ./ |
+ policy: push |
+ |
+tests:gecko: |
+ <<: *test_template |
+ script: |
+ - npm run test-only -- -g gecko |
+ |
+tests:chrome: |
+ <<: *test_template |
+ script: |
+ - xvfb-run npm run test-only -- -g chrome |
+ |
+lint: |
+ <<: *test_template |
+ script: |
+ - npm run lint |