synchronised_migration 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9881480f34d86d8a177756df3a12e3ec54d1f6b9cfa80d2847084101749bca5a
4
- data.tar.gz: e79ad9a4ceddcd69a1936789d485c50daa3bbdc95ef74f2052eac8aef08d65b2
3
+ metadata.gz: 178cde6a23ffc12e5074df16e0c8b2f5503ce460727607fc3af824c98a92bce1
4
+ data.tar.gz: 0e3ebd525d0e55ffeabe3565f811ed3ff57ea272d042a3b72386ae6a627ba03c
5
5
  SHA512:
6
- metadata.gz: b921a8a53758ec6a7654c3decd2b86b2e60baf58336ce31a1eaded4cf7a266ad35e1603c2bc81547b94fc4617f7e5175e5bae7e052013c68004c410d6f410263
7
- data.tar.gz: 2f934aebd9d2c5978fe368be30e606622861480ed2fd61d1a422c70d33ad8a391b7d19802743c29c3e16cff9e61972bc80051a3a460928d0f195169ce0c8d0de
6
+ metadata.gz: bc7a499baac225c7f3e11467f84c44eae41a2af3ef6c016b3a8b674fdd177c53930efb86ec5951da2ce5b220fb697ff87faa62ba557a3de14767293a10a71371
7
+ data.tar.gz: 6d07aad5e40d68ac72c240f39875e2686416c1d2c38e1fb7555fe18626a47dbdc510116d51e6c19776ed5c22a3ef4e3bcc77b20b5c3672ed94098768dffdd35c
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
@@ -0,0 +1,59 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build:
10
+ name: Build
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v2
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ bundler-cache: true
18
+ - run: bundle exec rake
19
+
20
+ release:
21
+ needs: build
22
+ name: Release
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - name: Checkout
26
+ uses: actions/checkout@v2
27
+
28
+ - name: Generate Changelog
29
+ run: |
30
+ # Get version from github ref (remove 'refs/tags/' and prefix 'v')
31
+ version="${GITHUB_REF#refs/tags/v}"
32
+ npx changelog-parser CHANGELOG.md | jq -cr ".versions | .[] | select(.version == \"$version\") | .body" > ${{ github.workflow }}-CHANGELOG.txt
33
+
34
+ - name: Release
35
+ uses: softprops/action-gh-release@v1
36
+ with:
37
+ body_path: ${{ github.workflow }}-CHANGELOG.txt
38
+ env:
39
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40
+
41
+ publish:
42
+ needs: [build, release]
43
+ name: Publish
44
+ runs-on: ubuntu-latest
45
+
46
+ steps:
47
+ - uses: actions/checkout@v2
48
+ - uses: ruby/setup-ruby@v1
49
+
50
+ - name: Publish to RubyGems
51
+ run: |
52
+ mkdir -p $HOME/.gem
53
+ touch $HOME/.gem/credentials
54
+ chmod 0600 $HOME/.gem/credentials
55
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
56
+ gem build *.gemspec
57
+ gem push *.gem
58
+ env:
59
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,16 @@
1
+ name: Build and Test
2
+ on: [push, pull_request]
3
+ jobs:
4
+ test:
5
+ strategy:
6
+ fail-fast: false
7
+ matrix:
8
+ ruby: ["2.6", "2.7", "3.0"]
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: ${{ matrix.ruby }}
15
+ bundler-cache: true
16
+ - run: bundle exec rake
@@ -1 +1 @@
1
- 2.6.3
1
+ 3.0.0
@@ -1,5 +1,9 @@
1
1
  # Synchronised Migration
2
2
 
3
+ ## 2.2.0
4
+
5
+ - [TT-8617] Update to build with github actions / ruby 3.0
6
+
3
7
  ## 2.1.2
4
8
 
5
9
  * [TT-7511] Use the correct `ex` option for key value expiry times instead of `ttl`
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Synchronised Migration
2
2
 
