manageiq-cross_repo 1.2.1 → 2.2.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/.github/workflows/ci.yaml +26 -0
- data/.github/workflows/manageiq_cross_repo.yaml +52 -0
- data/.whitesource +3 -0
- data/CHANGELOG.md +22 -10
- data/lib/manageiq/cross_repo/runner/base.rb +7 -10
- data/lib/manageiq/cross_repo/runner/github.rb +12 -8
- data/lib/manageiq/cross_repo/runner/travis.rb +1 -1
- data/lib/manageiq/cross_repo/runner.rb +11 -1
- data/lib/manageiq/cross_repo/version.rb +1 -1
- metadata +10 -8
- data/.travis.yml +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6ab5c65ef2a6fd67148e518d9b46155f53e76efa5438f07fc7a59699380088f
|
4
|
+
data.tar.gz: 12d54a2c5a55f818a9d63a4cacc20c55a6c9c64848f41d8d8d3ea100f08808f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bf529b534de116f2eed3b516ba4cfc6598913d9a31df1ff114ee64d749b5bfd6369a42d15810eed9c204d9ec6b0ca6667477ceaa29fe47690a2e815656bedb8
|
7
|
+
data.tar.gz: 63d8108addd7a4b06cc51844f52ef76014785b3cc69ec0feec2f7aec49edccdccaec727f6afb69be845029bb01c72db7dd83a0043c06b2b2297ddaf97aec9b41
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
schedule:
|
7
|
+
- cron: '0 0 * * 0'
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
ci:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby-version:
|
15
|
+
- '2.5'
|
16
|
+
- '2.6'
|
17
|
+
- '2.7'
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Set up Ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
bundler-cache: true
|
25
|
+
- name: Run tests
|
26
|
+
run: bundle exec rake
|
@@ -0,0 +1,52 @@
|
|
1
|
+
name: ManageIQ Cross Repo Workflow
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_call:
|
5
|
+
inputs:
|
6
|
+
test-repos:
|
7
|
+
required: true
|
8
|
+
type: string
|
9
|
+
repos:
|
10
|
+
required: true
|
11
|
+
type: string
|
12
|
+
test-suite:
|
13
|
+
required: false
|
14
|
+
type: string
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
ci:
|
18
|
+
runs-on: ubuntu-latest
|
19
|
+
strategy:
|
20
|
+
fail-fast: false
|
21
|
+
matrix:
|
22
|
+
test-repo: ${{ fromJson(inputs.test-repos) }}
|
23
|
+
services:
|
24
|
+
postgres:
|
25
|
+
image: manageiq/postgresql:10
|
26
|
+
env:
|
27
|
+
POSTGRESQL_USER: root
|
28
|
+
POSTGRESQL_PASSWORD: smartvm
|
29
|
+
POSTGRESQL_DATABASE: vmdb_test
|
30
|
+
options: --health-cmd pg_isready --health-interval 2s --health-timeout 5s --health-retries 5
|
31
|
+
ports:
|
32
|
+
- 5432:5432
|
33
|
+
env:
|
34
|
+
TEST_SUITE: ${{ inputs.test-suite }}
|
35
|
+
REPOS: ${{ inputs.repos }}
|
36
|
+
TEST_REPO: ${{ matrix.test-repo }}
|
37
|
+
PGHOST: localhost
|
38
|
+
PGPASSWORD: smartvm
|
39
|
+
steps:
|
40
|
+
- uses: actions/checkout@v2
|
41
|
+
- name: Set up Ruby
|
42
|
+
uses: ruby/setup-ruby@v1
|
43
|
+
with:
|
44
|
+
ruby-version: 2.7
|
45
|
+
bundler-cache: true
|
46
|
+
- name: Set up Node
|
47
|
+
uses: actions/setup-node@v2
|
48
|
+
with:
|
49
|
+
node-version: 12
|
50
|
+
registry-url: https://npm.manageiq.org/
|
51
|
+
- name: Run tests
|
52
|
+
run: bundle exec manageiq-cross_repo
|
data/.whitesource
ADDED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
|
+
## [2.1.0] - 2022-02-21
|
8
|
+
### Changed
|
9
|
+
- Update nodejs version to v16 (#79)
|
10
|
+
|
11
|
+
## [2.0.0] - 2022-02-08
|
12
|
+
### Changed
|
13
|
+
- Announce the cross repo run information (#81)
|
14
|
+
- Use Github Actions for CI (#82)
|
15
|
+
- Replace Travis with Github Actions (#83)
|
16
|
+
|
7
17
|
## [1.2.1] - 2022-01-11
|
8
18
|
### Fixed
|
9
19
|
- Fix unpacking the hash for ruby 3 support
|
@@ -46,13 +56,15 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
46
56
|
- Fix an issue extracting tgz files smaller than 10Kb
|
47
57
|
- Fix an issue overriding gems whose repo name doesn't match
|
48
58
|
|
49
|
-
[Unreleased]: https://github.com/ManageIQ/
|
50
|
-
[
|
51
|
-
[
|
52
|
-
[1.1
|
53
|
-
[1.
|
54
|
-
[1.1.
|
55
|
-
[1.1.
|
56
|
-
[1.
|
57
|
-
[1.0
|
58
|
-
[1.0.
|
59
|
+
[Unreleased]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v2.1.0...HEAD
|
60
|
+
[2.1.0]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v2.1.0..v2.0.0
|
61
|
+
[2.0.0]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v2.0.0...v1.2.1
|
62
|
+
[1.2.1]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.2.0...v1.2.1
|
63
|
+
[1.2.0]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.1.3...v1.2.0
|
64
|
+
[1.1.3]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.1.2...v1.1.3
|
65
|
+
[1.1.2]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.1.1...v1.1.2
|
66
|
+
[1.1.1]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.1.0...v1.1.1
|
67
|
+
[1.1.0]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.0.4...v1.1.0
|
68
|
+
[1.0.4]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.0.3...v1.0.4
|
69
|
+
[1.0.3]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.0.2...v1.0.3
|
70
|
+
[1.0.2]: https://github.com/ManageIQ/manageiq-cross_repo/compare/v1.0.1...v1.0.2
|
@@ -4,10 +4,11 @@ require "yaml"
|
|
4
4
|
module ManageIQ::CrossRepo
|
5
5
|
class Runner
|
6
6
|
class Base
|
7
|
-
attr_accessor :script_cmd
|
7
|
+
attr_accessor :script_cmd, :config
|
8
8
|
|
9
9
|
def initialize(script_cmd = nil)
|
10
10
|
@script_cmd = script_cmd.presence
|
11
|
+
@config = load_config!
|
11
12
|
end
|
12
13
|
|
13
14
|
def build_test_script
|
@@ -49,9 +50,9 @@ module ManageIQ::CrossRepo
|
|
49
50
|
|
50
51
|
def build_section(section, *commands)
|
51
52
|
[
|
52
|
-
"echo '
|
53
|
+
"echo '::group::#{section}'",
|
53
54
|
*commands,
|
54
|
-
"echo '
|
55
|
+
"echo '::endgroup::'"
|
55
56
|
]
|
56
57
|
end
|
57
58
|
|
@@ -64,11 +65,7 @@ module ManageIQ::CrossRepo
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def load_config!
|
67
|
-
config
|
68
|
-
end
|
69
|
-
|
70
|
-
def config
|
71
|
-
@config ||= travis_config.tap do |config|
|
68
|
+
ci_config.tap do |config|
|
72
69
|
# Set missing sections to the proper defaults
|
73
70
|
config["install"] ||= defaults[config["language"]]["install"]
|
74
71
|
|
@@ -77,7 +74,7 @@ module ManageIQ::CrossRepo
|
|
77
74
|
end
|
78
75
|
end
|
79
76
|
|
80
|
-
def
|
77
|
+
def ci_config
|
81
78
|
raise NotImplementedError, "must be implemented in a subclass"
|
82
79
|
end
|
83
80
|
|
@@ -85,7 +82,7 @@ module ManageIQ::CrossRepo
|
|
85
82
|
@defaults ||= {
|
86
83
|
"node_js" => {
|
87
84
|
"language" => "node_js",
|
88
|
-
"node_js" => ["
|
85
|
+
"node_js" => ["14"],
|
89
86
|
"install" => "npm install",
|
90
87
|
"script" => "npm test"
|
91
88
|
},
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative "./base"
|
2
2
|
require "yaml"
|
3
|
+
require "active_support/core_ext/enumerable"
|
3
4
|
|
4
5
|
module ManageIQ::CrossRepo
|
5
6
|
class Runner
|
@@ -12,18 +13,21 @@ module ManageIQ::CrossRepo
|
|
12
13
|
|
13
14
|
private
|
14
15
|
|
15
|
-
def
|
16
|
+
def ci_config
|
17
|
+
github_config = YAML.load_file(CONFIG_FILE)
|
18
|
+
|
16
19
|
steps = github_config["jobs"]["ci"]["steps"]
|
20
|
+
steps_by_name = steps.index_by { |step| step["name"] }
|
21
|
+
|
17
22
|
language = steps.any? { |s| s["uses"] == "ruby/setup-ruby@v1" } ? "ruby" : "node_js"
|
18
23
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
result = {"language" => language}
|
25
|
+
|
26
|
+
result["before_install"] = steps_by_name["Set up system"]["run"] if steps_by_name["Set up system"]
|
27
|
+
result["before_script"] = steps_by_name["Prepare tests"]["run"] if steps_by_name["Prepare tests"]
|
28
|
+
result["script"] = steps_by_name["Run tests"]["run"] if steps_by_name["Run tests"]
|
24
29
|
|
25
|
-
|
26
|
-
YAML.load_file(CONFIG_FILE)
|
30
|
+
result
|
27
31
|
end
|
28
32
|
end
|
29
33
|
end
|
@@ -26,6 +26,7 @@ module ManageIQ::CrossRepo
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def run
|
29
|
+
announce_run
|
29
30
|
test_repo.ensure_clone
|
30
31
|
core_repo.ensure_clone unless test_repo.core?
|
31
32
|
prepare_gem_repos
|
@@ -34,6 +35,15 @@ module ManageIQ::CrossRepo
|
|
34
35
|
|
35
36
|
private
|
36
37
|
|
38
|
+
def announce_run
|
39
|
+
puts "\e[36m Starting cross repo for:\e[0m"
|
40
|
+
puts " \e[36mtest repo: #{test_repo.identifier}\e[0m"
|
41
|
+
puts " \e[36mcore repo: #{core_repo.identifier}\e[0m"
|
42
|
+
gem_repos.each do |gr|
|
43
|
+
puts " \e[36mgem repo: #{gr.identifier}\e[0m"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
37
47
|
def bundle_path
|
38
48
|
app_path = Pathname.new(ENV["TRAVIS_BUILD_DIR"].presence || Pathname.pwd)
|
39
49
|
app_path.join("vendor", "bundle")
|
@@ -47,7 +57,7 @@ module ManageIQ::CrossRepo
|
|
47
57
|
end
|
48
58
|
|
49
59
|
def env_vars
|
50
|
-
{"MANAGEIQ_REPO" => core_repo.path.to_s, "
|
60
|
+
{"MANAGEIQ_REPO" => core_repo.path.to_s, "BUNDLE_PATH" => bundle_path.to_s, "TEST_SUITE" => test_suite}
|
51
61
|
end
|
52
62
|
|
53
63
|
def with_test_env
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manageiq-cross_repo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ManageIQ Authors
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: manageiq-style
|
@@ -123,19 +123,21 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
description: ManageIQ CrossRepo testing library
|
126
|
-
email:
|
126
|
+
email:
|
127
127
|
executables:
|
128
128
|
- manageiq-cross_repo
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".codeclimate.yml"
|
133
|
+
- ".github/workflows/ci.yaml"
|
134
|
+
- ".github/workflows/manageiq_cross_repo.yaml"
|
133
135
|
- ".gitignore"
|
134
136
|
- ".rspec"
|
135
137
|
- ".rubocop.yml"
|
136
138
|
- ".rubocop_cc.yml"
|
137
139
|
- ".rubocop_local.yml"
|
138
|
-
- ".
|
140
|
+
- ".whitesource"
|
139
141
|
- CHANGELOG.md
|
140
142
|
- Gemfile
|
141
143
|
- LICENSE.txt
|
@@ -160,7 +162,7 @@ licenses:
|
|
160
162
|
metadata:
|
161
163
|
homepage_uri: https://github.com/ManageIQ/manageiq-cross_repo
|
162
164
|
source_code_uri: https://github.com/ManageIQ/manageiq-cross_repo
|
163
|
-
post_install_message:
|
165
|
+
post_install_message:
|
164
166
|
rdoc_options: []
|
165
167
|
require_paths:
|
166
168
|
- lib
|
@@ -175,8 +177,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
177
|
- !ruby/object:Gem::Version
|
176
178
|
version: '0'
|
177
179
|
requirements: []
|
178
|
-
rubygems_version: 3.
|
179
|
-
signing_key:
|
180
|
+
rubygems_version: 3.3.5
|
181
|
+
signing_key:
|
180
182
|
specification_version: 4
|
181
183
|
summary: ManageIQ CrossRepo testing library
|
182
184
|
test_files: []
|