renuo-cli 1.7.3 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 577c679e818462872dd5489f96493b109af10e72
4
- data.tar.gz: 6d3b7b14afe1fe44c114994d033b9eb8993d7f75
2
+ SHA256:
3
+ metadata.gz: 1eea3c5df45adf1359cb93a9b1b41f70f37193174bee321249d4749a1d5ebdcb
4
+ data.tar.gz: 5984e0ab5a47c433ba42326f4737feb0ad1d12f87847f3540d7784edd1cdaf34
5
5
  SHA512:
6
- metadata.gz: 552508988e60a07668c338010680213c1f016be6fd8b2170cf129ce7e8937b895bc3b3895bb511c2777daed3958a863c1bb0dce75df937252e6bec0b581c53d4
7
- data.tar.gz: edc406e3f95a25a38651c6b06b4a950076bff3c25a429da050030b85455838c0e9cdb89ccaec296fd3134985e86e6e25df920af28be6828ab686a3765b3046c0
6
+ metadata.gz: 5297398c47861cf1974097075be3b973c347277fc56431ff3383037e6b7c172f5266627d4b42fc7b71d72013f8b7a7e98cd512246920e83a80c541f58e90b8d7
7
+ data.tar.gz: 95edee563ba860d322f13071180a99df516c54170d64f39daa83e6f8fe4e4176257428549806117683cba749e7438aa0a487ab38714cf5866470e073e8a06ecc
data/.rubocop.yml CHANGED
@@ -11,6 +11,9 @@ AllCops:
11
11
  - 'lib/renuo/cli/app/create_heroku_app'
12
12
  - 'vendor/**/*'
13
13
 
14
+ Layout/LineLength:
15
+ Max: 120
16
+
14
17
  Naming/FileName:
15
18
  Exclude:
16
19
  - 'Gemfile'
@@ -25,9 +28,6 @@ Metrics/BlockLength:
25
28
  Metrics/ClassLength:
26
29
  Max: 160
27
30
 
28
- Metrics/LineLength:
29
- Max: 120
30
-
31
31
  Style/Documentation:
32
32
  Enabled: false
33
33
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.7.2
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+
3
+ for cache_group in "$@"
4
+ do
5
+ case $cache_group in
6
+
7
+ ruby)
8
+ cache restore gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),gems-$SEMAPHORE_GIT_BRANCH,gems-develop,gems-master
9
+ ;;
10
+
11
+ *)
12
+ echo "Invalid argument: Cache group $cache_group not found."
13
+ exit 1
14
+ ;;
15
+ esac
16
+ done
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+
3
+ for cache_group in "$@"
4
+ do
5
+ case $cache_group in
6
+
7
+ ruby)
8
+ cache store gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock) vendor/bundle
9
+ ;;
10
+
11
+ *)
12
+ echo "Invalid argument: Cache group $cache_group not found."
13
+ exit 1
14
+ ;;
15
+ esac
16
+ done
@@ -7,33 +7,28 @@ agent:
7
7
  auto_cancel:
8
8
  running:
9
9
  when: "true"
10
+ fail_fast:
11
+ cancel:
12
+ when: "branch != 'master'"
10
13
 
11
14
  blocks:
12
15
  - name: tests
13
16
  execution_time_limit:
14
- minutes: 10
17
+ minutes: 5
18
+ dependencies: []
15
19
  task:
16
20
  secrets:
17
21
  - name: renuo-cli
18
- env_vars:
19
- - name: RAILS_ENV
20
- value: test
21
22
  prologue:
22
23
  commands:
23
24
  - checkout --use-cache
24
- - cache restore
25
- - gem update bundler
25
+ - source .semaphore/bin/cache_restore ruby
26
26
  - bundle install -j 4 --path vendor/bundle
27
- - cache store
27
+ - source .semaphore/bin/cache_store ruby
28
28
  jobs:
29
29
  - name: tests
30
30
  commands:
31
31
  - bin/check
32
- epilogue:
33
- on_fail:
34
- commands:
35
- - artifact push job --expire-in 2w log/test.log
36
- - artifact push job --expire-in 2w tmp/screenshots
37
32
  promotions:
