Skip to content

Commit c17552f

Browse files
balasankarcvishal.s.patel
andcommitted
Merge branch 'vp/add-manual-job-for-entire-test-suite' into 'master'
Adding manual job to run entire test suite See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7077 Merged-by: Balasankar 'Balu' C <[email protected]> Approved-by: Andrew Patterson <[email protected]> Approved-by: Balasankar 'Balu' C <[email protected]> Co-authored-by: vishal.s.patel <[email protected]>
2 parents fb6645c + f42c42c commit c17552f

File tree

8 files changed

+91
-41
lines changed

8 files changed

+91
-41
lines changed

doc/development/allure-test-report.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The following three pipelines are created while generating the allure-report
44

55
- Omnibus pipeline
66
- TRIGGERED_CE/EE_PIPELINE child pipeline (Manually Triggered)
7-
- QA-TEST child pipeline
7+
- QA-SUBSET-TEST child pipeline
88

99
## Omnibus MR Pipeline
1010

@@ -26,27 +26,33 @@ The child pipeline, called `TRIGGERED_CE/EE_PIPELINE` is generated in the Omnibu
2626

2727
## TRIGGERED_CE/EE_PIPELINE child pipeline
2828

29-
This child pipeline consists of a job called `qa-test` which uses the `package-and-test/main.gitlab-ci.yml` file of the main GitLab project.
29+
This child pipeline consists of a job called `qa-subset-test` which uses the `package-and-test/main.gitlab-ci.yml` file of the main GitLab project.
3030

31-
### qa-test job
31+
### qa-subset-test job
3232

33-
The `qa-test` job triggers another child pipeline in the Omnibus-GitLab repository
34-
To get an allure report snapshot as a comment in the MR, following environment variables need to be passed to `qa-job`
33+
The `qa-subset-test` job triggers another child pipeline in the Omnibus-GitLab repository
34+
To get an allure report snapshot as a comment in the MR, following environment variables need to be passed to `qa-subset-test`
3535

