Commit ff8bb931 authored by Rémy Coutable's avatar Rémy Coutable

ci: Deduplicate frontend_fixture jobs for EE/FOSS

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 6baf8b3e
...@@ -130,11 +130,13 @@ update-storybook-yarn-cache: ...@@ -130,11 +130,13 @@ update-storybook-yarn-cache:
- tmp/tests/frontend/ - tmp/tests/frontend/
- knapsack/ - knapsack/
rspec frontend_fixture: # In gitlab-foss, generates FOSS fixtures. In gitlab, generates FOSS & EE fixtures.
# That way, we don't need to have two separate jobs.
rspec-all frontend_fixture:
extends: extends:
- .frontend-fixtures-base - .frontend-fixtures-base
- .frontend:rules:default-frontend-jobs - .frontend:rules:default-frontend-jobs
parallel: 2 parallel: 5
rspec frontend_fixture as-if-foss: rspec frontend_fixture as-if-foss:
extends: extends:
...@@ -142,12 +144,6 @@ rspec frontend_fixture as-if-foss: ...@@ -142,12 +144,6 @@ rspec frontend_fixture as-if-foss:
- .frontend:rules:default-frontend-jobs-as-if-foss - .frontend:rules:default-frontend-jobs-as-if-foss
- .as-if-foss - .as-if-foss
rspec-ee frontend_fixture:
extends:
- .frontend-fixtures-base
- .frontend:rules:default-frontend-jobs-ee
parallel: 3
graphql-schema-dump: graphql-schema-dump:
variables: variables:
SETUP_DB: "false" SETUP_DB: "false"
...@@ -198,9 +194,7 @@ jest: ...@@ -198,9 +194,7 @@ jest:
- .frontend:rules:jest - .frontend:rules:jest
needs: needs:
- job: "detect-tests" - job: "detect-tests"
- job: "rspec frontend_fixture" - job: "rspec-all frontend_fixture"
- job: "rspec-ee frontend_fixture"
optional: true
artifacts: artifacts:
name: coverage-frontend name: coverage-frontend
expire_in: 31d expire_in: 31d
...@@ -227,9 +221,7 @@ jest-integration: ...@@ -227,9 +221,7 @@ jest-integration:
script: script:
- run_timed_command "yarn jest:integration --ci" - run_timed_command "yarn jest:integration --ci"
needs: needs:
- job: "rspec frontend_fixture" - job: "rspec-all frontend_fixture"
- job: "rspec-ee frontend_fixture"
optional: true
- job: "graphql-schema-dump" - job: "graphql-schema-dump"
jest-as-if-foss: jest-as-if-foss:
...@@ -343,9 +335,7 @@ startup-css-check: ...@@ -343,9 +335,7 @@ startup-css-check:
- .frontend:rules:default-frontend-jobs - .frontend:rules:default-frontend-jobs
needs: needs:
- job: "compile-test-assets" - job: "compile-test-assets"
- job: "rspec frontend_fixture" - job: "rspec-all frontend_fixture"
- job: "rspec-ee frontend_fixture"
optional: true
startup-css-check as-if-foss: startup-css-check as-if-foss:
extends: extends:
...@@ -369,9 +359,7 @@ compile-storybook: ...@@ -369,9 +359,7 @@ compile-storybook:
- .compile-storybook-base - .compile-storybook-base
- .frontend:rules:default-frontend-jobs - .frontend:rules:default-frontend-jobs
needs: needs:
- job: "rspec frontend_fixture" - job: "rspec-all frontend_fixture"
- job: "rspec-ee frontend_fixture"
optional: true
- job: "graphql-schema-dump" - job: "graphql-schema-dump"
artifacts: artifacts:
name: storybook name: storybook
......
...@@ -495,13 +495,6 @@ ...@@ -495,13 +495,6 @@
- <<: *if-default-refs - <<: *if-default-refs
changes: *code-backstage-patterns changes: *code-backstage-patterns
.frontend:rules:default-frontend-jobs-ee:
rules:
- <<: *if-not-ee
when: never
- <<: *if-default-refs
changes: *code-backstage-patterns
.frontend:rules:default-frontend-jobs-as-if-foss: .frontend:rules:default-frontend-jobs-as-if-foss:
rules: rules:
- <<: *if-not-ee - <<: *if-not-ee
......
...@@ -29,8 +29,7 @@ update-tests-metadata: ...@@ -29,8 +29,7 @@ update-tests-metadata:
- retrieve-tests-metadata - retrieve-tests-metadata
- setup-test-env - setup-test-env
- rspec migration pg12 - rspec migration pg12
- rspec frontend_fixture - rspec-all frontend_fixture
- rspec-ee frontend_fixture
- rspec unit pg12 - rspec unit pg12
- rspec integration pg12 - rspec integration pg12
- rspec system pg12 - rspec system pg12
......
...@@ -252,7 +252,7 @@ graph RL; ...@@ -252,7 +252,7 @@ graph RL;
2_1-1 & 2_1-2 & 2_1-3 & 2_1-4 --> 1-6; 2_1-1 & 2_1-2 & 2_1-3 & 2_1-4 --> 1-6;
end end
2_2-2["rspec frontend_fixture/rspec-ee frontend_fixture (7 minutes)"]; 2_2-2["rspec-all frontend_fixture (7 minutes)"];
class 2_2-2 criticalPath; class 2_2-2 criticalPath;
click 2_2-2 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=7910143&udv=0" click 2_2-2 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=7910143&udv=0"
2_2-4["memory-on-boot (3.5 minutes)"]; 2_2-4["memory-on-boot (3.5 minutes)"];
...@@ -284,7 +284,7 @@ graph RL; ...@@ -284,7 +284,7 @@ graph RL;
3_1-1["jest (14.5 minutes)"]; 3_1-1["jest (14.5 minutes)"];
class 3_1-1 criticalPath; class 3_1-1 criticalPath;
click 3_1-1 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914204&udv=0" click 3_1-1 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914204&udv=0"
subgraph "Needs `rspec frontend_fixture/rspec-ee frontend_fixture`"; subgraph "Needs `rspec-all frontend_fixture`";
3_1-1 --> 2_2-2; 3_1-1 --> 2_2-2;
end end
...@@ -355,7 +355,7 @@ graph RL; ...@@ -355,7 +355,7 @@ graph RL;
2_1-1 & 2_1-2 & 2_1-3 & 2_1-4 --> 1-6; 2_1-1 & 2_1-2 & 2_1-3 & 2_1-4 --> 1-6;
end end
2_2-2["rspec frontend_fixture/rspec-ee frontend_fixture (7 minutes)"]; 2_2-2["rspec-all frontend_fixture (7 minutes)"];
class 2_2-2 criticalPath; class 2_2-2 criticalPath;
click 2_2-2 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=7910143&udv=0" click 2_2-2 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=7910143&udv=0"
2_2-4["memory-on-boot (3.5 minutes)"]; 2_2-4["memory-on-boot (3.5 minutes)"];
...@@ -395,7 +395,7 @@ graph RL; ...@@ -395,7 +395,7 @@ graph RL;
3_1-1["jest (14.5 minutes)"]; 3_1-1["jest (14.5 minutes)"];
class 3_1-1 criticalPath; class 3_1-1 criticalPath;
click 3_1-1 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914204&udv=0" click 3_1-1 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=6914204&udv=0"
subgraph "Needs `rspec frontend_fixture/rspec-ee frontend_fixture`"; subgraph "Needs `rspec-all frontend_fixture`";
3_1-1 --> 2_2-2; 3_1-1 --> 2_2-2;
end end
......
...@@ -109,14 +109,18 @@ function rspec_paralellized_job() { ...@@ -109,14 +109,18 @@ function rspec_paralellized_job() {
local test_level="${job_name[1]}" local test_level="${job_name[1]}"
local report_name=$(echo "${CI_JOB_NAME}" | sed -E 's|[/ ]|_|g') # e.g. 'rspec unit pg12 1/24' would become 'rspec_unit_pg12_1_24' local report_name=$(echo "${CI_JOB_NAME}" | sed -E 's|[/ ]|_|g') # e.g. 'rspec unit pg12 1/24' would become 'rspec_unit_pg12_1_24'
local rspec_opts="${1}" local rspec_opts="${1}"
local spec_folder_prefix="" local spec_folder_prefixes=""
if [[ "${test_tool}" =~ "-ee" ]]; then if [[ "${test_tool}" =~ "-ee" ]]; then
spec_folder_prefix="ee/" spec_folder_prefixes="'ee/'"
fi fi
if [[ "${test_tool}" =~ "-jh" ]]; then if [[ "${test_tool}" =~ "-jh" ]]; then
spec_folder_prefix="jh/" spec_folder_prefixes="'jh/'"
fi
if [[ "${test_tool}" =~ "-all" ]]; then
spec_folder_prefixes="['', 'ee/']"
fi fi
export KNAPSACK_LOG_LEVEL="debug" export KNAPSACK_LOG_LEVEL="debug"
...@@ -131,7 +135,7 @@ function rspec_paralellized_job() { ...@@ -131,7 +135,7 @@ function rspec_paralellized_job() {
cp "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" "${KNAPSACK_REPORT_PATH}" cp "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" "${KNAPSACK_REPORT_PATH}"
if [[ -z "${KNAPSACK_TEST_FILE_PATTERN}" ]]; then if [[ -z "${KNAPSACK_TEST_FILE_PATTERN}" ]]; then
pattern=$(ruby -r./tooling/quality/test_level.rb -e "puts Quality::TestLevel.new(%(${spec_folder_prefix})).pattern(:${test_level})") pattern=$(ruby -r./tooling/quality/test_level.rb -e "puts Quality::TestLevel.new(${spec_folder_prefixes}).pattern(:${test_level})")
export KNAPSACK_TEST_FILE_PATTERN="${pattern}" export KNAPSACK_TEST_FILE_PATTERN="${pattern}"
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment