diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 29402570ca77777b8bc61a72a3ad3f89732cbfa0..92f28af73a0bafeedf32b6366ab6c754c62cf191 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,15 +4,22 @@ cache: key: ${CI_PROJECT_PATH} paths: - _yarn_cache + - _cypress_cache + +before_script: + - yarn config set cache-folder "$CI_PROJECT_DIR/_yarn_cache" + - export CYPRESS_CACHE_FOLDER="$CI_PROJECT_DIR/_cypress_cache" stages: - test - deploy + - e2e-stage1 + - e2e-stage2 + - e2e-stage3 test: stage: test script: - - yarn config set cache-folder "$CI_PROJECT_DIR/_yarn_cache" - yarn install - yarn run test @@ -20,7 +27,6 @@ linting: stage: test allow_failure: true script: - - yarn config set cache-folder "$CI_PROJECT_DIR/_yarn_cache" - yarn install - yarn run lint @@ -35,7 +41,6 @@ publish: # NPM_TOKEN needs to be a "Publish" token with 2FA disabled! # "Automation" tokens don't work with lerna (even if they would work with "npm publish") - echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > ~/.npmrc - - yarn config set cache-folder "$CI_PROJECT_DIR/_yarn_cache" - yarn install - yarn run build - yarn run publish @@ -81,3 +86,46 @@ deploy_development: DEPLOY_KEY: "$DEPLOY_SSH_KEY" <<: *deploy_defaults +# For docker images see: +# https://github.com/cypress-io/cypress-docker-images/tree/master/browsers#cypressbrowsers + +.e2e_test_defaults: &e2e_test_defaults + only: + refs: + - master + # We don't need artifacts from previous runs + dependencies: [] + script: + - git clone https://gitlab.tugraz.at/dbp/middleware/e2e-tests.git --depth 1 + - cd e2e-tests + - yarn install + # - ./node_modules/.bin/cypress run --browser "$BROWSER" --spec "cypress/integration/toolkit-showcase/*.spec.js" + - xvfb-run ./node_modules/.bin/cypress run --browser "$BROWSER" --headed --spec "cypress/integration/toolkit-showcase/*.spec.js" + artifacts: + paths: + - e2e-tests/cypress/videos/* + - e2e-tests/cypress/screenshots/* + expire_in: 4 week + when: always + +ff75: + image: cypress/browsers:node13.8.0-chrome81-ff75 + stage: e2e-stage1 + variables: + MOZ_FORCE_DISABLE_E10S: 'true' + BROWSER: 'firefox' + <<: *e2e_test_defaults + +chrome84: + image: cypress/browsers:node14.7.0-chrome84 + stage: e2e-stage2 + variables: + BROWSER: 'chrome' + <<: *e2e_test_defaults + +edge88: + image: cypress/browsers:node14.10.1-edge88 + stage: e2e-stage3 + variables: + BROWSER: 'edge' + <<: *e2e_test_defaults