3636
| Environment Variable | Description |
3737
| ----------------------------------|-------------|
3838
| `GITLAB_AUTH_TOKEN` | This is used to give access to the Danger bot to post comment in `omnibus-gitlab` repository. We are using `$DANGER_GITLAB_API_TOKEN` which is also being used for other Danger bot related access in `omnibugs-gitlab` as mentioned [ci-variable](https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/doc/development/ci-variables.md) |
3939
| `ALLURE_MERGE_REQUEST_IID` | This denotes the MR ID which will be used by [e2e-test-report-job](#e2e-test-report-job) which inturn used `allure-report-publisher` to post message to MR with provided ID e.g. !6190 |
4040

41-
## QA-TEST child pipeline
41+
### qa-remaining-test-manual
4242

43-
This pipeline runs all the orchestrated tests using GitLab QA project which in turn uses allure gem to generate report source files for each test that is executed and stores the files in a common folder.
43+
The `qa-remaining-test-manual` job is a manual trigger pipeline. It triggers the same pipeline as `qa-subset-test` but runs the tests which aren't run as a part of `qa-subset-test` job.
44+
45+
The environment variables used in `qa-subset-test` are the same that are used in this job to generate the allure report.
46+
47+
## QA-SUBSET-TEST child pipeline
48+
49+
This pipeline runs a subset of all the orchestrated tests using GitLab QA project which in turn uses allure gem to generate report source files for each test that is executed and stores the files in a common folder. Certain orchestrated jobs like `instance`, `decomposition-single-db`, `decomposition-multiple-db` and `praefect` run only smoke and reliable tests which intially used to run the entire suite.
4450

4551
### e2e-test-report job
4652

4753
The `e2e-test-report` job includes [.generate-allure-report-base](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/allure-report.yml) job which uses the `allure-report-publisher` gem to collate all the report in the mentioned folder into a single report and uploads it to the s3 bucket.
4854

49-
It also posts the allure report as a comment on the MR having the ID passed in `ALLURE_MERGE_REQUEST_IID` variable in the [qa-test-job](#qa-test-job).
55+
It also posts the allure report as a comment on the MR having the ID passed in `ALLURE_MERGE_REQUEST_IID` variable in the [qa-subset-test](#qa-subset-test-job).
5056

5157
[allure-report-publisher](https://github.com/andrcuns/allure-report-publisher) is a gem which uses allure in the backend. It has been catered for GitLab to upload the report and post the comment to MR.
5258

@@ -73,11 +79,11 @@ subgraph QA flow in omnibus pipeline
7379
end
7480
7581
subgraph Trigger:CE/EE-job Child Pipeline
76-
A1["`**_trigger-qa_** stage <br> **_qa-test_** job`"]
82+
A1["`**_trigger-qa_** stage <br> **_qa-subset-test_** job`"]
7783
A3(["`_package-and-test/main.gitlab-ci.yml_ <br> from _gitlab-org/gitlab_`"])
7884
end
7985
80-
subgraph qa-test Child Pipeline
86+
subgraph qa-subset-test Child Pipeline
8187
A2["`from <br> **_package-and-test/main.gitlab-ci.yml_** in **_gitlab-org/gitlab_**`"]
8288
B1["`**_report_** stage <br> **_e2e-test-report_** job`"]
8389
B2(["`_.generate-allure-report-base_ job from<br> _quality/pipeline-common_`"])

doc/development/ci-variables.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ These additional variables are available to override or enable different build b
6666
| `DEPS_GITLAB_TOKEN` | Token used by [dependencies.io](https://www.dependencies.io/gitlab/) to create MRs. |
6767
| `DEPS_TOKEN` | Token used by CI to auth to [dependencies.io](https://www.dependencies.io/gitlab/). |
6868
| `DOCS_API_TOKEN` | Token used by CI to trigger a review-app build of the docs site. |
69-
| `MANUAL_QA_TEST` | Variable used to decide if the `qa-test` job should be played automatically or not. |
69+
| `MANUAL_QA_TEST` | Variable used to decide if the `qa-subset-test` job should be played automatically or not. |
7070

7171
## Release variables
7272

doc/development/pipelines.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,15 +287,25 @@ This job builds a GitLab Docker image using the package that was built by
287287

288288
This job is run only on [QA mirror](https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror) on triggered pipelines.
289289

290-
#### `qa-test`
290+
#### `qa-subset-test`
291291

292-
This job triggers a pipeline in the [GitLab QA Mirror](https://gitlab.com/gitlab-org/gitlab-qa-mirror), passing the GitLab
293-
Docker image created by `Trigger:gitlab-docker` job and the GitLab QA Docker
294-
image built by the GitLab Rails pipeline, so that a full QA run will be run
295-
against up using these images
292+
This job runs subset of test suite and is automatically triggered when either
293+
`Trigger:CE-package` or `Trigger:EE-package` manual jobs are triggered manually.
294+
295+
This job triggers a pipeline in the [GitLab QA Mirror](https://gitlab.com/gitlab-org/gitlab-qa-mirror), passing the GitLab Docker image created by `Trigger:gitlab-docker` job and the GitLab QA Docker image built by the GitLab Rails pipeline, so that a subset of test as mentioned in [this issue](https://gitlab.com/gitlab-org/distribution/team-tasks/-/issues/1303#we-should-keep) will run using these images
296296

297297
This job is run only on [QA mirror](https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror) on triggered pipelines.
298298

299+
### `qa-remaining-test-manual`
300+
301+
This is a manual trigger job which runs the remaining tests that donot run in the `qa-subset-test` job.
302+
303+
To run this QA jobs in MR pipeline, you need to either trigger `Trigger:CE-package` or `Trigger:EE-package` manual jobs.
304+
305+
This job triggers a pipeline in the [GitLab QA Mirror](https://gitlab.com/gitlab-org/gitlab-qa-mirror), passing the GitLab
306+
Docker image created by `Trigger:gitlab-docker` job and the GitLab QA Docker
307+
image built by the GitLab Rails pipeline, so that the entire suite is run using these images.
308+
299309
#### `RAT`
300310

301311
This manual job triggers a pipeline in the

doc/development/upgrading-software-components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ At a minimum, the following tests should be performed when updating a software
115115
component.
116116

117117
- Perform a successful GitLab Enterprise Edition (EE) build on all supported platforms.
118-
- Run `qa-test` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
118+
- Run `qa-subset-test` as well as manual `qa-remaining-test-manual` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
119119
- Install and verify that component version has been upgraded.
120120
- Verify basic functionality of the software component.
121121

gitlab-ci-config/gitlab-com.yml

Lines changed: 54 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,27 @@
216216
- if: '$PIPELINE_TYPE == "DOCS_PIPELINE"'
217217
when: manual
218218

219+
.qa-template:
220+
variables:
221+
QA_RUN_ALL_TESTS: "false"
222+
RELEASE: $QA_RELEASE
223+
QA_IMAGE: $QA_IMAGE
224+
GITLAB_SEMVER_VERSION: $GITLAB_SEMVER_VERSION # latest semver gitlab version used for testing upgrade paths
225+
SKIP_OMNIBUS_TRIGGER: "true"
226+
GITLAB_AUTH_TOKEN: $DANGER_GITLAB_API_TOKEN
227+
ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
228+
inherit:
229+
variables: false
230+
trigger:
231+
strategy: depend
232+
forward:
233+
yaml_variables: true
234+
pipeline_variables: true
235+
include:
236+
- project: gitlab-org/gitlab
237+
ref: master
238+
file: .gitlab/ci/package-and-test/main.gitlab-ci.yml
239+
219240
#####################
220241
# Cache update jobs #
221242
#####################
@@ -550,28 +571,14 @@ Trigger:gitlab-docker:
550571
optional: true
551572
artifacts: true
552573

553-
qa-test:
574+
qa-subset-test:
575+
extends:
576+
- .qa-template
554577
stage: trigger-qa
555578
variables:
556-
RELEASE: $QA_RELEASE
557-
QA_IMAGE: $QA_IMAGE
558-
QA_RUN_ALL_TESTS: "false"
559-
QA_SUITES: "QA::Scenario::Test::Integration::GitalyCluster,QA::Scenario::Test::Integration::InstanceSAML,QA::Scenario::Test::Integration::LDAPNoServer,QA::Scenario::Test::Integration::LDAPNoTLS,QA::Scenario::Test::Integration::LDAPTLS,QA::Scenario::Test::Integration::Mattermost,QA::Scenario::Test::Integration::Mtls,QA::Scenario::Test::Integration::ObjectStorageGcs,QA::Scenario::Test::Integration::RegistryTLS,QA::Scenario::Test::Integration::RegistryWithCDN,QA::Scenario::Test::Integration::SMTP,QA::Scenario::Test::Integration::Registry,QA::Scenario::Test::Instance::ObjectStorage,QA::Scenario::Test::Instance::RepositoryStorage,QA::Scenario::Test::Instance::GitlabPages,QA::Scenario::Test::Instance::Metrics,QA::EE::Scenario::Test::Integration::GroupSAML,QA::Scenario::Test::Instance::All,QA::Scenario::Test::Instance::Smoke"
560-
GITLAB_SEMVER_VERSION: $GITLAB_SEMVER_VERSION # latest semver gitlab version used for testing upgrade paths
561-
SKIP_OMNIBUS_TRIGGER: "true"
562-
GITLAB_AUTH_TOKEN: $DANGER_GITLAB_API_TOKEN
563-
ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
564-
inherit:
565-
variables: false
566-
trigger:
567-
strategy: depend
568-
forward:
569-
yaml_variables: true
570-
pipeline_variables: true
571-
include:
572-
- project: gitlab-org/gitlab
573-
ref: master
574-
file: .gitlab/ci/package-and-test/main.gitlab-ci.yml
579+
QA_OMNIBUS_MR_TESTS: "only-smoke-reliable"
580+
QA_RUN_TYPE: ${CI_JOB_NAME}
581+
QA_SUITES: "QA::Scenario::Test::Integration::GitalyCluster,QA::Scenario::Test::Integration::InstanceSAML,QA::Scenario::Test::Integration::LDAPNoServer,QA::Scenario::Test::Integration::LDAPNoTLS,QA::Scenario::Test::Integration::LDAPTLS,QA::Scenario::Test::Integration::Mattermost,QA::Scenario::Test::Integration::Mtls,QA::Scenario::Test::Integration::ObjectStorageGcs,QA::Scenario::Test::Integration::RegistryTLS,QA::Scenario::Test::Integration::RegistryWithCDN,QA::Scenario::Test::Integration::SMTP,QA::Scenario::Test::Integration::Registry,QA::Scenario::Test::Instance::ObjectStorage,QA::Scenario::Test::Instance::RepositoryStorage,QA::Scenario::Test::Instance::GitlabPages,QA::Scenario::Test::Instance::Metrics,QA::EE::Scenario::Test::Integration::GroupSAML,QA::Scenario::Test::Instance::Smoke"
575582
rules:
576583
- if: '$SKIP_QA_TEST == "true"'
577584
when: never
@@ -595,6 +602,33 @@ qa-test:
595602
- job: Trigger:gitlab-docker
596603
artifacts: false
597604

605+
qa-remaining-test-manual:
606+
extends:
607+
- .qa-template
608+
stage: trigger-qa
609+
variables:
610+
QA_RUN_TYPE: ${CI_JOB_NAME}
611+
QA_OMNIBUS_MR_TESTS: "except-smoke-reliable"
612+
QA_SUITES: "QA::EE::Scenario::Test::Integration::Elasticsearch,QA::Scenario::Test::Integration::Import,QA::Scenario::Test::Integration::Integrations,QA::Scenario::Test::Integration::OAuth,QA::Scenario::Test::Integration::Jira,QA::Scenario::Test::Integration::ServicePingDisabled,QA::Scenario::Test::Instance::LargeSetup,QA::Scenario::Test::Instance::CloudActivation"
613+
rules:
614+
- if: '$SKIP_QA_TEST == "true"'
615+
when: never
616+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_CE_PIPELINE/'
617+
when: manual
618+
allow_failure: true
619+
variables:
620+
FOSS_ONLY: "1"
621+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_EE_PIPELINE/'
622+
when: manual
623+
allow_failure: true
624+
needs:
625+
- job: generate-facts
626+
artifacts: true
627+
- job: Trigger:package
628+
artifacts: false
629+
- job: Trigger:gitlab-docker
630+
artifacts: false
631+
598632
letsencrypt-test:
599633
extends: .docker_job
600634
stage: trigger-qa

test-plans/upgrade-component-testplan-template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Add the component test-plan here. Use "[ ]" for each step/task to be completed.
99
At a minimum, the following test should be run:
1010
1111
- [ ] Performed a successful GitLab Enterprise Edition (EE) build on all supported platforms.
12-
- [ ] Ran `qa-test` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
12+
- [ ] Ran `qa-subset-test` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
1313
- [ ] Installed and verified that the component version has been upgraded.
1414
- [ ] Verified basic functionality of the software component.
1515
-->

test-plans/upgrade-mattermost-testplan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
### Build tests
77

88
- [ ] Built on all supported platforms
9-
- [ ] Ran `Trigger:ee-package` and then `qa-test` CI jobs on `gitlab.com`.
9+
- [ ] Ran `Trigger:ee-package` and then `qa-subset-test` as well as manual `qa-remaining-test-manual` CI jobs on `gitlab.com`.
1010

1111
### Fresh installation tests
1212

test-plans/upgrade-redis-testplan.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# redis component upgrade test plan
1+
# Redis component upgrade test plan
22

33
<!-- Copy and paste the following into your MR description. -->
44
## Test plan
55

66
- [ ] Performed a successful GitLab Enterprise Edition (EE) build on all supported platforms (include `build-package-on-all-os` job).
7-
- [ ] Ran `qa-test` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
7+
- [ ] Ran `qa-subset-test` as well as manual `qa-remaining-test-manual` CI/CD test job for both GitLab Enterprise Edition and GitLab Community Edition.
88
- [ ] Redis indicator test cases were not failing.
99
- [realtime components via assignee test](https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347941)
1010
- [project template import](https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347932)

0 commit comments

Comments
 (0)