38
33
  - name: master
39
34
  pipeline_file: master-deploy.yml
data/lib/renuo/cli.rb CHANGED
@@ -20,6 +20,7 @@ require 'renuo/cli/app/setup_uptimerobot'
20
20
  require 'renuo/cli/app/release_xing'
21
21
  require 'renuo/cli/app/configure_semaphore'
22
22
  require 'renuo/cli/app/toggl_redmine_comparator'
23
+ require 'renuo/cli/app/renuo_version'
23
24
 
24
25
  module Renuo
25
26
  class CLI
@@ -109,7 +110,7 @@ module Renuo
109
110
  c.syntax = 'renuo create-aws-project'
110
111
  c.summary = 'Generates necessary commands for our project setup on AWS incl. necessary installations.'
111
112
  c.description = <<-DESCRIPTION
112
- This creates commands for creating AWS users, buckets an versioning policies and CloudFront.
113
+ This creates commands for creating AWS users, buckets an versioning policies and CloudFront.
113
114
  It also guides you to set up the necessary environment.
114
115
 
115
116
  You will be asked for:
@@ -8,17 +8,24 @@ class ConfigureSemaphore
8
8
  @project_name = File.basename(Dir.getwd)
9
9
  end
10
10
 
11
+ # rubocop:disable Metrics/MethodLength
11
12
  def call
12
13
  return unless semaphore_cli_installed?
13
- FileUtils.mkdir_p('.semaphore')
14
- write_or_warn('.semaphore/semaphore.yml', render('templates/semaphore.yml.erb'))
14
+
15
+ FileUtils.mkdir_p(%w[.semaphore .semaphore/bin])
16
+
17
+ write_or_warn('.semaphore/semaphore.yml', render('templates/semaphore/semaphore.yml.erb'))
15
18
  %w[master develop testing].each do |environment|
16
19
  @environment = environment
17
- write_or_warn(".semaphore/#{environment}-deploy.yml", render('templates/semaphore-deploy.yml.erb'))
20
+ write_or_warn(".semaphore/#{environment}-deploy.yml", render('templates/semaphore/semaphore-deploy.yml.erb'))
18
21
  end
22
+ write_or_warn('.semaphore/bin/cache_restore', render('templates/semaphore/bin/cache_restore.erb'))
23
+ write_or_warn('.semaphore/bin/cache_store', render('templates/semaphore/bin/cache_store.erb'))
24
+
19
25
  create_semaphore_notification
20
26
  create_semaphore_secrets
21
27
  end
28
+ # rubocop:enable Metrics/MethodLength
22
29
 
23
30
  private
24
31
 
@@ -27,7 +27,7 @@ class CreateAwsProject
27
27
  end
28
28
 
29
29
  def collect_s3_information
30
- @project_purpose = ask('Suffix describing purpose (eg: assets): ') { |q| q.default = 'none' }
30
+ @project_purpose = ask('Suffix describing a non-default purpose (eg: "archives"): ') { |q| q.default = 'none' }
31
31
  @project_purpose = nil if @project_purpose.empty? || @project_purpose == 'none'
32
32
  @redmine_project = ask('Redmine project name for billing (eg: internal): ') do |q|
33
33
  q.default = @project_name
@@ -42,6 +42,7 @@ class CreateAwsProject
42
42
  @setup_cloudfront = agree('Would you like to setup also AWS CloudFront? '\
43
43
  '(Default: yes, if you want to deliver assets/images from S3)')
44
44
  return unless @setup_cloudfront
45
+
45
46
  @cloudfront_alias = {}
46
47
  return unless agree('Would you like to use an alias to call your assets/images on S3? (Default: no)')
47
48
 
@@ -84,6 +85,7 @@ class CreateAwsProject
84
85
 
85
86
  def cloudfront_setup(bucket, branch)
86
87
  return unless @setup_cloudfront
88
+
87
89
  puts aws_cloudfront_setup(@aws_profile, bucket, branch, @redmine_project)
88
90
  if @cloudfront_alias[branch.to_sym]
89
91
  say "\n# Warning: Don't forget to set up `#{cloudfront_alias(branch)}` on the DNS "\
@@ -2,6 +2,6 @@ require 'securerandom'
2
2
 
3
3
  class GeneratePassword
4
4
  def run
5
- say SecureRandom.base64(200).gsub(%r{[\+\/=]}, '')[0...100]
5
+ say SecureRandom.base64(200).gsub(%r{[+/=]}, '')[0...100]
6
6
  end
7
7
  end
@@ -1,4 +1,4 @@
1
- require_relative './heroku_apps.rb'
1
+ require_relative './heroku_apps'
2
2
 
3
3
  class HerokuUsers
4
4
  def initialize; end
@@ -1,6 +1,6 @@
1
1
  class ReleaseProject
2
2
  UPDATE_TYPES = %w[major minor patch custom].freeze
3
- TMP_FOLDER_NAME = ('_RENUO_RELEASE_TEMP_' + rand(100_000_000).to_s).freeze
3
+ TMP_FOLDER_NAME = "_RENUO_RELEASE_TEMP_#{rand(100_000_000)}".freeze
4
4
  MOVE_TO_TMP_FOLDER = "mkdir -p #{TMP_FOLDER_NAME} && cd #{TMP_FOLDER_NAME}".freeze
5
5
 
6
6
  def run(args)
@@ -44,8 +44,9 @@ class ReleaseProject
44
44
  end
45
45
 
46
46
  def validate_custom_version_format
47
- return if @version.nil?
48
- abort('>> Invalid Version Number. Use format X.Y.Z for your version.') unless @version =~ /\d+\.\d+\.\d+/
47
+ return if @version.nil? || @version =~ RenuoVersion::SEMVER_SCHEMA
48
+
49
+ abort('>> Invalid Version Number. Use format X.Y.Z for your version.')
49
50
  end
50
51
 
51
52
  def compare_develop_master
@@ -67,11 +68,7 @@ class ReleaseProject
67
68
  end
68
69
 
69
70
  def calculate_version
70
- current_version_parts = current_version.split('.').map(&:to_i)
71
- type_index = UPDATE_TYPES.index(@update_type)
72
- current_version_parts[type_index + 1..-1] = [0] * (2 - type_index)
73
- current_version_parts[type_index] += 1
74
- current_version_parts.join('.')
71
+ RenuoVersion.create(current_version).bump(@update_type).to_s
75
72
  end
76
73
 
77
74
  def release
@@ -92,7 +89,7 @@ class ReleaseProject
92
89
  '0.0.0'
93
90
  else
94
91
  sorted_tags = `#{cmd_in_folder('git tag --sort=taggerdate')}`.split("\n").reverse
95
- sorted_tags.find { |tag| tag =~ /\d+\.\d+\.\d+/ }.strip
92
+ sorted_tags.find { |tag| tag =~ RenuoVersion::SEMVER_SCHEMA }.strip
96
93
  end
97
94
  end
98
95
 
@@ -100,6 +97,7 @@ class ReleaseProject
100
97
  version_bumped = find_and_replace_version
101
98
 
102
99
  return unless version_bumped
100
+
103
101
  system(cmd_in_folder("git add . && git commit -m \"bump version\" && git push -u origin release/#{@version}"))
104
102
  end
105
103
 
@@ -147,6 +145,7 @@ class ReleaseProject
147
145
  end
148
146
 
149
147
  return unless Time.now.friday? && Time.now.hour >= 16
148
+
150
149
  unless agree('>> Are you sure you want to deploy on late Friday afternoon? ' \
151
150
  'Did you think about your family...waiting for you at home?')
152
151
  abort('>> Very good. Go home now.')
@@ -1,5 +1,5 @@
1
1
  class ReleaseXing
2
- TMP_FOLDER_NAME = ('_RENUO_RELEASE_TEMP_' + rand(100_000_000).to_s).freeze
2
+ TMP_FOLDER_NAME = "_RENUO_RELEASE_TEMP_#{rand(100_000_000)}".freeze
3
3
  MOVE_TO_TMP_FOLDER = "mkdir -p #{TMP_FOLDER_NAME} && cd #{TMP_FOLDER_NAME}".freeze
4
4
 
5
5
  def run
@@ -0,0 +1,52 @@
1
+ class RenuoVersion
2
+ SEMVER_SCHEMA = /^\d+\.\d+\.\d+(\.[a-z]+\d+)?$/.freeze
3
+ SEGMENTS = %w[major minor patch].freeze
4
+
5
+ def self.create(str)
6
+ raise "Invalid segments (#{str} =~ #{SEMVER_SCHEMA})" unless str =~ SEMVER_SCHEMA
7
+
8
+ new(*str.split('.'))
9
+ end
10
+
11
+ attr_reader :segments
12
+
13
+ def initialize(major, minor, patch, prerelease = nil)
14
+ @segments = [major, minor, patch].map(&:to_i)
15
+ @segments.push(prerelease.to_s) if prerelease
16
+ end
17
+
18
+ def bump(segment)
19
+ raise "Invalid segment #{segment} (must be one of #{SEGMENTS})" unless SEGMENTS.include?(segment)
20
+
21
+ send("bump_#{segment}")
22
+ self
23
+ end
24
+
25
+ # Returns true if it's a release candidate (e.g. 3.0.0.rc4)
26
+ def prerelease?
27
+ @segments.length > 3
28
+ end
29
+
30
+ def to_s
31
+ @segments.join('.')
32
+ end
33
+
34
+ private
35
+
36
+ def bump_major
37
+ @segments = [@segments[0] + 1, 0, 0]
38
+ end
39
+
40
+ def bump_minor
41
+ @segments = [@segments[0], @segments[1] + 1, 0]
42
+ end
43
+
44
+ def bump_patch
45
+ if prerelease?
46
+ old_number = @segments[3][/\d+/]
47
+ @segments[3].gsub!(old_number, (old_number.to_i + 1).to_s)
48
+ else # default patch
49
+ @segments = [*@segments[0..1], @segments[2] + 1]
50
+ end
51
+ end
52
+ end
@@ -19,6 +19,7 @@ class RenuoCliConfig
19
19
  config = YAML.load_file(CONFIG_FILE_PATH, fallback: {})
20
20
  value = config[name]
21
21
  return value if value
22
+
22
23
  system("open #{open_url}")
23
24
  value = ask("You haven't set your #{name}, yet. Please provide one:")
24
25
  config[name] = value
@@ -61,6 +61,7 @@ class SetupUptimerobot
61
61
 
62
62
  def validate_new_project(robot_obj)
63
63
  return if robot_obj['stat'] == 'ok'
64
+
64
65
  abort("An error occoured. Uptimerobot returned '#{robot_obj['error']['message']}'")
65
66
  end
66
67
 
@@ -0,0 +1,31 @@
1
+ #!/bin/sh
2
+
3
+ for cache_group in "$@"
4
+ do
5
+ case $cache_group in
6
+
7
+ rails)
8
+ cache restore nvm-$SEMAPHORE_GIT_BRANCH-$(checksum .nvmrc),nvm-$SEMAPHORE_GIT_BRANCH,nvm-develop,nvm-master
9
+ cache restore gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),gems-$SEMAPHORE_GIT_BRANCH,gems-develop,gems-master
10
+ cache restore yarn-cache-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock),yarn-cache-$SEMAPHORE_GIT_BRANCH,yarn-cache-develop,yarn-cache-master
11
+ cache restore node-modules-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock),node-modules-$SEMAPHORE_GIT_BRANCH,node-modules-develop,node-modules-master
12
+ ;;
13
+
14
+ python)
15
+ cache restore requirements-$SEMAPHORE_GIT_BRANCH-$(checksum requirements.txt),requirements-$SEMAPHORE_GIT_BRANCH,requirements-develop,requirements-master
16
+ ;;
17
+
18
+ assets)
19
+ cache restore packs-$SEMAPHORE_GIT_BRANCH,packs-develop,packs-master
20
+ cache restore packstest-$SEMAPHORE_GIT_BRANCH,packstest-develop,packstest-master
21
+ cache restore assets-$SEMAPHORE_GIT_BRANCH,assets-develop,assets-master
22
+ cache restore sprocketscache-$SEMAPHORE_GIT_BRANCH,sprocketscache-develop,sprocketscache-master
23
+ cache restore webpackercache-$SEMAPHORE_GIT_BRANCH,webpackercache-develop,webpackercache-master
24
+ ;;
25
+
26
+ *)
27
+ echo "Invalid argument: Cache group $cache_group not found."
28
+ exit 1
29
+ ;;
30
+ esac
31
+ done
@@ -0,0 +1,31 @@
1
+ #!/bin/sh
2
+
3
+ for cache_group in "$@"
4
+ do
5
+ case $cache_group in
6
+
7
+ rails)
8
+ cache store nvm-$SEMAPHORE_GIT_BRANCH-$(checksum .nvmrc) $HOME/.nvm
9
+ cache store gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock) vendor/bundle
10
+ cache store yarn-cache-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock) $HOME/.cache/yarn
11
+ cache store node-modules-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock) node_modules
12
+ ;;
13
+
14
+ python)
15
+ cache store requirements-$SEMAPHORE_GIT_BRANCH-$(checksum requirements.txt) .pip_cache
16
+ ;;
17
+
18
+ assets)
19
+ cache store packs-$SEMAPHORE_GIT_BRANCH public/packs
20
+ cache store packstest-$SEMAPHORE_GIT_BRANCH public/packs-test
21
+ cache store assets-$SEMAPHORE_GIT_BRANCH public/assets
22
+ cache store sprocketscache-$SEMAPHORE_GIT_BRANCH tmp/cache/assets/sprockets
23
+ cache store webpackercache-$SEMAPHORE_GIT_BRANCH tmp/cache/webpacker
24
+ ;;
25
+
26
+ *)
27
+ echo "Invalid argument: Cache group $cache_group not found."
28
+ exit 1
29
+ ;;
30
+ esac
31
+ done
@@ -7,6 +7,9 @@ agent:
7
7
  auto_cancel:
8
8
  running:
9
9
  when: "true"
10
+ fail_fast:
11
+ cancel:
12
+ when: "branch != 'master'"
10
13
 
11
14
  blocks:
12
15
  - name: cache
@@ -20,14 +23,32 @@ blocks:
20
23
  - name: cache
21
24
  commands:
22
25
  - checkout --use-cache
23
- - cache restore nvm-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),nvm-$SEMAPHORE_GIT_BRANCH,nvm-develop,nvm-master
24
- - cache restore gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),gems-$SEMAPHORE_GIT_BRANCH,gems-develop,gems-master
25
- - cache restore yarn-cache-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),yarn-cache-$SEMAPHORE_GIT_BRANCH,yarn-cache-develop,yarn-cache-master
26
- - cache restore node-modules-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock),node-modules-$SEMAPHORE_GIT_BRANCH,node-modules-develop,node-modules-master
26
+ - source .semaphore/bin/cache_restore rails
27
27
  - bundle install --deployment -j 4 --path vendor/bundle
28
28
  - nvm install
29
29
  - bin/yarn install --cache-folder ~/.cache/yarn
30
- - cache store
30
+ - source .semaphore/bin/cache_store rails
31
+ - name: linting
32
+ execution_time_limit:
33
+ minutes: 5
34
+ dependencies: ['cache']
35
+ task:
36
+ secrets:
37
+ - name: <%= project_name %>
38
+ env_vars:
39
+ - name: RAILS_ENV
40
+ value: test
41
+ prologue:
42
+ commands:
43
+ - checkout --use-cache
44
+ - source .semaphore/bin/cache_restore rails
45
+ - bundle install --deployment --path vendor/bundle
46
+ - nvm install
47
+ - bin/yarn install --cache-folder ~/.cache/yarn
48
+ jobs:
49
+ - name: linting
50
+ commands:
51
+ - bin/fastcheck
31
52
  - name: tests