3
- [![Build Status](https://travis-ci.org/sealink/synchronised-migration-rb.svg?branch=master)](https://travis-ci.org/sealink/synchronised-migration-rb)
3
+ [![Gem Version](https://badge.fury.io/rb/synchronised_migration.svg)](http://badge.fury.io/rb/synchronised_migration)
4
+ [![Build Status](https://github.com/sealink/synchronised-migration-rb/workflows/Build%20and%20Test/badge.svg?branch=master)](https://github.com/sealink/synchronised-migration-rb/actions)
4
5
 
5
6
  This gem makes it possible to deploy multiple instances with data migration
6
7
  simultaneously. It uses Redis to ensure that there will be only one migration
@@ -17,7 +18,7 @@ Docker](https://github.com/sealink/craft-docker) project.
17
18
 
18
19
  Module `SynchronisedMigration` needs to be configured as below.
19
20
 
20
- ```
21
+ ```ruby
21
22
  SynchronisedMigration.configure do |config|
22
23
  config.host = 'example.com'
23
24
  config.port = 6379
@@ -45,6 +46,14 @@ Run this before you launch the application during deployment.
45
46
  $ rake synchronised_migrate:execute
46
47
  ```
47
48
 
48
- ## Testing
49
+ ## Release
50
+
51
+ To publish a new version of this gem the following steps must be taken.
49
52
 
50
- Please refer to `.travis.yml` for testing.
53
+ * Update the version in the following files
54
+ ```
55
+ CHANGELOG.md
56
+ lib/synchronised_migration/version.rb
57
+ ````
58
+ * Create a tag using the format v0.1.0
59
+ * Follow build progress in GitHub actions
data/Rakefile CHANGED
@@ -1,2 +1,12 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ desc 'Default: run specs.'
4
+ task :default => :spec
5
+
2
6
  require 'rspec/core/rake_task'
7
+
8
+ desc "Run specs"
9
+ RSpec::Core::RakeTask.new do |t|
10
+ t.pattern = "./spec/**/*_spec.rb" # don't need this, it's default.
11
+ # Put spec opts in a file named .rspec in root
12
+ end
@@ -1,3 +1,3 @@
1
1
  module SynchronisedMigration
2
- VERSION = '2.1.2'
2
+ VERSION = '2.2.0'
3
3
  end
@@ -122,11 +122,10 @@ describe SynchronisedMigration::Main do
122
122
  end
123
123
 
124
124
  context 'when the task crashed' do
125
- before do
126
- allow_any_instance_of(Process::Status).to receive(:success?).and_return(false)
127
- end
128
-
129
125
  it 'marks the failure in Redis' do
126
+ fork { exit 1 }
127
+ Process.wait
128
+
130
129
  expect(result).not_to be_success
131
130
  expect(redis).to have_received(:set).with('migration-failed-bork', 123456789, ex: 3600)
132
131
  expect(redis).not_to have_received(:del)
@@ -138,6 +137,9 @@ describe SynchronisedMigration::Main do
138
137
 
139
138
  context 'in the happy path' do
140
139
  it 'executes the migration successfully' do
140
+ fork { exit 0 }
141
+ Process.wait
142
+
141
143
  expect(result).to be_success
142
144
  expect(redlock).to have_received(:lock!)
143
145
  expect(redis).to have_received(:get).with('migration-failed')
@@ -149,11 +151,10 @@ describe SynchronisedMigration::Main do
149
151
  end
150
152
 
151
153
  context 'when the task crashed' do
152
- before do
153
- allow_any_instance_of(Process::Status).to receive(:success?).and_return(false)
154
- end
155
-
156
154
  it 'marks the failure in Redis' do
155
+ fork { exit 1 }
156
+ Process.wait
157
+
157
158
  expect(result).not_to be_success
158
159
  expect(redis).to have_received(:set).with('migration-failed', 123456789, ex: 3600)
159
160
  expect(redis).not_to have_received(:del)
@@ -15,6 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
+ spec.required_ruby_version = '>= 2.6.0'
18
19
 
19
20
  spec.add_dependency 'redlock', '>= 0.2'
20
21
  spec.add_dependency 'redis'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synchronised_migration
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alvin Yim
8
8
  - Stefan Cooper
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-06-25 00:00:00.000000000 Z
12
+ date: 2021-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redlock
@@ -101,9 +101,11 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - ".github/dependabot.yml"
105
+ - ".github/workflows/release.yml"
106
+ - ".github/workflows/ruby.yml"
104
107
  - ".gitignore"
105
108
  - ".ruby-version"
106
- - ".travis.yml"
107
109
  - CHANGELOG.md
108
110
  - Gemfile
109
111
  - LICENSE
@@ -121,7 +123,7 @@ files:
121
123
  homepage: https://github.com/sealink/synchronised-migration-rb
122
124
  licenses: []
123
125
  metadata: {}
124
- post_install_message:
126
+ post_install_message:
125
127
  rdoc_options: []
126
128
  require_paths:
127
129
  - lib
@@ -129,15 +131,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
131
  requirements:
130
132
  - - ">="
131
133
  - !ruby/object:Gem::Version
132
- version: '0'
134
+ version: 2.6.0
133
135
  required_rubygems_version: !ruby/object:Gem::Requirement
134
136
  requirements:
135
137
  - - ">="
136
138
  - !ruby/object:Gem::Version
137
139
  version: '0'
138
140
  requirements: []
139
- rubygems_version: 3.0.3
140
- signing_key:
141
+ rubygems_version: 3.2.3
142
+ signing_key:
141
143
  specification_version: 4
142
144
  summary: For deploying to multiple instances simultaneously
143
145
  test_files:
@@ -1,10 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.4
4
- - 2.5
5
- - 2.6
6
- script: bundle exec rspec
7
- sudo: false
8
- cache: bundler
9
- before_install:
10
- - gem install bundler