simp-test 0.2.1 → 0.3.19
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.local.json +5 -0
- data/.github/workflows/pr_tests.yml +0 -18
- data/.github/workflows/tag_deploy_rubygem.yml +50 -8
- data/Rakefile +142 -5
- data/lib/simp/test/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9487aa15fe2637c98a02a33941d7b9c1201b3ee2350cb6b0d6f8a3d73b03ea1
|
4
|
+
data.tar.gz: 423dfbd08bd5e74cad21f0bae8a8547955650ff1032b2353906ea5b21450c6ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dc2e7f81f6f8f1ecbd55fe0498a246fbdbca9836b2b89057a73c148837019f63ba41a9a7090d44d7369b0bf263350685e8dfa7d894c8ee145b8ddb1e919b4fb
|
7
|
+
data.tar.gz: 54fa02608b2eb5c2845315740dd425486514d36e80339d1b5f6678adccb43d7721b2f4ba48d3019e4fdb1dc64a49e338baf2be41aeb23a829ac3008333965126
|
@@ -38,24 +38,6 @@ jobs:
|
|
38
38
|
bundle show
|
39
39
|
bundle exec rake rubocop
|
40
40
|
|
41
|
-
# releng-checks:
|
42
|
-
# name: 'RELENG checks'
|
43
|
-
# runs-on: ubuntu-18.04
|
44
|
-
# steps:
|
45
|
-
# - uses: actions/checkout@v2
|
46
|
-
# - name: 'Install Ruby ${{matrix.puppet.ruby_version}}'
|
47
|
-
# uses: ruby/setup-ruby@v1
|
48
|
-
# with:
|
49
|
-
# ruby-version: 2.5
|
50
|
-
# bundler-cache: true
|
51
|
-
# - name: 'Tags and changelogs'
|
52
|
-
# run: |
|
53
|
-
# bundle exec rake pkg:check_version
|
54
|
-
# bundle exec rake pkg:compare_latest_tag
|
55
|
-
# bundle exec rake pkg:create_tag_changelog
|
56
|
-
# - name: 'Test-build the Puppet module'
|
57
|
-
# run: 'bundle exec pdk build --force'
|
58
|
-
|
59
41
|
spec-tests:
|
60
42
|
name: 'Spec tests'
|
61
43
|
runs-on: ubuntu-18.04
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# Build & Deploy RubyGem & GitHub release when a SemVer tag is pushed
|
2
|
+
#
|
3
|
+
# This workflow's jobs are only triggered in repos under the `simp` organization
|
2
4
|
# ------------------------------------------------------------------------------
|
3
5
|
#
|
4
6
|
# NOTICE: **This file is maintained with puppetsync**
|
5
7
|
#
|
6
|
-
# This file is updated automatically as part of
|
8
|
+
# This file is updated automatically as part of a standardized asset baseline.
|
7
9
|
#
|
8
10
|
# The next baseline sync will overwrite any local changes to this file!
|
9
11
|
#
|
@@ -21,6 +23,19 @@
|
|
21
23
|
#
|
22
24
|
# * The CHANGLOG text is altered to remove RPM-style date headers, which don't
|
23
25
|
# render well as markdown on the GitHub release pages
|
26
|
+
#
|
27
|
+
# * By default, the gem is built and released using the standard rake tasks
|
28
|
+
# from "bundler/gem_tasks". To override these, create a JSON file at
|
29
|
+
# `.github/workflows.local.json`, using the format:
|
30
|
+
#
|
31
|
+
# {
|
32
|
+
# "gem_build_command": "bundle exec rake build",
|
33
|
+
# "gem_release_command": "bundle exec rake build release:rubygem_push",
|
34
|
+
# "gem_pkg_dir": "pkg"
|
35
|
+
# }
|
36
|
+
#
|
37
|
+
# All keys are optional.
|
38
|
+
#
|
24
39
|
---
|
25
40
|
name: 'Tag: Release to GitHub & rubygems.org'
|
26
41
|
|
@@ -36,10 +51,12 @@ env:
|
|
36
51
|
jobs:
|
37
52
|
releng-checks:
|
38
53
|
name: "RELENG checks"
|
54
|
+
if: github.repository_owner == 'simp'
|
39
55
|
runs-on: ubuntu-18.04
|
40
56
|
outputs:
|
41
57
|
build_command: ${{ steps.commands.outputs.build_command }}
|
42
58
|
release_command: ${{ steps.commands.outputs.release_command }}
|
59
|
+
pkg_dir: ${{ steps.commands.outputs.pkg_dir }}
|
43
60
|
steps:
|
44
61
|
- name: "Assert '${{ github.ref }}' is a tag"
|
45
62
|
run: '[[ "$GITHUB_REF" =~ ^refs/tags/ ]] || { echo "::error ::GITHUB_REF is not a tag: ${GITHUB_REF}"; exit 1 ; }'
|
@@ -53,27 +70,48 @@ jobs:
|
|
53
70
|
# By default, these are the standard tasks from "bundler/gem_tasks"
|
54
71
|
# To override them in the LOCAL_WORKFLOW_CONFIG_FILE
|
55
72
|
GEM_BUILD_COMMAND='bundle exec rake build'
|
56
|
-
GEM_RELEASE_COMMAND='
|
73
|
+
GEM_RELEASE_COMMAND='bundle exec rake build release:rubygem_push'
|
74
|
+
GEM_PKG_DIR='pkg'
|
75
|
+
if jq -r '. | keys' "$LOCAL_WORKFLOW_CONFIG_FILE" 2>/dev/null | \
|
76
|
+
grep -w '"gem_pkg_dir"' &> /dev/null; then
|
77
|
+
GEM_PKG_DIR="$(jq -r .gem_pkg_dir "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
78
|
+
fi
|
57
79
|
if jq -r '. | keys' "$LOCAL_WORKFLOW_CONFIG_FILE" 2>/dev/null | \
|
58
80
|
grep -w '"gem_build_command"' &> /dev/null; then
|
59
|
-
GEM_BUILD_COMMAND="$(jq .gem_build_command "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
81
|
+
GEM_BUILD_COMMAND="$(jq -r .gem_build_command "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
60
82
|
fi
|
61
83
|
if jq -r '. | keys' "$LOCAL_WORKFLOW_CONFIG_FILE" 2>/dev/null | \
|
62
84
|
grep -w '"gem_release_command"' &> /dev/null; then
|
63
|
-
GEM_RELEASE_COMMAND="$(jq .gem_release_command "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
85
|
+
GEM_RELEASE_COMMAND="$(jq -r .gem_release_command "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
64
86
|
fi
|
65
87
|
echo "::set-output name=build_command::${GEM_BUILD_COMMAND}"
|
88
|
+
echo "::set-output name=pkg_dir::${GEM_PKG_DIR}"
|
66
89
|
echo "::set-output name=release_command::${GEM_RELEASE_COMMAND}"
|
67
90
|
- uses: ruby/setup-ruby@v1
|
68
91
|
with:
|
69
92
|
ruby-version: 2.5
|
70
93
|
bundler-cache: true
|
71
94
|
- name: Test build the package
|
72
|
-
|
95
|
+
env:
|
96
|
+
GEM_BUILD_COMMAND: ${{ steps.commands.outputs.build_command }}
|
97
|
+
run: "$GEM_BUILD_COMMAND"
|
98
|
+
- name: "Assert '${{ github.ref }}' matches the package version"
|
99
|
+
run: |
|
100
|
+
tag="${GITHUB_REF/refs\/tags\//}"
|
101
|
+
ls -lart
|
102
|
+
ls -lart ${{ steps.commands.outputs.pkg_dir }}
|
103
|
+
ls -lart ${{ steps.commands.outputs.pkg_dir }}/*.gem
|
104
|
+
[ -d "${{ steps.commands.outputs.pkg_dir }}" ] || \
|
105
|
+
{ echo "::error ::No directory found at ${{ steps.commands.outputs.pkg_dir }}/" ; exit 3 ; }
|
106
|
+
ls -1 "${{ steps.commands.outputs.pkg_dir }}"/*.gem || \
|
107
|
+
{ echo "::error ::No gem file found at ${{ steps.commands.outputs.pkg_dir }}/*.gem" ; exit 2 ; }
|
108
|
+
[ -f "${{ steps.commands.outputs.pkg_dir }}"/*-${tag}.gem ] || \
|
109
|
+
{ echo "::error ::tag '${tag}' does not match package $(ls -1 ${{ steps.commands.outputs.pkg_dir }}/*.gem)"; exit 1 ; }
|
73
110
|
|
74
111
|
create-github-release:
|
75
112
|
name: Deploy GitHub Release
|
76
113
|
needs: [ releng-checks ]
|
114
|
+
if: github.repository_owner == 'simp'
|
77
115
|
runs-on: ubuntu-18.04
|
78
116
|
steps:
|
79
117
|
- name: Checkout code
|
@@ -117,6 +155,7 @@ jobs:
|
|
117
155
|
deploy-rubygem:
|
118
156
|
name: Deploy RubyGem Release
|
119
157
|
needs: [ releng-checks ]
|
158
|
+
if: github.repository_owner == 'simp'
|
120
159
|
runs-on: ubuntu-18.04
|
121
160
|
env:
|
122
161
|
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
@@ -133,7 +172,12 @@ jobs:
|
|
133
172
|
ruby-version: 2.5
|
134
173
|
bundler-cache: true
|
135
174
|
- name: Build RubyGem
|
136
|
-
run:
|
175
|
+
run: |
|
176
|
+
echo "Setting up file permissions..."
|
177
|
+
chmod -R go=u-w .
|
178
|
+
|
179
|
+
echo "Running '$BUILD_COMMAND'..."
|
180
|
+
$BUILD_COMMAND
|
137
181
|
|
138
182
|
- name: Release RubyGem
|
139
183
|
run: |
|
@@ -146,7 +190,5 @@ jobs:
|
|
146
190
|
EOF
|
147
191
|
chmod 0600 ~/.gem/credentials
|
148
192
|
|
149
|
-
chmod -R go=u-w .
|
150
|
-
|
151
193
|
echo "Running '$RELEASE_COMMAND'..."
|
152
194
|
$RELEASE_COMMAND
|
data/Rakefile
CHANGED
@@ -1,8 +1,145 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require '
|
1
|
+
require 'rake/clean'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'find'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
|
6
|
-
|
6
|
+
@package='simp-test'
|
7
|
+
@rakefile_dir=File.dirname(__FILE__)
|
8
|
+
|
9
|
+
CLEAN.include "#{@package}-*.gem"
|
10
|
+
CLEAN.include 'pkg'
|
11
|
+
CLEAN.include 'dist'
|
12
|
+
CLEAN.include '.vendor'
|
13
|
+
Find.find( @rakefile_dir ) do |path|
|
14
|
+
if File.directory? path
|
15
|
+
CLEAN.include path if File.basename(path) == 'tmp'
|
16
|
+
else
|
17
|
+
Find.prune
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
desc 'Ensure gemspec-safe permissions on all files'
|
23
|
+
task :chmod do
|
24
|
+
gemspec = File.expand_path( "#{@package}.gemspec", @rakefile_dir ).strip
|
25
|
+
spec = Gem::Specification::load( gemspec )
|
26
|
+
spec.files.each do |file|
|
27
|
+
FileUtils.chmod 'go=r', file unless File.symlink?(file)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
desc 'special notes about these rake commands'
|
32
|
+
task :help do
|
33
|
+
puts %Q{
|
34
|
+
== environment variables ==
|
35
|
+
SIMP_RPM_BUILD when set, alters the gem produced by pkg:gem to be RPM-safe.
|
36
|
+
'pkg:gem' sets this automatically.
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
desc "Run spec tests"
|
41
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
42
|
+
t.rspec_opts = ['--color']
|
43
|
+
t.pattern = 'spec/lib/**/*_spec.rb'
|
44
|
+
end
|
45
|
+
|
46
|
+
desc %q{run all RSpec tests (alias of 'spec')}
|
47
|
+
task :test => :spec
|
48
|
+
|
49
|
+
desc "Run acceptance tests"
|
50
|
+
RSpec::Core::RakeTask.new(:acceptance) do |t|
|
51
|
+
t.pattern = 'spec/acceptance'
|
52
|
+
end
|
53
|
+
|
54
|
+
namespace :pkg do
|
55
|
+
@specfile_template = "rubygem-#{@package}.spec.template"
|
56
|
+
@specfile = "build/rubygem-#{@package}.spec"
|
57
|
+
|
58
|
+
# ----------------------------------------
|
59
|
+
# DO NOT UNCOMMENT THIS: the spec file requires a lot of tweaking
|
60
|
+
# ----------------------------------------
|
61
|
+
# desc "generate RPM spec file for #{@package}"
|
62
|
+
# task :spec => [:clean, :gem] do
|
63
|
+
# Dir.glob("pkg/#{@package}*.gem") do |pkg|
|
64
|
+
# sh %Q{gem2rpm -t "#{@specfile_template}" "#{pkg}" > "#{@specfile}"}
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
|
68
|
+
desc "build rubygem package for #{@package}"
|
69
|
+
task :gem => :chmod do
|
70
|
+
Dir.chdir @rakefile_dir
|
71
|
+
Dir['*.gemspec'].each do |spec_file|
|
72
|
+
rpm_build = ENV.fetch('SIMP_RPM_BUILD', '1')
|
73
|
+
cmd = %Q{SIMP_RPM_BUILD=#{rpm_build} bundle exec gem build "#{spec_file}"}
|
74
|
+
sh cmd
|
75
|
+
FileUtils.mkdir_p 'dist'
|
76
|
+
FileUtils.mv Dir.glob("#{@package}*.gem"), 'dist/'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
desc "build and install rubygem package for #{@package}"
|
82
|
+
task :install_gem => [:clean, :gem] do
|
83
|
+
Dir.chdir @rakefile_dir
|
84
|
+
Dir.glob("dist/#{@package}*.gem") do |pkg|
|
85
|
+
sh %Q{bundle exec gem install #{pkg}}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
desc "generate RPM for #{@package}"
|
91
|
+
require 'tmpdir'
|
92
|
+
task :rpm, [:mock_root] => [:clean, :gem] do |t, args|
|
93
|
+
mock_root = args[:mock_root]
|
94
|
+
# TODO : Get rid of this terrible code. Shoe-horned in until
|
95
|
+
# we have a better idea for auto-decet
|
96
|
+
if mock_root =~ /^epel-6/ then el_version = '6'
|
97
|
+
elsif mock_root =~ /^epel-7/ then el_version = '7'
|
98
|
+
else puts 'WARNING: Did not detect epel version'
|
99
|
+
end
|
100
|
+
tmp_dir = ''
|
101
|
+
|
102
|
+
if tmp_dir = ENV.fetch( 'SIMP_MOCK_SIMPGEM_ASSETS_DIR', false )
|
103
|
+
FileUtils.mkdir_p tmp_dir
|
104
|
+
else
|
105
|
+
tmp_dir = Dir.mktmpdir( "build_#{@package}" )
|
106
|
+
end
|
107
|
+
|
108
|
+
begin
|
109
|
+
Dir.chdir tmp_dir
|
110
|
+
specfile = "#{@rakefile_dir}/build/rubygem-#{@package}.el#{el_version}.spec"
|
111
|
+
tmp_specfile = "#{tmp_dir}/rubygem-#{@package}.el#{el_version}.spec"
|
112
|
+
|
113
|
+
# We have to copy to a local directory because mock bugs out in NFS
|
114
|
+
# home directories (where SIMP devs often work)
|
115
|
+
FileUtils.cp specfile, tmp_specfile, :preserve => true
|
116
|
+
Dir.glob("#{@rakefile_dir}/dist/#{@package}*.gem") do |pkg|
|
117
|
+
FileUtils.cp pkg, tmp_dir, :preserve => true
|
118
|
+
end
|
119
|
+
|
120
|
+
# Build SRPM from specfile
|
121
|
+
sh %Q{mock -r #{mock_root} --buildsrpm --source="#{tmp_dir}" --spec="#{tmp_specfile}" --resultdir="#{tmp_dir}"}
|
122
|
+
|
123
|
+
# Build RPM from SRPM
|
124
|
+
Dir.glob("#{tmp_dir}/rubygem-#{@package}-*.el#{el_version}*.src.rpm") do |pkg|
|
125
|
+
sh %Q{mock -r #{mock_root} --rebuild "#{pkg}" --resultdir=#{tmp_dir} --no-cleanup-after}
|
126
|
+
end
|
127
|
+
|
128
|
+
sh %Q{ls -l "#{tmp_dir}"}
|
129
|
+
|
130
|
+
# copy RPM back into pkg/
|
131
|
+
Dir.glob("#{tmp_dir}/rubygem-#{@package}-*.el#{el_version}*.rpm") do |pkg|
|
132
|
+
sh %Q{cp "#{pkg}" "#{@rakefile_dir}/dist/"}
|
133
|
+
FileUtils.cp pkg, "#{@rakefile_dir}/dist/"
|
134
|
+
end
|
135
|
+
ensure
|
136
|
+
Dir.chdir @rakefile_dir
|
137
|
+
# cleanup if needed
|
138
|
+
if ! ENV.fetch( 'SIMP_MOCK_SIMPGEM_ASSETS_DIR', false )
|
139
|
+
FileUtils.remove_entry_secure tmp_dir
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
7
144
|
|
8
|
-
|
145
|
+
# vim: syntax=ruby
|
data/lib/simp/test/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SIMP Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -17,6 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- ".github/workflows.local.json"
|
20
21
|
- ".github/workflows/pr_glci.yml"
|
21
22
|
- ".github/workflows/pr_glci_cleanup.yml"
|
22
23
|
- ".github/workflows/pr_glci_manual.yml"
|