diff options
Diffstat (limited to '.gitlab/ci/frontend.gitlab-ci.yml')
-rw-r--r-- | .gitlab/ci/frontend.gitlab-ci.yml | 162 |
1 files changed, 28 insertions, 134 deletions
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 26e0b4fdf08..3a72c941b89 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -1,68 +1,3 @@ -# Make sure to update all the similar conditions in other CI config files if you modify these conditions -.if-not-canonical-namespace: &if-not-canonical-namespace - if: '$CI_PROJECT_NAMESPACE !~ /^gitlab(-org)?($|\/)/' - -# Make sure to update all the similar conditions in other CI config files if you modify these conditions -.if-not-ee: &if-not-ee - if: '$CI_PROJECT_NAME !~ /^gitlab(-ee)?$/' - -# Make sure to update all the similar conditions in other CI config files if you modify these conditions -.if-master-refs: &if-master-refs - if: '$CI_COMMIT_REF_NAME == "master"' - -# Make sure to update all the similar conditions in other CI config files if you modify these conditions -.if-default-refs: &if-default-refs - if: '$CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_MERGE_REQUEST_IID || $CI_COMMIT_TAG' - -# Make sure to update all the similar patterns in other CI config files if you modify these patterns -.code-backstage-patterns: &code-backstage-patterns - - ".gitlab/ci/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml" - - ".csscomb.json" - - "Dockerfile.assets" - - "*_VERSION" - - "Gemfile{,.lock}" - - "Rakefile" - - "{babel.config,jest.config}.js" - - "config.ru" - - "{package.json,yarn.lock}" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - # Backstage changes - - "Dangerfile" - - "danger/**/*" - - "{,ee/}fixtures/**/*" - - "{,ee/}rubocop/**/*" - - "{,ee/}spec/**/*" - - "doc/README.md" # Some RSpec test rely on this file - -# Make sure to update all the similar patterns in other CI config files if you modify these patterns -.code-backstage-qa-patterns: &code-backstage-qa-patterns - - ".gitlab/ci/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml" - - ".csscomb.json" - - "Dockerfile.assets" - - "*_VERSION" - - "Gemfile{,.lock}" - - "Rakefile" - - "{babel.config,jest.config}.js" - - "config.ru" - - "{package.json,yarn.lock}" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - # Backstage changes - - "Dangerfile" - - "danger/**/*" - - "{,ee/}fixtures/**/*" - - "{,ee/}rubocop/**/*" - - "{,ee/}spec/**/*" - - "doc/README.md" # Some RSpec test rely on this file - # QA changes - - ".dockerignore" - - "qa/**/*" - .assets-compile-cache: cache: paths: @@ -113,24 +48,16 @@ - docker gitlab:assets:compile pull-push-cache: - extends: .gitlab:assets:compile-metadata - rules: - - <<: *if-not-canonical-namespace - when: never - - <<: *if-master-refs - changes: *code-backstage-qa-patterns - when: on_success + extends: + - .gitlab:assets:compile-metadata + - .frontend:rules:gitlab-assets-compile-pull-push-cache cache: policy: pull-push gitlab:assets:compile pull-cache: - extends: .gitlab:assets:compile-metadata - rules: - - <<: *if-not-canonical-namespace - when: never - - <<: *if-default-refs - changes: *code-backstage-qa-patterns - when: on_success + extends: + - .gitlab:assets:compile-metadata + - .frontend:rules:gitlab-assets-compile-pull-cache cache: policy: pull @@ -160,47 +87,33 @@ gitlab:assets:compile pull-cache: - public/assets compile-assets pull-push-cache: - extends: .compile-assets-metadata - rules: - - <<: *if-master-refs - changes: *code-backstage-qa-patterns - when: on_success + extends: + - .compile-assets-metadata + - .frontend:rules:compile-assets-pull-push-cache cache: policy: pull-push -compile-assets pull-push-cache foss: +compile-assets pull-push-cache as-if-foss: extends: - .compile-assets-metadata + - .frontend:rules:compile-assets-pull-push-cache-as-if-foss - .as-if-foss - rules: - - <<: *if-not-ee - when: never - - <<: *if-master-refs - changes: *code-backstage-qa-patterns - when: on_success cache: policy: pull-push key: "assets-compile:v9:foss" compile-assets pull-cache: - extends: .compile-assets-metadata - rules: - - <<: *if-default-refs - changes: *code-backstage-qa-patterns - when: on_success + extends: + - .compile-assets-metadata + - .frontend:rules:compile-assets-pull-cache cache: policy: pull -compile-assets pull-cache foss: +compile-assets pull-cache as-if-foss: extends: - .compile-assets-metadata + - .frontend:rules:compile-assets-pull-cache-as-if-foss - .as-if-foss - rules: - - <<: *if-not-ee - when: never - - <<: *if-default-refs - changes: *code-backstage-qa-patterns - when: on_success cache: policy: pull key: "assets-compile:v9:foss" @@ -228,11 +141,9 @@ compile-assets pull-cache foss: - bundle exec rake karma karma: - extends: .karma-base - rules: - - <<: *if-default-refs - changes: *code-backstage-patterns - when: on_success + extends: + - .karma-base + - .frontend:rules:default-frontend-jobs coverage: '/^Statements *: (\d+\.\d+%)/' artifacts: name: coverage-javascript @@ -245,16 +156,11 @@ karma: reports: junit: junit_karma.xml -karma-foss: +karma-as-if-foss: extends: - .karma-base + - .frontend:rules:default-frontend-jobs-as-if-foss - .as-if-foss - rules: - - <<: *if-not-ee - when: never - - <<: *if-default-refs - changes: *code-backstage-patterns - when: on_success .jest-base: extends: .frontend-job-base @@ -271,11 +177,9 @@ karma-foss: policy: pull-push jest: - extends: .jest-base - rules: - - <<: *if-default-refs - changes: *code-backstage-patterns - when: on_success + extends: + - .jest-base + - .frontend:rules:default-frontend-jobs artifacts: name: coverage-frontend expire_in: 31d @@ -287,16 +191,11 @@ jest: reports: junit: junit_jest.xml -jest-foss: +jest-as-if-foss: extends: - .jest-base + - .frontend:rules:default-frontend-jobs-as-if-foss - .as-if-foss - rules: - - <<: *if-not-ee - when: never - - <<: *if-default-refs - changes: *code-backstage-patterns - when: on_success cache: policy: pull @@ -305,10 +204,8 @@ jest-foss: - .default-tags - .default-retry - .default-cache + - .frontend:rules:qa-frontend-node stage: test - rules: - - <<: *if-master-refs - when: on_success dependencies: [] cache: key: "$CI_JOB_NAME" @@ -339,11 +236,8 @@ webpack-dev-server: - .default-tags - .default-retry - .default-cache + - .frontend:rules:default-frontend-jobs stage: test - rules: - - <<: *if-default-refs - changes: *code-backstage-patterns - when: on_success needs: ["setup-test-env", "compile-assets pull-cache"] variables: WEBPACK_MEMORY_TEST: "true" |