Publish gems via CI on tagged builds of master

This commit is contained in:
domaindrivendev 2017-06-29 16:35:10 -07:00
parent 521ab14eaf
commit 3404fa72aa
18 changed files with 80 additions and 309 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
**/*/*.sqlite3 **/*/*.sqlite3
**/*/public/assets **/*/public/assets
*.swp *.swp
Gemfile.lock

View File

@ -1,15 +1,64 @@
nguage: ruby language: ruby
rvm: rvm:
- 2.2.5 - 2.2.5
env: env:
- "RAILS_VERSION=3.2.22" - RAILS_VERSION=5.1.2
- "RAILS_VERSION=4.2.0" - RAILS_VERSION=4.2.0
- "RAILS_VERSION=5.0.0" - RAILS_VERSION=3.2.22
- "RAILS_VERSION=5.1.1"
cache: bundler cache:
install: bundle update directories:
- /home/travis/.rvm/gems/ruby-2.2.5
install: bundle install
before_script: before_script:
- "export DISPLAY=:99.0" - export DISPLAY=:99.0
- "sh -e /etc/init.d/xvfb start" - sh -e /etc/init.d/xvfb start
- sleep 3 # give xvfb some time to start - sleep 3
script: ./ci/test.sh script: ./ci/test.sh
jobs:
include:
- stage: publish components
script: 'cd rswag-api'
deploy:
gemspec: rswag-api.gemspec
provider: rubygems
api_key: $RUBYGEMS_API_KEY
on:
branch: master
tags: true
- stage: publish components
script: 'cd rswag-specs'
deploy:
gemspec: rswag-specs.gemspec
provider: rubygems
api_key: $RUBYGEMS_API_KEY
on:
branch: master
tags: true
- stage: publish components
script: 'cd rswag-ui'
deploy:
gemspec: rswag-ui.gemspec
provider: rubygems
api_key: $RUBYGEMS_API_KEY
on:
branch: master
tags: true
- stage: publish rswag
script: 'cd rswag'
deploy:
gemspec: rswag.gemspec
provider: rubygems
api_key: $RUBYGEMS_API_KEY
on:
branch: master
tags: true

10
Gemfile
View File

@ -29,8 +29,8 @@ group :test do
gem 'capybara' gem 'capybara'
gem 'capybara-webkit' gem 'capybara-webkit'
end end
#
#group :assets do group :assets do
# gem 'uglifier' gem 'uglifier'
# gem 'therubyracer' gem 'therubyracer'
#end end

View File

@ -1,187 +0,0 @@
PATH
remote: rswag-api
specs:
rswag-api (1.3.0)
railties (>= 3.1)
PATH
remote: rswag-specs
specs:
rswag-specs (1.3.0)
activesupport (>= 3.1)
json-schema (~> 2.2)
railties (>= 3.1)
PATH
remote: rswag-ui
specs:
rswag-ui (1.3.0)
actionpack (>= 3.1)
railties (>= 3.1)
GEM
remote: https://rubygems.org/
specs:
actioncable (5.1.2)
actionpack (= 5.1.2)
nio4r (~> 2.0)
websocket-driver (~> 0.6.1)
actionmailer (5.1.2)
actionpack (= 5.1.2)
actionview (= 5.1.2)
activejob (= 5.1.2)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (5.1.2)
actionview (= 5.1.2)
activesupport (= 5.1.2)
rack (~> 2.0)
rack-test (~> 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.1.2)
activesupport (= 5.1.2)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
activejob (5.1.2)
activesupport (= 5.1.2)
globalid (>= 0.3.6)
activemodel (5.1.2)
activesupport (= 5.1.2)
activerecord (5.1.2)
activemodel (= 5.1.2)
activesupport (= 5.1.2)
arel (~> 8.0)
activesupport (5.1.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7)
minitest (~> 5.1)
tzinfo (~> 1.1)
addressable (2.5.1)
public_suffix (~> 2.0, >= 2.0.2)
arel (8.0.0)
builder (3.2.3)
capybara (2.13.0)
addressable
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
capybara-webkit (1.14.0)
capybara (>= 2.3.0, < 2.14.0)
json
concurrent-ruby (1.0.5)
diff-lcs (1.3)
erubi (1.6.1)
generator_spec (0.9.4)
activesupport (>= 3.0.0)
railties (>= 3.0.0)
globalid (0.4.0)
activesupport (>= 4.2.0)
i18n (0.8.4)
json (2.1.0)
json-schema (2.8.0)
addressable (>= 2.4)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.6)
mime-types (>= 1.16, < 4)
method_source (0.8.2)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_portile2 (2.2.0)
minitest (5.10.2)
nio4r (2.1.0)
nokogiri (1.8.0)
mini_portile2 (~> 2.2.0)
power_assert (1.0.2)
public_suffix (2.0.5)
rack (2.0.3)
rack-test (0.6.3)
rack (>= 1.0)
rails (5.1.2)
actioncable (= 5.1.2)
actionmailer (= 5.1.2)
actionpack (= 5.1.2)
actionview (= 5.1.2)
activejob (= 5.1.2)
activemodel (= 5.1.2)
activerecord (= 5.1.2)
activesupport (= 5.1.2)
bundler (>= 1.3.0, < 2.0)
railties (= 5.1.2)
sprockets-rails (>= 2.0.0)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.0.3)
loofah (~> 2.0)
railties (5.1.2)
actionpack (= 5.1.2)
activesupport (= 5.1.2)
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (12.0.0)
responders (2.4.0)
actionpack (>= 4.2.0, < 5.3)
railties (>= 4.2.0, < 5.3)
rspec-core (3.6.0)
rspec-support (~> 3.6.0)
rspec-expectations (3.6.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.6.0)
rspec-mocks (3.6.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.6.0)
rspec-rails (3.6.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.6.0)
rspec-expectations (~> 3.6.0)
rspec-mocks (~> 3.6.0)
rspec-support (~> 3.6.0)
rspec-support (3.6.0)
sprockets (3.7.1)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.0)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
sqlite3 (1.3.13)
test-unit (3.2.5)
power_assert
thor (0.19.4)
thread_safe (0.3.6)
tzinfo (1.2.3)
thread_safe (~> 0.1)
websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
xpath (2.1.0)
nokogiri (~> 1.3)
PLATFORMS
ruby
DEPENDENCIES
capybara
capybara-webkit
generator_spec
rails (= 5.1.2)
responders
rspec-rails
rswag-api!
rswag-specs!
rswag-ui!
sqlite3
test-unit
BUNDLED WITH
1.14.6

View File

@ -1,58 +0,0 @@
#!/usr/bin/env bash
ROOT_PATH=$PWD
set -e # abort if anything fails
bundle check || bundle
echo '####################'
echo 'Build Gems'
echo '####################'
echo ''
echo '##### rswag-api #####'
cd $ROOT_PATH/rswag-api
gem build rswag-api.gemspec
echo '##### rswag-specs #####'
cd $ROOT_PATH/rswag-specs
gem build rswag-specs.gemspec
echo '##### rswag-ui #####'
cd $ROOT_PATH/rswag-ui
gem build rswag-ui.gemspec
echo '##### rswag #####'
cd $ROOT_PATH/rswag
gem build rswag.gemspec
echo '####################'
echo 'Push to RubyGems'
echo '####################'
echo ''
echo 'Type the version no, followed by [ENTER]:'
read version
echo '##### rswag-api #####'
cd $ROOT_PATH/rswag-api
gem push rswag-api-$version.gem
echo '##### rswag-specs #####'
cd $ROOT_PATH/rswag-specs
gem push rswag-specs-$version.gem
echo '##### rswag-ui #####'
cd $ROOT_PATH/rswag-ui
gem push rswag-ui-$version.gem
echo '##### rswag #####'
cd $ROOT_PATH/rswag
gem push rswag-$version.gem
# Cleanup
cd $ROOT_PATH
# Create git tag
git tag v$version
git push origin v$version

View File

@ -1,4 +1,3 @@
require 'rswag/api/version'
require 'rswag/api/configuration' require 'rswag/api/configuration'
require 'rswag/api/engine' require 'rswag/api/engine'

View File

@ -1,5 +0,0 @@
module Rswag
module Api
VERSION = '1.3.0'
end
end

View File

@ -1,12 +1,9 @@
$:.push File.expand_path("../lib", __FILE__) $:.push File.expand_path("../lib", __FILE__)
# Maintain your gem's version:
require 'rswag/api/version'
# Describe your gem and declare its dependencies: # Describe your gem and declare its dependencies:
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "rswag-api" s.name = "rswag-api"
s.version = Rswag::Api::VERSION s.version = ENV['TRAVIS_TAG'] || '0.0.0'
s.authors = ["Richie Morris"] s.authors = ["Richie Morris"]
s.email = ["domaindrivendev@gmail.com"] s.email = ["domaindrivendev@gmail.com"]
s.homepage = "https://github.com/domaindrivendev/rswag" s.homepage = "https://github.com/domaindrivendev/rswag"
@ -16,5 +13,5 @@ Gem::Specification.new do |s|
s.files = Dir["{lib}/**/*"] + ["MIT-LICENSE", "Rakefile"] s.files = Dir["{lib}/**/*"] + ["MIT-LICENSE", "Rakefile"]
s.add_dependency 'railties', '>= 3.1' s.add_dependency 'railties', '>= 3.1', '< 6.0'
end end

View File

@ -1,5 +1,4 @@
require 'rspec/core' require 'rspec/core'
require 'rswag/specs/version'
require 'rswag/specs/example_group_helpers' require 'rswag/specs/example_group_helpers'
require 'rswag/specs/example_helpers' require 'rswag/specs/example_helpers'
require 'rswag/specs/configuration' require 'rswag/specs/configuration'

View File

@ -1,5 +0,0 @@
module Rswag
module Specs
VERSION = '1.3.0'
end
end

View File

@ -1,12 +1,9 @@
$:.push File.expand_path("../lib", __FILE__) $:.push File.expand_path("../lib", __FILE__)
# Maintain your gem's version:
require 'rswag/specs/version'
# Describe your gem and declare its dependencies: # Describe your gem and declare its dependencies:
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "rswag-specs" s.name = "rswag-specs"
s.version = Rswag::Specs::VERSION s.version = ENV['TRAVIS_TAG'] || '0.0.0'
s.authors = ["Richie Morris"] s.authors = ["Richie Morris"]
s.email = ["domaindrivendev@gmail.com"] s.email = ["domaindrivendev@gmail.com"]
s.homepage = "https://github.com/domaindrivendev/rswag" s.homepage = "https://github.com/domaindrivendev/rswag"
@ -16,7 +13,7 @@ Gem::Specification.new do |s|
s.files = Dir["{lib}/**/*"] + ["MIT-LICENSE", "Rakefile" ] s.files = Dir["{lib}/**/*"] + ["MIT-LICENSE", "Rakefile" ]
s.add_dependency 'activesupport', '>= 3.1' s.add_dependency 'activesupport', '>= 3.1', '< 6.0'
s.add_dependency 'railties', '>= 3.1' s.add_dependency 'railties', '>= 3.1', '< 6.0'
s.add_dependency 'json-schema', '~> 2.2' s.add_dependency 'json-schema', '~> 2.2'
end end

