diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b79ea7d..c5c461c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: ubuntu +name: test on: [push, pull_request] @@ -7,10 +7,15 @@ jobs: name: build (${{ matrix.ruby }} / ${{ matrix.os }}) strategy: matrix: - ruby: [ '3.0', 2.7, 2.6, head ] + ruby: [ '3.0', 2.7, 2.6, 2.5, head ] os: [ ubuntu-latest, macos-latest, windows-latest ] runs-on: ${{ matrix.os }} steps: + - name: git config + run: | + git config --global core.autocrlf false + git config --global core.eol lf + git config --global advice.detachedHead 0 - uses: actions/checkout@master - name: Set up Ruby uses: ruby/setup-ruby@v1 @@ -18,3 +23,17 @@ jobs: ruby-version: ${{ matrix.ruby }} - name: Run test run: rake test + - id: build + run: | + rake build + echo "::set-output name=pkg::${GITHUB_REPOSITORY#*/}-${RUNNING_OS%-*}" + env: + RUNNING_OS: ${{matrix.os}} + if: "matrix.ruby == '3.0'" + shell: bash + - name: Upload package + uses: actions/upload-artifact@v2 + with: + path: pkg/*.gem + name: ${{steps.build.outputs.pkg}} + if: steps.build.outputs.pkg diff --git a/Rakefile b/Rakefile index 8830e05..6eb5091 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,54 @@ require "bundler/gem_tasks" require "rake/testtask" +helper = Bundler::GemHelper.instance + Rake::TestTask.new(:test) do |t| t.test_files = FileList["test/**/test_*.rb"] end task :default => :test + +task "build" => "date_epoch" + +task "date_epoch" do + ENV["SOURCE_DATE_EPOCH"] = IO.popen(%W[git -C #{__dir__} log -1 --format=%ct], &:read).chomp +end + +def helper.update_gemspec + path = "#{__dir__}/#{gemspec.name}.gemspec" + File.open(path, "r+b") do |f| + if (d = f.read).sub!(/^(version\s*=\s*)".*"/) {$1 + gemspec.version.to_s.dump} + f.rewind + f.truncate(0) + f.print(d) + end + end +end + +def helper.commit_bump + sh(%W[git -C #{__dir__} commit -m bump\ up\ to\ #{gemspec.version} + #{gemspec.name}.gemspec]) +end + +def helper.version=(v) + gemspec.version = v + update_gemspec + commit_bump + tag_version +end +major, minor, teeny = helper.gemspec.version.segments + +task "bump:teeny" do + helper.version = Gem::Version.new("#{major}.#{minor}.#{teeny+1}") +end + +task "bump:minor" do + raise "can't bump up minor" +end + +task "bump:major" do + raise "can't bump up major" +end + +task "bump" => "bump:teeny" diff --git a/lib/ruby2_keywords.rb b/lib/ruby2_keywords.rb index 97cd081..7a3f2fa 100644 --- a/lib/ruby2_keywords.rb +++ b/lib/ruby2_keywords.rb @@ -1,5 +1,5 @@ class Module - unless private_method_defined?(:ruby2_keywords, true) + unless private_method_defined?(:ruby2_keywords) private # call-seq: # ruby2_keywords(method_name, ...) diff --git a/ruby2_keywords.gemspec b/ruby2_keywords.gemspec index 5eac57b..8247998 100644 --- a/ruby2_keywords.gemspec +++ b/ruby2_keywords.gemspec @@ -1,4 +1,4 @@ -version = "0.0.3" +version = "0.0.4" abort "Version must not reach 1" if version[/\d+/].to_i >= 1 Gem::Specification.new do |s|