.assets-compile-cache: cache: paths: - vendor/ruby/ - .yarn-cache/ - tmp/cache/assets/sprockets .gitlab:assets:compile-metadata: extends: - .default-tags - .default-retry - .assets-compile-cache - .default-before_script - .except-docs 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 dependencies: ["setup-test-env"] services: - docker:19.03.0-dind 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 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/ script: - node --version - retry yarn install --frozen-lockfile --production --cache-folder .yarn-cache --prefer-offline - free -m - retry bundle exec rake gitlab:assets:compile - time scripts/build_assets_image - scripts/clean-old-cached-assets - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here # Play dependent manual jobs - install_api_client_dependencies_with_apt - play_job "review-build-cng" || true # this job might not exist so ignore the failure if it cannot be played - play_job "schedule:review-build-cng" || true # this job might not exist so ignore the failure if it cannot be played only: - /.+/@gitlab-org/gitlab-ce - /.+/@gitlab-org/gitlab-ee - /.+/@gitlab/gitlabhq - /.+/@gitlab/gitlab-ee tags: - gitlab-org - docker gitlab:assets:compile: extends: .gitlab:assets:compile-metadata only: refs: - master@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee cache: policy: pull-push gitlab:assets:compile pull-cache: extends: .gitlab:assets:compile-metadata except: refs: - master@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee - /(^docs[\/-].+|.+-docs$)/ cache: policy: pull .compile-assets-metadata: extends: - .default-tags - .default-retry - .assets-compile-cache - .default-before_script - .use-pg stage: prepare script: - node --version - retry yarn install --frozen-lockfile --cache-folder .yarn-cache --prefer-offline - free -m - retry bundle exec rake gitlab:assets:compile - scripts/clean-old-cached-assets variables: # we override the max_old_space_size to prevent OOM errors NODE_OPTIONS: --max_old_space_size=3584 cache: key: "assets-compile:test:vendor_ruby:.yarn-cache:tmp_cache_assets_sprockets:v6" artifacts: expire_in: 7d paths: - node_modules - public/assets compile-assets: extends: - .compile-assets-metadata only: refs: - master@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee cache: policy: pull-push compile-assets pull-cache: extends: .compile-assets-metadata except: refs: - master@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee - /(^docs[\/-].+|.+-docs$)/ cache: policy: pull karma: extends: - .default-tags - .default-retry - .default-cache - .default-before_script - .use-pg - .except-docs dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] 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/ - tmp/tests/frontend/ reports: junit: junit_karma.xml jest: extends: - .default-tags - .default-retry - .default-cache - .default-before_script - .use-pg - .except-docs-qa dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] script: - scripts/gitaly-test-spawn - date - bundle exec rake frontend:fixtures - date - yarn jest --ci --coverage artifacts: name: coverage-frontend expire_in: 31d when: always paths: - coverage-frontend/ - junit_jest.xml - tmp/tests/frontend/ reports: junit: junit_jest.xml cache: key: jest paths: - tmp/jest/jest/ policy: pull-push .qa: extends: - .default-tags - .default-retry - .default-cache - .except-docs dependencies: ["setup-test-env"] variables: SETUP_DB: "false" before_script: - cd qa/ - bundle install qa:internal: extends: .qa script: - bundle exec rspec qa:selectors: extends: .qa script: - bundle exec bin/qa Test::Sanity::Selectors .qa-frontend-node: extends: - .default-tags - .default-retry - .default-cache - .except-docs dependencies: [] cache: key: "$CI_JOB_NAME" paths: - .yarn-cache/ policy: pull-push script: - date - yarn install --frozen-lockfile --cache-folder .yarn-cache --prefer-offline - date - yarn run webpack-prod qa-frontend-node:8: extends: .qa-frontend-node image: node:carbon qa-frontend-node:10: extends: .qa-frontend-node image: node:dubnium qa-frontend-node:latest: extends: .qa-frontend-node image: node:latest allow_failure: true lint:javascript:report: extends: - .default-tags - .default-retry - .default-cache - .except-docs variables: SETUP_DB: "false" stage: post-test dependencies: [] script: - date - yarn run eslint-report || true # ignore exit code artifacts: name: eslint-report expire_in: 31d paths: - eslint-report.html jsdoc: extends: - .default-tags - .default-retry - .default-cache - .except-docs variables: SETUP_DB: "false" stage: post-test dependencies: ["compile-assets", "compile-assets pull-cache"] script: - date - yarn run jsdoc || true # ignore exit code artifacts: name: jsdoc expire_in: 31d paths: - jsdoc/