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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d521a2696e2c3b1bfeeebc33c63f9380c85bded122e27bac3212f7062466c1f
4
- data.tar.gz: 7739221d04288e6f4db261486e9ca6cb09cf84d32286bf52794d080a064931ce
3
+ metadata.gz: c369a98179f8f30c64babf5884b9919b14bf2016a15e0c4a172a5516c870be87
4
+ data.tar.gz: d790e55c6879463128dcee0a76437f0d98ae66e0aa5a8a72cfa827da385d11ab
5
5
  SHA512:
6
- metadata.gz: ccbd5e903fa8b48ff4ebcec8112edab52f65350f17c99d8d046ed17adbbbac355ab89a13a1ce18950012d2f8f7db1bb1def403217ee4b445b913fe16dc2bf9ff
7
- data.tar.gz: 4ad1e1211e80cddafe8150cb73963b8eb7f713138bfec5af40277aad38ca6462b6134362eb6eca5f441d5f2ed6632e7471d3a5c7ffb6b22f5d055b2cd3a7ccd6
6
+ metadata.gz: ed4335697822edc553edbaa5d7a8bad7fa498e80773e16a5b9f6a7e7bddd42893a4954d3bcd37849e4cb5cb1c6c954fca669a0074e1aaf21d8dc6335cbaa16b7
7
+ data.tar.gz: a8de7ca6b1c86abb91b628266f1eaa293fd70ead1a1944469d5513c200ef5e5f452772ff021f5b8b8b8890f02c725974dfad35da2ec49c0b6ecdd46680f4d970
@@ -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 install
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
@@ -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)
@@ -14,11 +14,12 @@ unless base_artifact_url
14
14
  exit 1
15
15
  end
16
16
 
17
- # Create the base report with empty body tag
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
- empty_body = Nokogiri::XML::Node.new('body', new_report)
21
- new_report.at_css('head').add_next_sibling(empty_body)
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>`
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '4.7.1'.freeze
3
+ VERSION = '4.8.0'.freeze
4
4
  end
5
5
  end
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.7.1
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-23 00:00:00.000000000 Z
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/issue_templates/Release.md"
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.3
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