Module: Shipit::DeploySpec::LernaDiscovery
- Included in:
- FileSystem
- Defined in:
- app/models/shipit/deploy_spec/lerna_discovery.rb
Constant Summary collapse
- LATEST_MAJOR_VERSION =
Gem::Version.new('3.0.0')
Instance Method Summary collapse
- #discover_dependencies_steps ⇒ Object
- #discover_deploy_steps ⇒ Object
- #discover_lerna_checklist ⇒ Object
- #discover_lerna_json ⇒ Object
- #discover_lerna_packages ⇒ Object
- #discover_review_checklist ⇒ Object
- #lerna? ⇒ Boolean
- #lerna_config ⇒ Object
- #lerna_install ⇒ Object
- #lerna_json ⇒ Object
- #lerna_lerna ⇒ Object
- #lerna_version ⇒ Object
- #publish_fixed_version_packages ⇒ Object
- #publish_independent_packages ⇒ Object
- #publish_lerna_packages ⇒ Object
Instance Method Details
#discover_dependencies_steps ⇒ Object
10 11 12 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 10 def discover_dependencies_steps discover_lerna_json || super end |
#discover_deploy_steps ⇒ Object
70 71 72 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 70 def discover_deploy_steps discover_lerna_packages || super end |
#discover_lerna_checklist ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 26 def discover_lerna_checklist return unless lerna? command = if lerna_lerna >= LATEST_MAJOR_VERSION 'lerna version' else %( lerna publish --skip-npm && git add -A && git push --follow-tags ) end [%( <strong>Don't forget version and tag before publishing!</strong> You can do this with:<br/> <pre>#{command}</pre> )] end |
#discover_lerna_json ⇒ Object
14 15 16 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 14 def discover_lerna_json lerna_install if lerna? end |
#discover_lerna_packages ⇒ Object
66 67 68 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 66 def discover_lerna_packages publish_lerna_packages if lerna? end |
#discover_review_checklist ⇒ Object
22 23 24 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 22 def discover_review_checklist discover_lerna_checklist || super end |
#lerna? ⇒ Boolean
46 47 48 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 46 def lerna? lerna_json.exist? end |
#lerna_config ⇒ Object
54 55 56 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 54 def lerna_config @_lerna_config ||= JSON.parse(lerna_json.read) end |
#lerna_install ⇒ Object
18 19 20 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 18 def lerna_install [js_command('install --no-progress'), 'node_modules/.bin/lerna bootstrap'] end |
#lerna_json ⇒ Object
50 51 52 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 50 def lerna_json file('lerna.json') end |
#lerna_lerna ⇒ Object
58 59 60 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 58 def lerna_lerna Gem::Version.new(lerna_config['lerna']) end |
#lerna_version ⇒ Object
62 63 64 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 62 def lerna_version lerna_config['version'] end |
#publish_fixed_version_packages ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 94 def publish_fixed_version_packages = 'assert-lerna-fixed-version-tag' version = lerna_version publish = if lerna_lerna >= LATEST_MAJOR_VERSION %W[ node_modules/.bin/lerna publish from-git --yes --dist-tag #{dist_tag(version)} ].join(" ") else # `yarn publish` requires user input, so always use npm. %W[ node_modules/.bin/lerna publish --yes --skip-git --repo-version #{version} --force-publish=* --npm-tag #{dist_tag(version)} --npm-client=npm --skip-npm=false ].join(" ") end [, publish] end |
#publish_independent_packages ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 80 def publish_independent_packages if lerna_lerna >= LATEST_MAJOR_VERSION [ 'assert-lerna-independent-version-tags', 'publish-lerna-independent-packages' ] else [ 'assert-lerna-independent-version-tags', 'publish-lerna-independent-packages-legacy' ] end end |
#publish_lerna_packages ⇒ Object
74 75 76 77 78 |
# File 'app/models/shipit/deploy_spec/lerna_discovery.rb', line 74 def publish_lerna_packages return publish_independent_packages if lerna_version == 'independent' publish_fixed_version_packages end |