diff --git a/.github/workflows/build_release_pipeline.yaml b/.github/workflows/build_release_pipeline.yaml new file mode 100644 index 00000000..95eca532 --- /dev/null +++ b/.github/workflows/build_release_pipeline.yaml @@ -0,0 +1,49 @@ +name: Build and release ruby gem + +on: + pull_request: + branches: [ v1.8.x ] + push: + workflow_dispatch: + +jobs: + build-release-pipeline: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7.2 + rubygems: 3.1.4 + bundler-cache: true + + - name: Build + id: build + if: success() + run: | + gem build memcached.gemspec + echo "::set-output name=gem_version::v$(bundle exec rake version)" + + - name: Release + if: success() && github.ref == 'refs/heads/v1.8.x' + run: | + mkdir -p $HOME/.gem + touch $HOME/.gem/credentials + chmod 600 $HOME/.gem/credentials + printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials + gem push vinted-memcached-*.gem -V + env: + GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_AUTH_TOKEN }}" + + - name: Tag repo with new gem version + if: success() && github.ref == 'refs/heads/v1.8.x' + uses: actions/github-script@v3 + with: + github-token: ${{ github.token }} + script: | + github.git.createRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: "refs/tags/${{ steps.build.outputs.gem_version }}", + sha: context.sha + }) diff --git a/.ruby-version b/.ruby-version index 7fa1d1ef..37c2961c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.0.0-p353 +2.7.2 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f85ba740..00000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -bundler_args: --without benchmark -language: ruby -services: memcached -rvm: - - 1.8.7 - - 1.9.3 - - 2.0.0 - - 2.1.0 - - 2.1.1 - - rbx-19mode -matrix: - allow_failures: - - rvm: rbx-19mode \ No newline at end of file diff --git a/Gemfile b/Gemfile index 5963588f..c43f8461 100644 --- a/Gemfile +++ b/Gemfile @@ -2,10 +2,3 @@ source 'https://rubygems.org' gemspec gem 'echoe', '>= 4.6.5' - -group :benchmark do - gem "remix-stash", '~> 1.1.3' - gem "dalli", '~> 2.6.4' - gem "memcache", '= 1.4.1' - gem "memcache-client", '~> 1.8.5' -end diff --git a/Gemfile.lock b/Gemfile.lock index 8d009c00..f42f528a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,45 +1,50 @@ PATH remote: . specs: - memcached (1.8.0) + vinted-memcached (1.8.0) GEM remote: https://rubygems.org/ specs: - activesupport (3.2.6) - i18n (~> 0.6) - multi_json (~> 1.0) + activesupport (7.0.7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) allison (2.0.3) - dalli (2.6.4) - echoe (4.6.5) + concurrent-ruby (1.2.2) + echoe (4.6.6) allison (>= 2.0.3) rake (>= 0.9.2) rdoc (>= 2.5.11) rubyforge (>= 2.0.4) - i18n (0.6.0) - json_pure (1.8.1) - memcache (1.4.1) - memcache-client (1.8.5) - metaclass (0.0.4) - mocha (1.0.0) - metaclass (~> 0.0.1) - multi_json (1.3.6) - rake (0.9.2.2) - rdoc (4.1.0) - remix-stash (1.1.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + json_pure (2.6.3) + minitest (5.19.0) + mocha (2.1.0) + ruby2_keywords (>= 0.0.5) + psych (5.1.0) + stringio + rake (13.0.6) + rdoc (6.5.0) + psych (>= 4.0.0) + ruby2_keywords (0.0.5) rubyforge (2.0.4) json_pure (>= 1.1.7) + stringio (3.0.8) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) PLATFORMS ruby DEPENDENCIES activesupport - dalli (~> 2.6.4) echoe (>= 4.6.5) - memcache (= 1.4.1) - memcache-client (~> 1.8.5) - memcached! mocha rake - remix-stash (~> 1.1.3) + vinted-memcached! + +BUNDLED WITH + 2.3.26 diff --git a/Manifest b/Manifest index 6168ac1d..fd34ebb8 100644 --- a/Manifest +++ b/Manifest @@ -193,8 +193,8 @@ lib/memcached/experimental.rb lib/memcached/marshal_codec.rb lib/memcached/memcached.rb lib/memcached/rails.rb +lib/memcached/version.rb memcached.gemspec -memcached.pem test/profile/benchmark.rb test/profile/c_profiler.rb test/profile/exercise.rb diff --git a/Rakefile b/Rakefile index 5f68dea1..bcfbb026 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,5 @@ require 'echoe' -ENV["GEM_CERTIFICATE_CHAIN"]="memcached.pem" - Echoe.new("memcached") do |p| p.author = "Evan Weaver" p.project = "evan" @@ -132,3 +130,8 @@ def run(cmd, reason) puts cmd raise "'#{cmd}' failed" unless system(cmd) end + +task :version do |t| + require 'memcached/version' + puts Memcached::VERSION +end diff --git a/lib/memcached.rb b/lib/memcached.rb index c54ca779..72807127 100644 --- a/lib/memcached.rb +++ b/lib/memcached.rb @@ -21,7 +21,6 @@ module Rlibmemcached class Memcached Lib = Rlibmemcached raise "libmemcached 0.32 required; you somehow linked to #{Lib.memcached_lib_version}." unless "0.32" == Lib.memcached_lib_version - VERSION = File.read("#{File.dirname(__FILE__)}/../CHANGELOG")[/v([\d\.]+)\./, 1] end require 'memcached/exceptions' @@ -31,3 +30,4 @@ class Memcached require 'memcached/memcached' require 'memcached/rails' require 'memcached/experimental' +require 'memcached/version' diff --git a/lib/memcached/version.rb b/lib/memcached/version.rb new file mode 100644 index 00000000..d558b812 --- /dev/null +++ b/lib/memcached/version.rb @@ -0,0 +1,3 @@ +class Memcached + VERSION = '1.8.0' +end diff --git a/memcached.gemspec b/memcached.gemspec index 2eacca99..83b01910 100644 Binary files a/memcached.gemspec and b/memcached.gemspec differ diff --git a/memcached.pem b/memcached.pem deleted file mode 100644 index 577a4c8e..00000000 --- a/memcached.pem +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA9MQ0wCwYDVQQDDARldmFu -MRgwFgYKCZImiZPyLGQBGRYIY2xvdWRidXIxEjAQBgoJkiaJk/IsZAEZFgJzdDAe -Fw0xMzExMDQyMDI1MDVaFw0xNDExMDQyMDI1MDVaMD0xDTALBgNVBAMMBGV2YW4x -GDAWBgoJkiaJk/IsZAEZFghjbG91ZGJ1cjESMBAGCgmSJomT8ixkARkWAnN0MIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuG4q2IdTtlc7/IJkWPnbOAFt -ysKc3XmLHsjeSXXSPdQ1mb2cDXvyDS8TkzjrgDoJ96RR2xrh7bfkHAMJhSVMhsPM -rnYS7fDs//X1h6fRYBjjhqGeQhCL1xrS5/I4vKb7AjgFnuUbMZ/H0+ic2Ic2zTnZ -jttSQZ/QOlYyctrYoTzAFdPwL+dOxskOyAmAbtV/pV3owcXpChRT/tphC7u69sOk -+IjWsMwrBCbEdj/Jmh4a52QntAwPWx4Krt0zm8eV3/UjSObB3BR1pZ/i5IsSLPs1 -lwMA6ywbfxBTP59XcgAyhfV3rRQXb+vjpf7OLuOCJOUIN8GEwb5HNjFo/UVdiwID -AQABo3MwcTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUbTCqyydn -0Rm6nngf15KtCEMc37swGwYDVR0RBBQwEoEQZXZhbkBjbG91ZGJ1ci5zdDAbBgNV -HRIEFDASgRBldmFuQGNsb3VkYnVyLnN0MA0GCSqGSIb3DQEBBQUAA4IBAQBggGGb -0AoyF0QofzkPImuhN1UF6eG/RdYOHqiUovuRN/9IblyKAaZAIl1mIspfCav8EVwo -SC6vz4OaIVpS7QdI04oLNHxhmC6C5TTBONtddDl93M+9uWVipD5uVPktcHWG+bKn -2L1lUykQXr8ra45TqAUZ/P+Yv76U8kUsVG2HE5gl/CgB5+V1qkpn5M4CADsvSvPA -qEATZvw+KUzzMCUiVzq+T6lDrrCt+sD3NZlvG4BD2PpQuPtDf1i61DUc+5s2Nwm2 -t4uqNF7swBWS0n40/hmn5u8pT2JVsuwam79GGhJmNfCdPCcCbgphroexRcrwdURX -ly00Xdf1gDVBxRoR ------END CERTIFICATE-----