Skip to content
代码片段 群组 项目
未验证 提交 6b02c833 编辑于 作者: Rémy Coutable's avatar Rémy Coutable
浏览文件

Use the repo from artifacts in frontend jobs


Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
上级 2776f831
No related branches found
No related tags found
无相关合并请求
.with-fixtures-needs:
needs:
- "rspec-all frontend_fixture"
.with-graphql-schema-dump-needs:
needs:
- "graphql-schema-dump"
.compile-assets-base:
extends:
- .default-retry
- .default-before_script
- .assets-compile-cache
- .repo-from-artifacts
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-node-${NODE_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36
variables:
SETUP_DB: "false"
......@@ -12,7 +21,6 @@
BROWSERSLIST_IGNORE_OLD_DATA: "true"
WEBPACK_COMPILE_LOG_PATH: "tmp/webpack-output.log"
stage: prepare
needs: []
script:
- yarn_install_script
- export GITLAB_ASSETS_HASH=$(bin/rake gitlab:assets:hash_sum)
......@@ -63,6 +71,7 @@ follow-up:compile-production-assets:
- compile-production-assets
- .qa:rules:follow-up-e2e
needs:
- !reference [compile-production-assets, needs]
- manual:e2e-test-pipeline-generate
compile-test-assets:
......@@ -111,9 +120,9 @@ retrieve-frontend-fixtures:
SETUP_DB: "false"
extends:
- .default-retry
- .repo-from-artifacts
- .frontend:rules:default-frontend-jobs
stage: prepare
needs: []
script:
- source scripts/utils.sh
- source scripts/gitlab_component_helpers.sh
......@@ -136,8 +145,13 @@ retrieve-frontend-fixtures:
- .default-before_script
- .ruby-cache
- .use-pg14
- .repo-from-artifacts
stage: fixtures
needs: ["setup-test-env", "retrieve-tests-metadata", "retrieve-frontend-fixtures"]
needs:
- "setup-test-env"
- "retrieve-tests-metadata"
- "retrieve-frontend-fixtures"
- !reference [.repo-from-artifacts, needs]
variables:
# Don't add `CRYSTALBALL: "false"` here as we're enabling Crystalball for scheduled pipelines (in `.gitlab-ci.yml`), so that we get coverage data
# for the `frontend fixture RSpec files` that will be added to the Crystalball mapping in `update-tests-metadata`.
......@@ -178,18 +192,20 @@ rspec-all frontend_fixture:
# Uploads FOSS fixtures in the FOSS project.
upload-frontend-fixtures:
extends:
- .frontend-fixtures-base
- .default-retry
- .default-before_script
- .repo-from-artifacts
- .frontend:rules:upload-frontend-fixtures
stage: fixtures
needs: ["rspec-all frontend_fixture"]
needs:
- !reference [.repo-from-artifacts, needs]
- !reference [.with-fixtures-needs, needs]
script:
- source scripts/utils.sh
- source scripts/gitlab_component_helpers.sh
- export_fixtures_sha_for_upload
- 'fixtures_archive_doesnt_exist || { echoinfo "INFO: Exiting early as package exists."; exit 0; }'
- run_timed_command "create_fixtures_package"
- run_timed_command "upload_fixtures_package"
artifacts: {}
graphql-schema-dump:
variables:
......@@ -198,9 +214,9 @@ graphql-schema-dump:
- .default-retry
- .ruby-cache
- .default-before_script
- .repo-from-artifacts
- .frontend:rules:default-frontend-jobs
stage: fixtures
needs: []
script:
- bundle exec rake gitlab:graphql:schema:dump
artifacts:
......@@ -214,6 +230,7 @@ graphql-schema-dump:
extends:
- .default-retry
- .yarn-cache
- .repo-from-artifacts
variables:
# Disable warnings in browserslist which can break on backports
# https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384
......@@ -225,22 +242,10 @@ graphql-schema-dump:
- yarn_install_script
stage: test
.vue3:
variables:
VUE_VERSION: 3
NODE_OPTIONS: --max-old-space-size=7680
allow_failure: true
.jest-base:
extends: .frontend-test-base
script:
- run_timed_command "yarn jest:ci:without-fixtures"
jest-build-cache:
extends:
- .frontend-test-base
- .frontend:rules:jest
needs: []
artifacts:
name: jest-cache
expire_in: 12h
......@@ -258,18 +263,29 @@ jest-build-cache:
# they exit with 1, so as not to break master and other pipelines.
exit_codes: 1
.vue3:
variables:
VUE_VERSION: 3
NODE_OPTIONS: --max-old-space-size=7680
allow_failure: true
.with-jest-build-cache-vue3-needs:
needs:
- job: jest-build-cache-vue3
optional: true
jest-build-cache-vue3:
extends:
- jest-build-cache
- .frontend:rules:jest-vue3
- .vue3
jest-with-fixtures:
jest:
extends:
- .jest-base
- .frontend-test-base
- .frontend:rules:jest
needs:
- "rspec-all frontend_fixture"
- !reference [.frontend-test-base, needs]
- job: jest-build-cache
optional: true
artifacts:
......@@ -282,47 +298,38 @@ jest-with-fixtures:
- tmp/tests/frontend/
reports:
junit: junit_jest.xml
parallel: 2
parallel: 11
script:
- run_timed_command "yarn jest:ci:with-fixtures"
- run_timed_command "yarn jest:ci:without-fixtures"
jest:
jest-with-fixtures:
extends:
- .jest-base
- jest
- .frontend:rules:jest
needs:
- job: jest-build-cache
optional: true
artifacts:
name: coverage-frontend
expire_in: 31d
when: always
paths:
- coverage-frontend/
- junit_jest.xml
- tmp/tests/frontend/
reports:
junit: junit_jest.xml
parallel: 11
- !reference [jest, needs]
- !reference [.with-fixtures-needs, needs]
parallel: 2
script:
- run_timed_command "yarn jest:ci:with-fixtures"
jest-with-fixtures vue3:
jest vue3:
extends:
- jest-with-fixtures
- jest
- .frontend:rules:jest-vue3
- .vue3
needs:
- "rspec-all frontend_fixture"
- job: jest-build-cache-vue3
optional: true
- !reference [.repo-from-artifacts, needs]
- !reference [.with-jest-build-cache-vue3-needs, needs]
jest vue3:
jest-with-fixtures vue3:
extends:
- jest
- jest-with-fixtures
- .frontend:rules:jest-vue3
- .vue3
needs:
- job: jest-build-cache-vue3
optional: true
- !reference ["jest vue3", needs]
- !reference [.with-fixtures-needs, needs]
jest predictive:
extends:
......@@ -350,13 +357,18 @@ jest-integration:
- .frontend:rules:jest-integration
script:
- run_timed_command "yarn jest:integration --ci"
needs: ["rspec-all frontend_fixture", "graphql-schema-dump"]
needs:
- !reference [.frontend-test-base, needs]
- !reference [.with-fixtures-needs, needs]
- !reference [.with-graphql-schema-dump-needs, needs]
jest-snapshot-vue3:
extends:
- .jest-base
- .frontend-test-base
- .frontend:rules:jest-snapshot-vue3
needs: ["rspec-all frontend_fixture"]
needs:
- !reference [.frontend-test-base, needs]
- !reference [.with-fixtures-needs, needs]
variables:
VUE_VERSION: 3
JEST_REPORT: jest-test-report.json
......@@ -379,7 +391,6 @@ jest-snapshot-vue3:
echo 'All snapshot tests passed! Exiting 0...'
exit 0
fi
artifacts:
name: snapshot_tests
expire_in: 31d
......@@ -393,8 +404,10 @@ coverage-frontend:
- .default-retry
- .default-utils-before_script
- .yarn-cache
- .repo-from-artifacts
- .frontend:rules:coverage-frontend
needs:
- !reference [.repo-from-artifacts, needs]
- job: "jest"
optional: true
- job: "jest-with-fixtures"
......@@ -425,9 +438,9 @@ webpack-dev-server:
- .default-retry
- .default-utils-before_script
- .yarn-cache
- .repo-from-artifacts
- .frontend:rules:default-frontend-jobs
stage: test
needs: []
variables:
WEBPACK_MEMORY_TEST: "true"
WEBPACK_VENDOR_DLL: "true"
......@@ -446,10 +459,12 @@ bundle-size-review:
- .default-retry
- .default-utils-before_script
- .assets-compile-cache
- .repo-from-artifacts
- .frontend:rules:bundle-size-review
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:danger
stage: test
needs: []
needs:
- !reference [.repo-from-artifacts, needs]
script:
- yarn_install_script
- scripts/bundle_size_review
......@@ -460,25 +475,21 @@ bundle-size-review:
paths:
- bundle-size-review/
.compile-storybook-base:
compile-storybook:
extends:
- .frontend-test-base
- .storybook-yarn-cache
script:
- yarn_install_script_storybook
- run_timed_command "yarn run storybook:build"
needs: ["graphql-schema-dump"]
compile-storybook:
extends:
- .compile-storybook-base
- .frontend:rules:compile-storybook
needs:
- !reference [.compile-storybook-base, needs]
- job: "rspec-all frontend_fixture"
- !reference [.repo-from-artifacts, needs]
- !reference [.with-fixtures-needs, needs]
- !reference [.with-graphql-schema-dump-needs, needs]
artifacts:
name: storybook
expire_in: 31d
when: always
paths:
- storybook/public
script:
- yarn_install_script_storybook
- run_timed_command "yarn run storybook:build"
......@@ -28,7 +28,8 @@
needs:
# If the job extending this also defines `needs`, make sure to update
# its `needs` to include `clone-gitlab-repo` because it'll be overridden.
- clone-gitlab-repo
- job: clone-gitlab-repo
optional: true # Optional so easier to switch in between
.production:
variables:
......
......@@ -1367,7 +1367,6 @@ fail-pipeline-early:
stage: test
needs:
- !reference [.rspec-base-needs, needs]
- job: "compile-test-assets"
- job: "detect-previous-failed-tests"
script:
- !reference [.base-script, script]
......
......@@ -68,10 +68,10 @@ include:
.rspec-base-needs:
needs:
- job: "clone-gitlab-repo"
optional: true # Optional so easier to switch in between
- !reference [.repo-from-artifacts, needs]
- job: "setup-test-env"
- job: "retrieve-tests-metadata"
- job: "compile-test-assets"
.rspec-base:
extends:
......@@ -89,7 +89,6 @@ include:
EVENT_PROF: "sql.active_record"
needs:
- !reference [.rspec-base-needs, needs]
- job: "compile-test-assets"
- job: "detect-tests"
optional: true
script:
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册