simp-rake-helpers 1.0.13 → 1.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +1 -0
- data/.travis.yml +4 -0
- data/Rakefile +15 -6
- data/lib/simp/rake/helpers.rb +1 -1
- data/lib/simp/rake/pkg.rb +14 -12
- data/spec/acceptance/files/testpackage/Rakefile +3 -0
- data/spec/acceptance/files/testpackage/build/testpackage.spec +32 -0
- data/spec/acceptance/mock_tests_spec.rb +42 -0
- data/spec/acceptance/nodesets/default.yml +56 -0
- data/spec/spec_helper_acceptance.rb +13 -0
- metadata +49 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OWJhYmVkZTM0MGM3MjU2ZTgzZTExYzBiZjdiYWViN2VhNGYwMDdjOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzkwYjg2Zjg4NmU1YjdiMzgxZjY5MzNlNDQ0YmNiNmI2Y2ZlNTk5NQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGQ5NTQwYzBlMjg3MzYxYWEwMjQ0NTQ4MjQ4OWI2ZmM2M2ZhMGFjYmFmZjRj
|
10
|
+
YTBlNTdkYWNjYjNiNzgxNzQzMWI2MmYxZDRhODQyZmMwYTI0NTAzMmU4YzJi
|
11
|
+
ZWM4ZmQyYTc0ZjIxZmE0NTFmZGM0NmNjNzMwMDQ4ZjcxNzY2ZTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjE1MDVlMGZkZDNjNWQzMDAxZjY4MjQyZDU5M2ViZGE0OWYyODcyYjg3NzY1
|
14
|
+
MDljNjU2ZmI2M2FmNmVhNmFkOGZlZGMwYmZhN2Y2ZjkyZmVlOGRlOWM1ZDEz
|
15
|
+
NDAzMDJkMzA3MTBhZWY2MmRiZWFlNmEyOGI1M2NmYzgwNDY5OTU=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Rakefile
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require "rubygems"
|
4
4
|
require 'rake/clean'
|
5
5
|
require 'find'
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
|
6
8
|
|
7
9
|
@package='simp-rake-helpers'
|
8
10
|
@rakefile_dir=File.dirname(__FILE__)
|
@@ -10,6 +12,7 @@ require 'find'
|
|
10
12
|
CLEAN.include "#{@package}-*.gem"
|
11
13
|
CLEAN.include 'pkg'
|
12
14
|
CLEAN.include 'dist'
|
15
|
+
CLEAN.include 'spec/acceptance/files/testpackage/dist'
|
13
16
|
Find.find( @rakefile_dir ) do |path|
|
14
17
|
if File.directory? path
|
15
18
|
CLEAN.include path if File.basename(path) == 'tmp'
|
@@ -27,12 +30,6 @@ task :chmod do
|
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
|
-
desc 'run all RSpec tests'
|
31
|
-
task :spec do
|
32
|
-
Dir.chdir @rakefile_dir
|
33
|
-
sh 'bundle exec rspec spec'
|
34
|
-
end
|
35
|
-
|
36
33
|
namespace :pkg do
|
37
34
|
desc "build rubygem package for #{@package}"
|
38
35
|
task :gem => :chmod do
|
@@ -53,4 +50,16 @@ namespace :pkg do
|
|
53
50
|
end
|
54
51
|
end
|
55
52
|
end
|
53
|
+
|
54
|
+
desc "Run acceptance tests"
|
55
|
+
RSpec::Core::RakeTask.new(:acceptance) do |t|
|
56
|
+
t.pattern = 'spec/acceptance'
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Run spec tests"
|
60
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
61
|
+
t.rspec_opts = ['--color']
|
62
|
+
t.pattern = 'spec/lib/simp/**/*_spec.rb'
|
63
|
+
end
|
64
|
+
|
56
65
|
# vim: syntax=ruby
|
data/lib/simp/rake/helpers.rb
CHANGED
data/lib/simp/rake/pkg.rb
CHANGED
@@ -30,12 +30,14 @@ module Simp::Rake
|
|
30
30
|
# array of items to additionally clean
|
31
31
|
attr_accessor :clean_list
|
32
32
|
|
33
|
-
#
|
34
|
-
attr_accessor :
|
33
|
+
# directory that contains all the mock chroots
|
34
|
+
attr_accessor :mock_root_dir
|
35
35
|
|
36
36
|
# array of items to ignore when checking if the tarball needs to be rebuilt
|
37
37
|
attr_accessor :ignore_changes_list
|
38
38
|
|
39
|
+
attr_reader :spec_info
|
40
|
+
|
39
41
|
def initialize( base_dir, unique_name=nil )
|
40
42
|
@base_dir = base_dir
|
41
43
|
@pkg_name = File.basename(@base_dir)
|
@@ -45,6 +47,7 @@ module Simp::Rake
|
|
45
47
|
@clean_list = []
|
46
48
|
@ignore_changes_list = []
|
47
49
|
@chroot_name = unique_name
|
50
|
+
@mock_root_dir = ENV.fetch('SIMP_BUILD_MOCK_root','/var/lib/mock')
|
48
51
|
|
49
52
|
::CLEAN.include( @pkg_dir )
|
50
53
|
|
@@ -80,9 +83,9 @@ module Simp::Rake
|
|
80
83
|
|
81
84
|
# This gets the resting spec file and allows us to pull out the name
|
82
85
|
@spec_info = Simp::RPM.get_info( spec_file )
|
83
|
-
@chroot_name = @chroot_name || "#{@spec_info[:name]}__#{ENV.fetch( 'USER', 'USER' )}"
|
84
86
|
|
85
87
|
if chroot
|
88
|
+
@chroot_name = @chroot_name || "#{@spec_info[:name]}__#{ENV.fetch( 'USER', 'USER' )}"
|
86
89
|
mock_cmd = mock_pre_check( chroot, @chroot_name, unique ) + " --root #{chroot}"
|
87
90
|
|
88
91
|
sh %Q(#{mock_cmd} --copyin #{spec_file} /tmp)
|
@@ -279,6 +282,12 @@ module Simp::Rake
|
|
279
282
|
end
|
280
283
|
end
|
281
284
|
end
|
285
|
+
|
286
|
+
# remote chroot unless told not to (saves LOTS of space during ISO builds)
|
287
|
+
unless ENV['SIMP_RAKE_MOCK_cleanup'] == 'no'
|
288
|
+
cmd = %Q(#{mock_cmd} --root #{args.chroot} --clean)
|
289
|
+
sh cmd
|
290
|
+
end
|
282
291
|
end
|
283
292
|
end
|
284
293
|
end
|
@@ -326,6 +335,7 @@ module Simp::Rake
|
|
326
335
|
require_rebuild
|
327
336
|
end
|
328
337
|
|
338
|
+
|
329
339
|
# Run some pre-checks to make sure that mock will work properly.
|
330
340
|
#
|
331
341
|
# chroot = name of mock chroot to use
|
@@ -338,7 +348,7 @@ module Simp::Rake
|
|
338
348
|
raise %Q(unique_ext must be a String ("#{unique_ext}" = #{unique_ext.class})) unless unique_ext.is_a? String
|
339
349
|
|
340
350
|
mock = ENV['mock'] || '/usr/bin/mock'
|
341
|
-
raise(Exception,"Could not find mock on your system, exiting") unless File.executable?(
|
351
|
+
raise(Exception,"Could not find mock on your system, exiting") unless File.executable?(mock)
|
342
352
|
|
343
353
|
mock_configs = Pkg.get_mock_configs
|
344
354
|
unless chroot
|
@@ -393,13 +403,5 @@ module Simp::Rake
|
|
393
403
|
# A simple test to see if the chroot is initialized.
|
394
404
|
initialized
|
395
405
|
end
|
396
|
-
|
397
|
-
def pry
|
398
|
-
#FIXME: remove this debugging nonsense before release
|
399
|
-
if Rake::verbose.is_a? TrueClass
|
400
|
-
require 'pry'
|
401
|
-
binding.pry
|
402
|
-
end
|
403
|
-
end
|
404
406
|
end
|
405
407
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
Name: testpackage
|
2
|
+
Version: 1
|
3
|
+
Release: 0
|
4
|
+
Summary: dummy test package
|
5
|
+
BuildArch: noarch
|
6
|
+
|
7
|
+
License: Apache-2.0
|
8
|
+
URL: http://foo.bar
|
9
|
+
|
10
|
+
%description
|
11
|
+
A dummy package used to test Simp::RPM methods
|
12
|
+
|
13
|
+
%prep
|
14
|
+
exit 0
|
15
|
+
|
16
|
+
%build
|
17
|
+
exit 0
|
18
|
+
|
19
|
+
|
20
|
+
%install
|
21
|
+
exit 0
|
22
|
+
|
23
|
+
%clean
|
24
|
+
exit 0
|
25
|
+
|
26
|
+
%files
|
27
|
+
%doc
|
28
|
+
|
29
|
+
|
30
|
+
%changelog
|
31
|
+
* Wed Jun 10 2015 nobody
|
32
|
+
- some comment
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper_acceptance'
|
2
|
+
|
3
|
+
|
4
|
+
describe 'rake pkg:rpm[epel-6-x86_64,true]' do
|
5
|
+
before :all do
|
6
|
+
on 'container', 'bash --login -c "cd /host_files/spec/acceptance/files/testpackage; \
|
7
|
+
gem install bundler; \
|
8
|
+
bundle"'
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'with SIMP_RAKE_MOCK_cleanup=no' do
|
12
|
+
before :each do
|
13
|
+
on 'container', 'mkdir -p -m 0755 /var/lib/mock'
|
14
|
+
on 'container', 'rm -rf /var/lib/mock/* /host_files/spec/acceptance/files/testpackage/dist',
|
15
|
+
:accept_all_exit_codes => true
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should create an RPM and leave the mock directory' do
|
19
|
+
|
20
|
+
test_name 'runs SIMP_RAKE_MOCK_cleanup=no pkg:rpm[epel-6-x86_64,true]'
|
21
|
+
on 'container', 'SIMP_RAKE_MOCK_cleanup=no bash --login -c "cd /host_files/spec/acceptance/files/testpackage; bundle exec rake pkg:rpm[epel-6-x86_64,true]"'
|
22
|
+
|
23
|
+
test_name 'produces RPM'
|
24
|
+
on 'container', 'test -f /host_files/spec/acceptance/files/testpackage/dist/testpackage-1-0.noarch.rpm'
|
25
|
+
|
26
|
+
test_name 'keeps mock chroot when SIMP_RAKE_MOCK_cleanup=no'
|
27
|
+
on 'container', 'test -d /var/lib/mock/epel-6-x86_64-testpackage__$USER'
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should create an RPM and leave the mock directory' do
|
31
|
+
|
32
|
+
test_name 'runs pkg:rpm'
|
33
|
+
on 'container', 'SIMP_RAKE_MOCK_cleanup=yes bash --login -c "cd /host_files/spec/acceptance/files/testpackage; bundle exec rake pkg:rpm[epel-6-x86_64,true]"'
|
34
|
+
|
35
|
+
test_name 'produces RPM'
|
36
|
+
on 'container', 'test -f /host_files/spec/acceptance/files/testpackage/dist/testpackage-1-0.noarch.rpm'
|
37
|
+
|
38
|
+
test_name 'deletes mock chroot when SIMP_RAKE_MOCK_cleanup=yes'
|
39
|
+
on 'container', 'test -d /var/lib/mock/epel-6-x86_64-testpackage__$USER', {:acceptable_exit_codes => [1]}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
HOSTS:
|
2
|
+
container:
|
3
|
+
roles:
|
4
|
+
- default
|
5
|
+
- master
|
6
|
+
- agent
|
7
|
+
platform: el-6-x86_64
|
8
|
+
hypervisor: docker
|
9
|
+
image: 'centos:centos6.7'
|
10
|
+
docker_image_commands:
|
11
|
+
- "echo 'Defaults !requiretty' >> /etc/sudoers"
|
12
|
+
- 'yum install -y epel-release'
|
13
|
+
# simp build-deps
|
14
|
+
- 'yum install -y rpm-build augeas-devel createrepo genisoimage git gnupg2 libicu-devel libxml2 libxml2-devel libxslt libxslt-devel mock rpmdevtools clamav which'
|
15
|
+
# rvm build-deps
|
16
|
+
- 'yum install -y libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel'
|
17
|
+
- 'gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3'
|
18
|
+
- 'echo export rvm_prefix="\$HOME" > /root/.rvmrc && echo export rvm_path="\$HOME/.rvm" >> /root/.rvmrc'
|
19
|
+
- '\curl -sSL https://get.rvm.io | bash -s stable --ruby=1.9.3'
|
20
|
+
- 'source ~/.rvm/scripts/rvm'
|
21
|
+
# NOTE: the './' syntax requires BKR-704
|
22
|
+
mount_folders:
|
23
|
+
folder1:
|
24
|
+
# must be an absolute path, seemingly
|
25
|
+
host_path: ./
|
26
|
+
container_path: /host_files
|
27
|
+
docker_preserve_image: true
|
28
|
+
CONFIG:
|
29
|
+
log_level: verbose
|
30
|
+
type: foss
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
# - 'sed -i "s/UsePAM.*/UsePAM yes/g" /etc/ssh/sshd_config'
|
53
|
+
# - 'sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config'
|
54
|
+
# - "ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''"
|
55
|
+
# - "ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''"
|
56
|
+
#docker_cmd: '["/usr/sbin/sshd -e"]'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'beaker-rspec'
|
2
|
+
require 'tmpdir'
|
3
|
+
###require 'simp/beaker_helpers'
|
4
|
+
###include Simp::BeakerHelpers
|
5
|
+
|
6
|
+
RSpec.configure do |c|
|
7
|
+
# Readable test descriptions
|
8
|
+
c.formatter = :documentation
|
9
|
+
|
10
|
+
# Configure all nodes in nodeset
|
11
|
+
c.before :suite do
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-rake-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tessmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -227,6 +227,48 @@ dependencies:
|
|
227
227
|
- - ~>
|
228
228
|
- !ruby/object:Gem::Version
|
229
229
|
version: '4'
|
230
|
+
- !ruby/object:Gem::Dependency
|
231
|
+
name: beaker
|
232
|
+
requirement: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ~>
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '2'
|
237
|
+
type: :development
|
238
|
+
prerelease: false
|
239
|
+
version_requirements: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ~>
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '2'
|
244
|
+
- !ruby/object:Gem::Dependency
|
245
|
+
name: beaker-rspec
|
246
|
+
requirement: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ~>
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '5'
|
251
|
+
type: :development
|
252
|
+
prerelease: false
|
253
|
+
version_requirements: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ~>
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '5'
|
258
|
+
- !ruby/object:Gem::Dependency
|
259
|
+
name: rspec-core
|
260
|
+
requirement: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ~>
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '3'
|
265
|
+
type: :development
|
266
|
+
prerelease: false
|
267
|
+
version_requirements: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ~>
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '3'
|
230
272
|
description: ! ' "simp-rake-helpers provides common methods for SIMP Rake Tasks"
|
231
273
|
|
232
274
|
'
|
@@ -250,6 +292,10 @@ files:
|
|
250
292
|
- lib/simp/rake/helpers.rb
|
251
293
|
- lib/simp/rake/pkg.rb
|
252
294
|
- lib/simp/rpm.rb
|
295
|
+
- spec/acceptance/files/testpackage/Rakefile
|
296
|
+
- spec/acceptance/files/testpackage/build/testpackage.spec
|
297
|
+
- spec/acceptance/mock_tests_spec.rb
|
298
|
+
- spec/acceptance/nodesets/default.yml
|
253
299
|
- spec/lib/simp/files/build/testpackage.spec
|
254
300
|
- spec/lib/simp/files/testpackage-1-0.noarch.rpm
|
255
301
|
- spec/lib/simp/files/testpackage-multi.spec
|
@@ -259,6 +305,7 @@ files:
|
|
259
305
|
- spec/lib/simp/rake_spec.rb
|
260
306
|
- spec/lib/simp/rpm_spec.rb
|
261
307
|
- spec/spec_helper.rb
|
308
|
+
- spec/spec_helper_acceptance.rb
|
262
309
|
homepage: https://github.com/simp/rubygem-simp-rake-helpers
|
263
310
|
licenses:
|
264
311
|
- Apache-2.0
|