Newer
Older
image: registry.gitlab.tugraz.at/dbp/web-components/toolkit/main:v1
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"
- yarn install
- yarn run test
linting:
stage: test
script:
- yarn install
- yarn run lint
publish:
stage: deploy
only:
refs:
- deploy
- master
# https://www.npmjs.com/settings/dbp-deploy/tokens
# 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
.deploy_defaults: &deploy_defaults
except:
- schedules
stage: deploy
script:
# Add ssh key
- mkdir -p ~/.ssh
- echo "${DEPLOY_KEY}" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -t rsa "${DEPLOY_HOST}" >> ~/.ssh/known_hosts
# Deploy
- dep deploy "${CI_ENVIRONMENT_NAME}"
- echo "Deployed to ${CI_ENVIRONMENT_URL}"
# Simple health check
- curl --max-time 10 --retry 3 --output /dev/null --silent --show-error --fail --location "${CI_ENVIRONMENT_URL}"
deploy_demo:
only:
refs:
- demo
environment:
name: demo
url: https://frontend-demo.tugraz.at/apps/demo
variables:
DEPLOY_HOST: mw01-dev.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
deploy_development:
only:
refs:
- master
environment:
name: development
url: https://mw-frontend-dev.tugraz.at/apps/demo
variables:
DEPLOY_HOST: mw01-dev.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
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
# 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