@@ -39,4 +39,55 @@ task :changelog, :since_c, :until_c do |t,args|
3939 end
4040
4141 puts changelog_content
42+ end
43+
44+ desc "Generates travis.yaml"
45+ task :gen_travis do
46+ versions = [ ]
47+
48+ def versions . add ( major :, minor :, include_macos : true )
49+ self << { major : major , minor : [ minor ] , include_macos : include_macos }
50+ end
51+
52+ versions . add major : '3.0' , minor : 1
53+ versions . add major : '2.7' , minor : 3
54+ versions . add major : '2.6' , minor : 7
55+ versions . add major : '2.5' , minor : 9
56+ versions . add major : '2.4' , minor : 10
57+ versions . add major : '2.3' , minor : 8 , include_macos : false
58+ versions . add major : '2.2' , minor : 10 , include_macos : false
59+ versions . add major : '2.1' , minor : 10 , include_macos : false
60+ versions . add major : '2.0' , minor : 0 , include_macos : false
61+ versions . add major : '1.9' , minor : 3 , include_macos : false
62+ versions . add major : '1.8' , minor : 7 , include_macos : false
63+
64+ puts <<EOM
65+ language: ruby
66+ dist: trusty
67+ matrix:
68+ fast_finish: true
69+ include:
70+ EOM
71+
72+ loop do
73+ found_some = false
74+
75+ versions . each do |version |
76+ minor = version [ :minor ] . pop
77+ if minor
78+ found_some = true
79+ full_version = "#{ version [ :major ] } .#{ minor } "
80+ puts <<EOM
81+ - os: linux
82+ rvm: #{ full_version }
83+ EOM
84+ puts <<EOM if version [ :include_macos ]
85+ - os: osx
86+ rvm: #{ full_version }
87+ EOM
88+ end
89+ end
90+
91+ break unless found_some
92+ end
4293end
0 commit comments