gitlab-qa 4.7.1 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
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