Rakefile in doing-2.1.10 vs Rakefile in doing-2.1.11

- old
+ new

@@ -6,10 +6,11 @@ require 'rake/testtask' require 'open3' require 'yard' require 'parallel_tests' require 'parallel_tests/tasks' +require 'tty-spinner' YARD::Rake::YardocTask.new do |t| t.files = ['lib/doing/*.rb'] t.options = ['--markup-provider=redcarpet', '--markup=markdown', '--no-private', '-p', 'yard_templates'] # t.stats_options = ['--list-undoc'] @@ -36,24 +37,57 @@ # end namespace :test do FileList['test/*_test.rb'].each do |rakefile| - test_name = File.basename(rakefile, '.rb').sub(%r{^.*?_(.*?)_.*?$}, '\1') + test_name = File.basename(rakefile, '.rb').sub(/^.*?_(.*?)_.*?$/, '\1') Rake::TestTask.new(:"#{test_name}") do |t| t.libs << ['test', 'test/helpers'] t.pattern = rakefile t.verbose = ENV['VERBOSE'] =~ /(true|1)/i ? true : false end - #Define default task for :test - task :default => test_name + # Define default task for :test + task default: test_name end +end +desc 'Run tests in Docker' +task :dockertest, :version, :login do |_, args| + args.with_defaults(version: '2.7', login: false) + case args[:version] + when /^3/ + img = 'doingtest3' + file = 'Dockerfile-3.0' + when /6$/ + img = 'doingtest26' + file = 'Dockerfile-2.6' + when /(^2|7$)/ + img = 'doingtest27' + file = 'Dockerfile-2.7' + else + img = 'doingtest' + file = 'Dockerfile' + end + + exec "docker run -it #{img} /bin/bash -l" if args[:login] + + puts `docker build . --file #{file} -t #{img}` + + spinner = TTY::Spinner.new('[:spinner] Running tests ...', hide_cursor: true) + + spinner.auto_spin + res = `docker run --rm -it #{img}` + # commit = puts `bash -c "docker commit $(docker ps -a|grep #{img}|awk '{print $1}'|head -n 1) #{img}"`.strip + spinner.success + spinner.stop + + puts res + # puts commit&.empty? ? "Error commiting Docker tag #{img}" : "Committed Docker tag #{img}" end -desc "Run all tests" -task :test => 'test:default' +desc 'Run all tests' +task test: 'test:default' desc 'Run one test verbosely' task :test_one, :test do |_, args| args.with_defaults(test: '*') puts `bundle exec rake test TESTOPTS="-v" TEST="test/doing_#{args[:test]}_test.rb"`