32
53
  execution_time_limit:
33
54
  minutes: 10
@@ -43,11 +64,9 @@ blocks:
43
64
  prologue:
44
65
  commands:
45
66
  - checkout --use-cache
46
- - cache restore nvm-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),nvm-$SEMAPHORE_GIT_BRANCH,nvm-develop,nvm-master
47
- - cache restore gems-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),gems-$SEMAPHORE_GIT_BRANCH,gems-develop,gems-master
48
- - cache restore yarn-cache-$SEMAPHORE_GIT_BRANCH-$(checksum Gemfile.lock),yarn-cache-$SEMAPHORE_GIT_BRANCH,yarn-cache-develop,yarn-cache-master
49
- - cache restore node-modules-$SEMAPHORE_GIT_BRANCH-$(checksum yarn.lock),node-modules-$SEMAPHORE_GIT_BRANCH,node-modules-develop,node-modules-master
67
+ - source .semaphore/bin/cache_restore rails
50
68
  - bundle install --deployment --path vendor/bundle
69
+ - nvm install
51
70
  - bin/yarn install --cache-folder ~/.cache/yarn
52
71
  - sem-service start postgres
53
72
  - bundle exec rails db:create db:schema:load
@@ -7,6 +7,7 @@ require 'renuo/cli/app/toggl/detail'
7
7
  require 'renuo/cli/app/toggl/user'
8
8
  require 'terminal-table'
9
9
  require 'colorize'
10
+ require 'active_support/core_ext/numeric/time'
10
11
 
11
12
  class TogglRedmineComparator
12
13
  class << self
@@ -129,7 +130,7 @@ class TogglRedmineComparator
129
130
  end
130
131
 
131
132
  def non_working_day?(value)
132
- [value[:redmine], value[:toggl]].all? { |v| v == 0.0 }
133
+ [value[:redmine], value[:toggl]].all?(&:zero?)
133
134
  end
134
135
 
135
136
  BUFFER = 20_000
@@ -11,7 +11,7 @@ class UpgradeMacOS
11
11
  end
12
12
 
13
13
  def reboot_required?
14
- @output.include? '[restart]'
14
+ @output.downcase.include? 'restart'
15
15
  end
16
16
 
17
17
  private
@@ -32,7 +32,7 @@ class UpgradeMacOS
32
32
  end
33
33
 
34
34
  def agree_for_reboot?
35
- agree "\nYour Mac needs to be rebooted, Still continue?".red + ' (Yes / No)'
35
+ agree "#{"\nYour Mac needs to be rebooted, Still continue?".red} (Yes / No)"
36
36
  end
37
37
 
38
38
  def execute_upgrade
@@ -6,7 +6,7 @@ class Work
6
6
  ACTIONS = %w[start].freeze
7
7
 
8
8
  def run(args)
9
- ActiveResource::Base.logger = Logger.new(STDOUT)
9
+ ActiveResource::Base.logger = Logger.new($stdout)
10
10
  @action, @project_name, @ticket_number = args
11
11
  validate_action
12
12
  validate_project_name
@@ -1,6 +1,6 @@
1
1
  module Renuo
2
2
  module Cli
3
- VERSION = '1.7.3'.freeze
3
+ VERSION = '1.8.0'.freeze
4
4
  NAME = 'renuo-cli'.freeze
5
5
  end
6
6
  end
data/renuo-cli.gemspec CHANGED
@@ -17,6 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.executables << 'renuo'
18
18
  spec.require_paths = ['lib']
19
19
 
20
+ spec.required_ruby_version = '>= 2.7.0'
21
+
20
22
  spec.add_dependency 'activeresource', '~> 5.1.0'
21
23
  spec.add_dependency 'colorize', '~> 0'
22
24
  spec.add_dependency 'commander', '~> 4.0'
@@ -32,7 +34,7 @@ Gem::Specification.new do |spec|
32
34
  spec.add_development_dependency 'pry', '~> 0.11.3'
