gitlab-qa 4.7.1 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +47 -1
- data/.gitlab/merge_request_templates/Release.md +35 -0
- data/CONTRIBUTING.md +1 -15
- data/bin/merge_html_reports +7 -3
- data/docs/release_process.md +35 -0
- data/docs/what_tests_can_be_run.md +26 -0
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +5 -4
- data/.gitlab/issue_templates/Release.md +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c369a98179f8f30c64babf5884b9919b14bf2016a15e0c4a172a5516c870be87
|
4
|
+
data.tar.gz: d790e55c6879463128dcee0a76437f0d98ae66e0aa5a8a72cfa827da385d11ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed4335697822edc553edbaa5d7a8bad7fa498e80773e16a5b9f6a7e7bddd42893a4954d3bcd37849e4cb5cb1c6c954fca669a0074e1aaf21d8dc6335cbaa16b7
|
7
|
+
data.tar.gz: a8de7ca6b1c86abb91b628266f1eaa293fd70ead1a1944469d5513c200ef5e5f452772ff021f5b8b8b8890f02c725974dfad35da2ec49c0b6ecdd46680f4d970
|
data/.gitlab-ci.yml
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
image: ruby:2.6
|
2
|
+
|
1
3
|
services:
|
2
4
|
- docker:1.13-dind
|
3
5
|
|
4
6
|
stages:
|
5
7
|
- check
|
8
|
+
- release
|
6
9
|
- test
|
7
10
|
- notify
|
8
11
|
|
@@ -13,8 +16,14 @@ variables:
|
|
13
16
|
QA_ARTIFACTS_DIR: $CI_PROJECT_DIR
|
14
17
|
QA_CAN_TEST_GIT_PROTOCOL_V2: 'false'
|
15
18
|
|
19
|
+
cache:
|
20
|
+
key: "ruby:2.6"
|
21
|
+
paths:
|
22
|
+
- vendor/ruby
|
23
|
+
|
16
24
|
before_script:
|
17
|
-
- bundle
|
25
|
+
- bundle version
|
26
|
+
- bundle install --clean --jobs=$(nproc) --path=vendor --retry=3 --quiet && bundle check
|
18
27
|
- if [ -n "$TRIGGERED_USER" ] && [ -n "$TRIGGER_SOURCE" ]; then
|
19
28
|
echo "Pipeline triggered by $TRIGGERED_USER at $TRIGGER_SOURCE";
|
20
29
|
fi
|
@@ -717,3 +726,40 @@ staging:
|
|
717
726
|
- .high-capacity
|
718
727
|
- .only-qa
|
719
728
|
when: manual
|
729
|
+
|
730
|
+
release:
|
731
|
+
stage: release
|
732
|
+
rules:
|
733
|
+
- if: '$CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "pipeline" || $CI_COMMIT_REF_NAME != "master"'
|
734
|
+
when: never
|
735
|
+
- if: '$CI_COMMIT_TAG'
|
736
|
+
when: on_success
|
737
|
+
- when: manual
|
738
|
+
script:
|
739
|
+
- gem update --system
|
740
|
+
- ruby --version
|
741
|
+
- gem env version
|
742
|
+
- bundle exec rake release
|
743
|
+
artifacts:
|
744
|
+
paths:
|
745
|
+
- pkg/
|
746
|
+
expire_in: 30 days
|
747
|
+
|
748
|
+
.notify_slack:
|
749
|
+
image: alpine
|
750
|
+
stage: notify
|
751
|
+
dependencies: []
|
752
|
+
cache: {}
|
753
|
+
before_script:
|
754
|
+
- apk update && apk add git curl bash
|
755
|
+
only:
|
756
|
+
variables:
|
757
|
+
- $TOP_UPSTREAM_SOURCE_JOB
|
758
|
+
- $NOTIFY_CHANNEL
|
759
|
+
|
760
|
+
notify_slack:
|
761
|
+
extends:
|
762
|
+
- .notify_slack
|
763
|
+
script:
|
764
|
+
- bin/slack $NOTIFY_CHANNEL "☠️ Pipeline against $RELEASE failed! ☠️ See $CI_PIPELINE_URL (triggered from $TOP_UPSTREAM_SOURCE_JOB)" ci_failing
|
765
|
+
when: on_failure
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<!-- Replace `v4.5.0` with the previous release here, and `e18d76b309e42888759c1effe96767f13e34ae55`
|
2
|
+
with the latest commit from https://gitlab.com/gitlab-org/gitlab-qa/commits/master that will be included in the release. -->
|
3
|
+
- Diff: https://gitlab.com/gitlab-org/gitlab-qa/compare/v4.5.0...e18d76b309e42888759c1effe96767f13e34ae55
|
4
|
+
|
5
|
+
- Release notes:
|
6
|
+
|
7
|
+
<!-- Keep the sections order but remove the empty sections -->
|
8
|
+
|
9
|
+
```markdown
|
10
|
+
### New scenarios and scenario updates
|
11
|
+
|
12
|
+
- !aaa <Title of the aaa MR>.
|
13
|
+
|
14
|
+
### Fixes
|
15
|
+
|
16
|
+
- !bbb <Title of the bbb MR>.
|
17
|
+
|
18
|
+
### Doc changes
|
19
|
+
|
20
|
+
- !ccc <Title of the ccc MR>.
|
21
|
+
|
22
|
+
### Other changes (CI, backstage)
|
23
|
+
|
24
|
+
- !ddd <Title of the ddd MR>.
|
25
|
+
```
|
26
|
+
|
27
|
+
- Checklist before merging:
|
28
|
+
- [ ] Diff link is up-to-date.
|
29
|
+
- [ ] Based on the diff, `lib/gitlab/qa/version.rb` is updated, according to [SemVer](https://semver.org).
|
30
|
+
- [ ] Release notes are accurate.
|
31
|
+
|
32
|
+
- Checklist after merging:
|
33
|
+
- [ ] [Create a tag for the new release version](docs/release_process.md#how-to).
|
34
|
+
|
35
|
+
/label ~Quality ~backstage
|
data/CONTRIBUTING.md
CHANGED
@@ -11,18 +11,4 @@ terms.
|
|
11
11
|
|
12
12
|
_This notice should stay as the first item in the CONTRIBUTING.md file._
|
13
13
|
|
14
|
-
## Releasing a new version
|
15
|
-
|
16
|
-
To release a new version you can follow these steps:
|
17
|
-
|
18
|
-
1. Bump the [version](lib/gitlab/qa/version.rb#L3) using [semantic versioning](https://semver.org/).
|
19
|
-
* You may find it helpful to fill out the description of the merge request
|
20
|
-
using the same format as for existing [tags](https://gitlab.com/gitlab-org/gitlab-qa/tags), as this will help in
|
21
|
-
step 3.
|
22
|
-
2. Pull the change locally and run `bundle exec rake release` to build, tag,
|
23
|
-
and push the new version to [RubyGems](https://rubygems.org/gems/gitlab-qa).
|
24
|
-
* Note: you will need an account on [RubyGems.org](https://rubygems.org/)
|
25
|
-
and permission to push `gitlab-qa`. Open an issue in this project to
|
26
|
-
request access.
|
27
|
-
3. Update the release notes for the new [tag](https://gitlab.com/gitlab-org/gitlab-qa/tags).
|
28
|
-
4. If any pipelines are locked to a specific version, update them if required.
|
14
|
+
## [Releasing a new version](docs/release_process.md)
|
data/bin/merge_html_reports
CHANGED
@@ -14,11 +14,12 @@ unless base_artifact_url
|
|
14
14
|
exit 1
|
15
15
|
end
|
16
16
|
|
17
|
-
# Create the base report with empty
|
17
|
+
# Create the base report with body tag (empty except for the onload method)
|
18
18
|
new_report = Nokogiri::HTML.parse(File.read(ARGV[0]))
|
19
19
|
new_report.at_css('body').remove
|
20
|
-
|
21
|
-
|
20
|
+
body = Nokogiri::XML::Node.new('body', new_report)
|
21
|
+
body[:onload] = "apply_filters()"
|
22
|
+
new_report.at_css('head').add_next_sibling(body)
|
22
23
|
|
23
24
|
ARGV.each do |report_file|
|
24
25
|
report = Nokogiri::HTML.parse(File.read(report_file))
|
@@ -34,6 +35,9 @@ ARGV.each do |report_file|
|
|
34
35
|
next if tests.empty?
|
35
36
|
|
36
37
|
header.search("//h1/text()").first.content = "Test results for job: #{report_file.slice(/rspec-(.*)\.htm/, 1)}"
|
38
|
+
header.css("#display-filters input").each do |filter|
|
39
|
+
filter.remove_attribute('checked') if filter[:id] != "failed_checkbox"
|
40
|
+
end
|
37
41
|
|
38
42
|
tests.each do |test|
|
39
43
|
title = test.parent
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Release Process
|
2
|
+
|
3
|
+
## Versioning
|
4
|
+
|
5
|
+
We follow [Semantic Versioning](https://semver.org). In short, this means that the new version should reflect the types of changes that are about to be released.
|
6
|
+
|
7
|
+
*summary from semver.org*
|
8
|
+
|
9
|
+
MAJOR.MINOR.PATCH
|
10
|
+
|
11
|
+
- MAJOR version when you make incompatible API changes,
|
12
|
+
- MINOR version when you add functionality in a backwards compatible manner, and
|
13
|
+
- PATCH version when you make backwards compatible bug fixes.
|
14
|
+
|
15
|
+
## When we release
|
16
|
+
|
17
|
+
We release `gitlab-qa` on an ad-hoc basis. There is no regularity to when we release, we just release
|
18
|
+
when we make a change - no matter the size of the change.
|
19
|
+
|
20
|
+
## How-to
|
21
|
+
|
22
|
+
- Check if there is an [open merge request to bump the version](https://gitlab.com/gitlab-org/gitlab-qa/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&search=bump+version) (to avoid creating a duplicate).
|
23
|
+
- If there is one, update it if necessary.
|
24
|
+
- If not, update [`lib/gitlab/qa/version.rb`] to an appropriate [semantic version](https://semver.org) in a new merge request using the [release template](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/.gitlab/merge_request_templates/Release.md)
|
25
|
+
and title the MR like `"Bump version to <version>"`.
|
26
|
+
- Merge the merge request.
|
27
|
+
- Create a new tag via the UI (https://gitlab.com/gitlab-org/gitlab-qa/-/tags/new).
|
28
|
+
* **Tag name**: The same version found in [`lib/gitlab/qa/version.rb`], prefixed with `v`, e.g. if the version is `4.7.1`, the tag would be `v4.7.1`.
|
29
|
+
* **Message**: This can be something simple such as "<version> release".
|
30
|
+
* **Release notes**: Copy the release notes from the merge request.
|
31
|
+
* Click *Create Tag*.
|
32
|
+
|
33
|
+
GitLab will then start a pipeline for this new tag, and the `release` job will build and push the new version of `gitlab-qa` to RubyGems.
|
34
|
+
|
35
|
+
[`lib/gitlab/qa/version.rb`]: https://gitlab.com/gitlab-org/gitlab-qa/blob/master/lib/gitlab/qa/version.rb#L3
|
@@ -82,6 +82,32 @@ For more details on the internals, please read the
|
|
82
82
|
It is possible to enable a feature flag before running tests. See the [QA
|
83
83
|
framework documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/README.md#running-tests-with-a-feature-flag-enabled) for details.
|
84
84
|
|
85
|
+
## Specifying the GitLab version
|
86
|
+
|
87
|
+
In each of the examples below, it is possible to test a specific version of GitLab
|
88
|
+
by providing the full image name, or an abbreviation followed by the image tag.
|
89
|
+
|
90
|
+
For example, to test GitLab version `12.4.0-ee`, the image tag is [`12.4.0-ee.0`](https://hub.docker.com/layers/gitlab/gitlab-ee/12.4.0-ee.0/images/sha256-65df19d8abbb0debdccb64bfe96871563806098cd84da0b818ae8cfdd928b9aa)
|
91
|
+
and so you could run the tests with the command:
|
92
|
+
|
93
|
+
```
|
94
|
+
$ gitlab-qa Test::Instance::Image gitlab/gitlab-ee:12.4.0-ee.0
|
95
|
+
```
|
96
|
+
|
97
|
+
Or with the command:
|
98
|
+
|
99
|
+
```
|
100
|
+
$ gitlab-qa Test::Instance::Image EE:12.4.0-ee.0
|
101
|
+
```
|
102
|
+
|
103
|
+
If you only provide the abbreviation, it will run the tests against the latest nightly image.
|
104
|
+
|
105
|
+
For example, the following command would use the image named `gitlab/gitlab-ee:nightly`
|
106
|
+
|
107
|
+
```
|
108
|
+
$ gitlab-qa Test::Instance::Image EE
|
109
|
+
```
|
110
|
+
|
85
111
|
## Examples
|
86
112
|
|
87
113
|
### `Test::Instance::Image CE|EE|<full image address>`
|
data/lib/gitlab/qa/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-qa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grzegorz Bizon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -133,7 +133,7 @@ files:
|
|
133
133
|
- ".dockerignore"
|
134
134
|
- ".gitignore"
|
135
135
|
- ".gitlab-ci.yml"
|
136
|
-
- ".gitlab/
|
136
|
+
- ".gitlab/merge_request_templates/Release.md"
|
137
137
|
- ".rspec"
|
138
138
|
- ".rubocop.yml"
|
139
139
|
- ".travis.yml"
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- docs/README.md
|
152
152
|
- docs/architecture.md
|
153
153
|
- docs/how_it_works.md
|
154
|
+
- docs/release_process.md
|
154
155
|
- docs/run_qa_against_gdk.md
|
155
156
|
- docs/running_against_remote_grid.md
|
156
157
|
- docs/trainings.md
|
@@ -233,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
234
|
- !ruby/object:Gem::Version
|
234
235
|
version: '0'
|
235
236
|
requirements: []
|
236
|
-
rubygems_version: 3.0.
|
237
|
+
rubygems_version: 3.0.6
|
237
238
|
signing_key:
|
238
239
|
specification_version: 4
|
239
240
|
summary: Integration tests for GitLab
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<!-- Replace `v4.5.0` with the previous release here, and `e18d76b309e42888759c1effe96767f13e34ae55`
|
2
|
-
with the latest commit from https://gitlab.com/gitlab-org/gitlab-qa/commits/master that will be included in the release. -->
|
3
|
-
Diff: https://gitlab.com/gitlab-org/gitlab-qa/compare/v4.5.0...e18d76b309e42888759c1effe96767f13e34ae55
|
4
|
-
|
5
|
-
Release notes:
|
6
|
-
|
7
|
-
```markdown
|
8
|
-
### Fixes
|
9
|
-
|
10
|
-
- !xxx Fix a broken OAuth scenario.
|
11
|
-
|
12
|
-
### New scenarios
|
13
|
-
|
14
|
-
- !xxx Add a new Awesome scenario.
|
15
|
-
|
16
|
-
### Scenario changes
|
17
|
-
|
18
|
-
- !xxx Scenario `Foo` now accepts a new `--bar` option.
|
19
|
-
|
20
|
-
### Doc changes
|
21
|
-
|
22
|
-
- !xxx Document the new `QA_FOO_BAR` variable.
|
23
|
-
|
24
|
-
### CI changes
|
25
|
-
|
26
|
-
- !xxx Add a new staging job.
|
27
|
-
|
28
|
-
### Other changes
|
29
|
-
|
30
|
-
- !xxx Description of the other change.
|
31
|
-
```
|
32
|
-
|
33
|
-
/label ~backstage
|