debian-mirror-gitlab/.gitlab/ci/frontend.gitlab-ci.yml

241 lines
5.5 KiB
YAML
Raw Normal View History

2019-12-04 20:38:33 +05:30
.assets-compile-cache:
2019-07-31 22:56:46 +05:30
cache:
paths:
- vendor/ruby/
- .yarn-cache/
- tmp/cache/assets/sprockets
2019-09-30 21:07:59 +05:30
.gitlab:assets:compile-metadata:
2019-12-04 20:38:33 +05:30
extends:
- .default-tags
- .default-retry
- .default-only
- .default-before_script
- .assets-compile-cache
- .only-code-qa-changes
2019-10-12 21:52:04 +05:30
image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-git-2.22-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.33-docker-18.06.1
2019-12-04 20:38:33 +05:30
stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"]
2019-07-31 22:56:46 +05:30
services:
2019-09-30 21:07:59 +05:30
- docker:19.03.0-dind
2019-07-31 22:56:46 +05:30
variables:
NODE_ENV: "production"
RAILS_ENV: "production"
SETUP_DB: "false"
SKIP_STORAGE_VALIDATION: "true"
WEBPACK_REPORT: "true"
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://docker:2375
2019-12-04 20:38:33 +05:30
cache:
key: "assets-compile:production:vendor_ruby:.yarn-cache:tmp_cache_assets_sprockets:v6"
artifacts:
name: webpack-report
expire_in: 31d
paths:
- webpack-report/
- public/assets/
2019-07-31 22:56:46 +05:30
script:
- node --version
2019-09-30 21:07:59 +05:30
- retry yarn install --frozen-lockfile --production --cache-folder .yarn-cache --prefer-offline
2019-07-31 22:56:46 +05:30
- free -m
2019-09-04 21:01:54 +05:30
- retry bundle exec rake gitlab:assets:compile
2019-07-31 22:56:46 +05:30
- time scripts/build_assets_image
- scripts/clean-old-cached-assets
2019-09-04 21:01:54 +05:30
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
2019-07-31 22:56:46 +05:30
only:
2019-12-04 20:38:33 +05:30
variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
- $CI_SERVER_HOST == "dev.gitlab.org"
2019-07-31 22:56:46 +05:30
tags:
- gitlab-org
2019-12-04 20:38:33 +05:30
- docker
2019-07-31 22:56:46 +05:30
2019-09-30 21:07:59 +05:30
gitlab:assets:compile:
extends: .gitlab:assets:compile-metadata
2019-12-04 20:38:33 +05:30
only:
refs:
- master
2019-09-30 21:07:59 +05:30
cache:
policy: pull-push
gitlab:assets:compile pull-cache:
extends: .gitlab:assets:compile-metadata
except:
refs:
2019-12-04 20:38:33 +05:30
- master
cache:
policy: pull
2019-09-30 21:07:59 +05:30
.compile-assets-metadata:
2019-12-04 20:38:33 +05:30
extends:
- .default-tags
- .default-retry
- .default-only
- .default-before_script
- .assets-compile-cache
- .only-code-qa-changes
- .use-pg
2019-07-31 22:56:46 +05:30
stage: prepare
script:
- node --version
2019-09-30 21:07:59 +05:30
- retry yarn install --frozen-lockfile --cache-folder .yarn-cache --prefer-offline
2019-07-31 22:56:46 +05:30
- free -m
2019-09-04 21:01:54 +05:30
- retry bundle exec rake gitlab:assets:compile
2019-07-31 22:56:46 +05:30
- scripts/clean-old-cached-assets
variables:
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
2019-12-04 20:38:33 +05:30
cache:
key: "assets-compile:test:vendor_ruby:.yarn-cache:tmp_cache_assets_sprockets:v6"
2019-07-31 22:56:46 +05:30
artifacts:
expire_in: 7d
paths:
- node_modules
- public/assets
2019-09-30 21:07:59 +05:30
compile-assets:
extends: .compile-assets-metadata
2019-12-04 20:38:33 +05:30
only:
refs:
- master
2019-09-30 21:07:59 +05:30
cache:
policy: pull-push
compile-assets pull-cache:
extends: .compile-assets-metadata
2019-07-31 22:56:46 +05:30
except:
refs:
2019-12-04 20:38:33 +05:30
- master
cache:
policy: pull
.only-code-frontend-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
- .default-only
- .default-before_script
- .only-code-changes
- .use-pg
dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"]
2019-07-31 22:56:46 +05:30
karma:
2019-12-04 20:38:33 +05:30
extends: .only-code-frontend-job-base
2019-07-31 22:56:46 +05:30
variables:
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
script:
- export BABEL_ENV=coverage CHROME_LOG_FILE=chrome_debug.log
- date
- scripts/gitaly-test-spawn
- date
- bundle exec rake karma
coverage: '/^Statements *: (\d+\.\d+%)/'
artifacts:
name: coverage-javascript
expire_in: 31d
when: always
paths:
- chrome_debug.log
- coverage-javascript/
2019-10-12 21:52:04 +05:30
- tmp/tests/frontend/
reports:
junit: junit_karma.xml
2019-07-31 22:56:46 +05:30
jest:
2019-12-04 20:38:33 +05:30
extends: .only-code-frontend-job-base
2019-07-31 22:56:46 +05:30
script:
- scripts/gitaly-test-spawn
- date
2019-10-12 21:52:04 +05:30
- bundle exec rake frontend:fixtures
2019-07-31 22:56:46 +05:30
- date
- yarn jest --ci --coverage
artifacts:
name: coverage-frontend
expire_in: 31d
when: always
paths:
2019-09-04 21:01:54 +05:30
- coverage-frontend/
- junit_jest.xml
2019-10-12 21:52:04 +05:30
- tmp/tests/frontend/
reports:
junit: junit_jest.xml
2019-07-31 22:56:46 +05:30
cache:
key: jest
paths:
- tmp/jest/jest/
policy: pull-push
2019-12-04 20:38:33 +05:30
.qa-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
- .default-only
- .only-code-qa-changes
dependencies: []
stage: test
before_script:
2019-07-31 22:56:46 +05:30
- cd qa/
- bundle install
2019-12-04 20:38:33 +05:30
qa:internal:
extends: .qa-job-base
script:
2019-07-31 22:56:46 +05:30
- bundle exec rspec
qa:selectors:
2019-12-04 20:38:33 +05:30
extends: .qa-job-base
2019-07-31 22:56:46 +05:30
script:
- bundle exec bin/qa Test::Sanity::Selectors
2019-12-04 20:38:33 +05:30
.qa-frontend-node:
extends:
- .default-tags
- .default-retry
- .default-cache
- .default-only
- .only-code-changes
dependencies: []
2019-07-31 22:56:46 +05:30
cache:
key: "$CI_JOB_NAME"
paths:
- .yarn-cache/
policy: pull-push
script:
- date
2019-09-30 21:07:59 +05:30
- yarn install --frozen-lockfile --cache-folder .yarn-cache --prefer-offline
2019-07-31 22:56:46 +05:30
- date
- yarn run webpack-prod
qa-frontend-node:8:
2019-12-04 20:38:33 +05:30
extends: .qa-frontend-node
2019-10-12 21:52:04 +05:30
image: node:carbon
2019-07-31 22:56:46 +05:30
qa-frontend-node:10:
2019-12-04 20:38:33 +05:30
extends: .qa-frontend-node
2019-10-12 21:52:04 +05:30
image: node:dubnium
2019-07-31 22:56:46 +05:30
qa-frontend-node:latest:
2019-12-04 20:38:33 +05:30
extends: .qa-frontend-node
2019-10-12 21:52:04 +05:30
image: node:latest
2019-07-31 22:56:46 +05:30
allow_failure: true
2019-12-04 20:38:33 +05:30
webpack-dev-server:
extends:
- .default-tags
- .default-retry
- .default-cache
- .default-only
- .only-code-changes
dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"]
variables:
WEBPACK_MEMORY_TEST: "true"
2019-07-31 22:56:46 +05:30
script:
2019-12-04 20:38:33 +05:30
- node --version
- node --expose-gc node_modules/.bin/webpack-dev-server --config config/webpack.config.js