33
35
  spec.add_development_dependency 'rake', '~> 10.0'
34
36
  spec.add_development_dependency 'rspec', '~> 3.5'
35
- spec.add_development_dependency 'rubocop', '0.55.0'
37
+ spec.add_development_dependency 'rubocop', '~> 1.2'
36
38
  spec.add_development_dependency 'simplecov'
37
39
  spec.add_development_dependency 'simplecov-console'
38
40
  spec.add_development_dependency 'vcr', '~> 4.0.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renuo-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.3
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renuo AG
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-07 00:00:00.000000000 Z
11
+ date: 2021-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
@@ -210,16 +210,16 @@ dependencies:
210
210
  name: rubocop
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - '='
213
+ - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.55.0
215
+ version: '1.2'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - '='
220
+ - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 0.55.0
222
+ version: '1.2'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -291,9 +291,10 @@ files:
291
291
  - ".rspec"
292
292
  - ".rubocop.yml"
293
293
  - ".ruby-version"
294
+ - ".semaphore/bin/cache_restore"
295
+ - ".semaphore/bin/cache_store"
294
296
  - ".semaphore/master-deploy.yml"
295
297
  - ".semaphore/semaphore.yml"
296
- - CODE_OF_CONDUCT.md
297
298
  - Gemfile
298
299
  - LICENSE.txt
299
300
  - README.md
@@ -321,12 +322,15 @@ files:
321
322
  - lib/renuo/cli/app/redmine/issue.rb
322
323
  - lib/renuo/cli/app/release_project.rb
323
324
  - lib/renuo/cli/app/release_xing.rb
325
+ - lib/renuo/cli/app/renuo_version.rb
324
326
  - lib/renuo/cli/app/services/cloudfront_config_service.rb
325
327
  - lib/renuo/cli/app/services/markdown_parser_service.rb
326
328
  - lib/renuo/cli/app/services/renuo_cli_config.rb
327
329
  - lib/renuo/cli/app/setup_uptimerobot.rb
328
- - lib/renuo/cli/app/templates/semaphore-deploy.yml.erb
329
- - lib/renuo/cli/app/templates/semaphore.yml.erb
330
+ - lib/renuo/cli/app/templates/semaphore/bin/cache_restore.erb
331
+ - lib/renuo/cli/app/templates/semaphore/bin/cache_store.erb
332
+ - lib/renuo/cli/app/templates/semaphore/semaphore-deploy.yml.erb
333
+ - lib/renuo/cli/app/templates/semaphore/semaphore.yml.erb
330
334
  - lib/renuo/cli/app/toggl/detail.rb
331
335
  - lib/renuo/cli/app/toggl/time_entry.rb
332
336
  - lib/renuo/cli/app/toggl/user.rb
@@ -345,7 +349,7 @@ homepage: https://github.com/renuo/renuo-cli
345
349
  licenses:
346
350
  - MIT
347
351
  metadata: {}
348
- post_install_message:
352
+ post_install_message:
349
353
  rdoc_options: []
350
354
  require_paths:
351
355
  - lib
@@ -353,16 +357,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
353
357
  requirements:
354
358
  - - ">="
355
359
  - !ruby/object:Gem::Version
356
- version: '0'
360
+ version: 2.7.0
357
361
  required_rubygems_version: !ruby/object:Gem::Requirement
358
362
  requirements:
359
363
  - - ">="
360
364
  - !ruby/object:Gem::Version
361
365
  version: '0'
362
366
  requirements: []
363
- rubyforge_project:
364
- rubygems_version: 2.6.14
365
- signing_key:
367
+ rubygems_version: 3.1.4
368
+ signing_key:
366
369
  specification_version: 4
367
370
  summary: The Renuo CLI automates some common workflows.
368
371
  test_files: []
data/CODE_OF_CONDUCT.md DELETED
@@ -1,13 +0,0 @@
1
- # Contributor Code of Conduct
2
-
3
- As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
-
5
- We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6
-
7
- Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
-
9
- Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
-
11
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
-
13
- This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)