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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NGQ2NWYwNDBiMTViOTk4NDQyNGQ5ZTMwNDk3ZDYwMWUzNWU1OGMxZA==
4
+ OWJhYmVkZTM0MGM3MjU2ZTgzZTExYzBiZjdiYWViN2VhNGYwMDdjOQ==
5
5
  data.tar.gz: !binary |-
6
- ODkzYzlhOWRjNDc4MjMxMDJjZWUzMWZmMTgxOWNhODM3MjgwMzAyMA==
6
+ MzkwYjg2Zjg4NmU1YjdiMzgxZjY5MzNlNDQ0YmNiNmI2Y2ZlNTk5NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTBiYWY0OTBiODcyZjg5Yjk4YjNkNWI5OTc4Yzc0ODE5ODAwYjk5M2I3ZWE1
10
- ODMzMTc1MGU0NGIyNGI4ZjQ3ZWFjMTA4OWZiMmNiYjcyNGExYTQwMjk3Y2Ey
11
- MGJlZGVkYzYzOTRhMjM3NmUxNmJkZjExYzY0YjBkNjc1MjdkYmM=
9
+ ZGQ5NTQwYzBlMjg3MzYxYWEwMjQ0NTQ4MjQ4OWI2ZmM2M2ZhMGFjYmFmZjRj
10
+ YTBlNTdkYWNjYjNiNzgxNzQzMWI2MmYxZDRhODQyZmMwYTI0NTAzMmU4YzJi
11
+ ZWM4ZmQyYTc0ZjIxZmE0NTFmZGM0NmNjNzMwMDQ4ZjcxNzY2ZTM=
12
12
  data.tar.gz: !binary |-
13
- Y2EwMTI1NWE1ZjVjZTU4ODkyYjAzMDA1ZTFlZWVlN2FhNTE1ZDc3OGYwODBm
14
- OTRhOTFiMGUyMmNjOGY0M2VhNTNkYTU3MmUxNmNhNTA0OTBiODhlNmUwZDU5
15
- MDQ5Nzg3NjJhN2Q4OTI5ZTA3ZDIxMTk1ZTdiNDEzMTJiYTk1NjY=
13
+ MjE1MDVlMGZkZDNjNWQzMDAxZjY4MjQyZDU5M2ViZGE0OWYyODcyYjg3NzY1
14
+ MDljNjU2ZmI2M2FmNmVhNmFkOGZlZGMwYmZhN2Y2ZjkyZmVlOGRlOWM1ZDEz
15
+ NDAzMDJkMzA3MTBhZWY2MmRiZWFlNmEyOGI1M2NmYzgwNDY5OTU=
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  *.sw[pnoqst]
2
2
  Gemfile.lock
3
3
  dist/
4
+ /log/
data/.travis.yml CHANGED
@@ -1,5 +1,9 @@
1
1
  ---
2
2
  language: ruby
3
+ sudo: required
4
+ before_install:
5
+ - sudo apt-get update -qq
6
+ - sudo apt-get install -y rpm
3
7
  rvm:
4
8
  - 1.9.3
5
9
  - 2.0.0
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
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '1.0.13'
5
+ VERSION = '1.0.14'
6
6
  end
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 :unique_name
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?('/usr/bin/mock')
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,3 @@
1
+ require 'simp/rake/pkg'
2
+
3
+ Simp::Rake::Pkg.new( File.dirname( __FILE__ ) )
@@ -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.13
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-10 00:00:00.000000000 Z
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