View File

@ -1,4 +1,3 @@
require 'rswag/ui/version'
require 'rswag/ui/configuration' require 'rswag/ui/configuration'
require 'rswag/ui/engine' require 'rswag/ui/engine'

View File

@ -1,5 +0,0 @@
module Rswag
module Ui
VERSION = '1.3.0'
end
end

View File

@ -1,12 +1,9 @@
$:.push File.expand_path("../lib", __FILE__) $:.push File.expand_path("../lib", __FILE__)
# Maintain your gem's version:
require 'rswag/ui/version'
# Describe your gem and declare its dependencies: # Describe your gem and declare its dependencies:
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "rswag-ui" s.name = "rswag-ui"
s.version = Rswag::Ui::VERSION s.version = ENV['TRAVIS_TAG'] || '0.0.0'
s.authors = ["Richie Morris"] s.authors = ["Richie Morris"]
s.email = ["domaindrivendev@gmail.com"] s.email = ["domaindrivendev@gmail.com"]
s.homepage = "https://github.com/domaindrivendev/rswag" s.homepage = "https://github.com/domaindrivendev/rswag"
@ -16,6 +13,6 @@ Gem::Specification.new do |s|
s.files = Dir["{app,config,lib,vendor}/**/*"] + ["MIT-LICENSE", "Rakefile" ] s.files = Dir["{app,config,lib,vendor}/**/*"] + ["MIT-LICENSE", "Rakefile" ]
s.add_dependency 'actionpack', '>=3.1' s.add_dependency 'actionpack', '>=3.1', '< 6.0'
s.add_dependency 'railties', '>= 3.1' s.add_dependency 'railties', '>= 3.1', '< 6.0'
end end

View File

@ -1,4 +1,3 @@
require 'rswag/version'
require 'rswag/specs' require 'rswag/specs'
require 'rswag/api' require 'rswag/api'
require 'rswag/ui' require 'rswag/ui'

View File

@ -1,3 +0,0 @@
module Rswag
VERSION = '1.3.0'
end

View File

@ -1,12 +1,9 @@
$:.push File.expand_path("../lib", __FILE__) $:.push File.expand_path("../lib", __FILE__)
# Maintain your gem's version:
require 'rswag/version'
# Describe your gem and declare its dependencies: # Describe your gem and declare its dependencies:
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "rswag" s.name = "rswag"
s.version = Rswag::VERSION s.version = ENV['TRAVIS_TAG'] || '0.0.0'
s.authors = ["Richie Morris"] s.authors = ["Richie Morris"]
s.email = ["domaindrivendev@gmail.com"] s.email = ["domaindrivendev@gmail.com"]
s.homepage = "https://github.com/domaindrivendev/rswag" s.homepage = "https://github.com/domaindrivendev/rswag"
@ -16,7 +13,7 @@ Gem::Specification.new do |s|
s.files = Dir["{lib}/**/*"] + [ "MIT-LICENSE" ] s.files = Dir["{lib}/**/*"] + [ "MIT-LICENSE" ]
s.add_dependency 'rswag-specs', Rswag::VERSION s.add_dependency 'rswag-specs', ENV['TRAVIS_TAG'] || '0.0.0'
s.add_dependency 'rswag-api', Rswag::VERSION s.add_dependency 'rswag-api', ENV['TRAVIS_TAG'] || '0.0.0'
s.add_dependency 'rswag-ui', Rswag::VERSION s.add_dependency 'rswag-ui', ENV['TRAVIS_TAG'] || '0.0.0'
end end

View File

@ -13,10 +13,10 @@
ActiveRecord::Schema.define(version: 20160218212104) do ActiveRecord::Schema.define(version: 20160218212104) do
create_table "blogs", force: :cascade do |t| create_table "blogs", force: :cascade do |t|
t.string "title", limit: 255 t.string "title"
t.text "content" t.text "content"
t.datetime "created_at", null: false t.datetime "created_at"
t.datetime "updated_at", null: false t.datetime "updated_at"
end end
end end