diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2017-04-25 19:04:04 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2017-04-25 20:54:33 -0700 |
commit | 6b8130ad431fd61ce865734e7172efc3e0eba672 (patch) | |
tree | 20fd804551035dee4972e8faf3469617a39e0c24 | |
parent | 71863634ac50dbfb2601de536828b779517066ae (diff) | |
download | chef-6b8130ad431fd61ce865734e7172efc3e0eba672.tar.gz |
major testing overhaullcg/simplify-external-tests
See the PR comments for more philosophical background.
This simplifies the external tests. The major feature here is that
halite, poise, chefspec, etc are removed from the Gemfile.lock and
the transitive Gemfile splicing is gone from the external tests.
We're back to simply tracking master on external projects and bundle
installing without locks and going red if the break. Those external
projects should all similarly track master of chef/chef to reduce
the possibility that they break us here.
This also bumps bundler to 1.14.x and unblocks us there.
It continues to simplify our use of bundler to be more mainstream and
less impenetrable.
There was some crazy shit that I found where I had to remove env vars
like BUNDLE_ENABLE_TRAMPOLINE and the BUNDLE_IGNORE_CONFIG and
BUNDLE_FROZEN env vars in appveyor along with the .bundle/config frozen
setting were necessary to unbreak appveyor. We seem to have gotten
very far afield of standard bundler usage and it was breaking in strange
to debug ways.
Oddly enough this exposed weird errors in the
chef-config/spec/units/fips_spec.rb tests where we need to require the
"win32/registry" file there now even though I can't figure out why that
broke or how it was working previously.
Also, adding x64-mingw32 to x86-mingw32 was necessary to test in
appveyor on 64-bit windows (I tried universal-mingw32 and that failed)
which seems obvious and is another case that I don't understand how it
was working in bundler 1.12.x
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | .bundle/config | 2 | ||||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | .travis.yml | 92 | ||||
-rw-r--r-- | Gemfile | 26 | ||||
-rw-r--r-- | Gemfile.lock | 239 | ||||
-rw-r--r-- | appveyor.yml | 6 | ||||
-rw-r--r-- | chef-config/spec/unit/fips_spec.rb | 8 | ||||
-rw-r--r-- | omnibus_overrides.rb | 2 | ||||
-rwxr-xr-x | tasks/bin/run_external_test | 62 | ||||
-rw-r--r-- | tasks/bundle.rb | 8 | ||||
-rw-r--r-- | tasks/dependencies.rb | 4 | ||||
-rw-r--r-- | version_policy.rb | 2 |
12 files changed, 104 insertions, 349 deletions
diff --git a/.bundle/config b/.bundle/config deleted file mode 100644 index e520135ebc..0000000000 --- a/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ ---- -BUNDLE_FROZEN: "1" diff --git a/.gitignore b/.gitignore index aaf9fa045e..83e7f8cad3 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ external_tests/*.lock # http://gembundler.com/man/bundle-exec.1.html b/ binstubs/ -**/.bundle +.bundle # RVM and RBENV ruby version files .rbenv-version .rvmrc diff --git a/.travis.yml b/.travis.yml index e25c8535bf..feb05fe13f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,8 +12,6 @@ before_install: - bundle --version - rm -f .bundle/config -bundler_args: --without ci development docgen guard maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen - before_script: # force all .rspec tests into progress display to reduce line count - echo --color > .rspec @@ -30,7 +28,6 @@ branches: env: global: - FORCE_FFI_YAJL=ext - - BUNDLE_ENABLE_TRAMPOLINE=1 matrix: include: @@ -38,68 +35,58 @@ matrix: sudo: true script: sudo -E $(which bundle) exec rake spec; # also remove integration / external tests - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen - rvm: 2.4.1 sudo: true script: sudo -E $(which bundle) exec rake spec; # also remove integration / external tests - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen - env: CHEFSTYLE: 1 rvm: 2.4.1 script: bundle exec rake style # also remove integration / external tests - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen - env: AUDIT_CHECK: 1 rvm: 2.4.1 script: bundle exec bundle-audit check --update # also remove integration / external tests - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen # # External tests # - env: - TEST_GEM: chef-sugar - script: tasks/bin/run_external_test $TEST_GEM rake + TEST_GEM: sethvargo/chef-sugar + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake + rvm: 2.4.1 + - env: + TEST_GEM: chef/chef-zero + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake spec cheffs + rvm: 2.4.1 + - env: + TEST_GEM: chef/cheffish + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake spec rvm: 2.4.1 - env: - - TEST_GEM: chef-zero - script: tasks/bin/run_external_test $TEST_GEM rake spec cheffs + TEST_GEM: sethvargo/chefspec + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake rvm: 2.4.1 - env: - TEST_GEM: cheffish - script: tasks/bin/run_external_test $TEST_GEM rake spec + TEST_GEM: foodcritic/foodcritic + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake test rvm: 2.4.1 - #- env: - # TEST_GEM: chefspec - ## The chefspec tests + bundler cache + "gem update --system" interact badly :/ - ## (Cucumber doesn't start.) - #before_install: - # - gem uninstall bundler -a -x - # - rvm @global do gem uninstall bundler -a -x - # - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - # - bundle config --local without server:docgen:maintenance:omnibus_package:development:ruby_prof:pry - #script: tasks/bin/run_external_test $TEST_GEM rake - #rvm: 2.4.1 - env: - TEST_GEM: foodcritic - script: tasks/bin/run_external_test $TEST_GEM rake test + TEST_GEM: poise/halite + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake spec rvm: 2.4.1 - env: - TEST_GEM: halite - script: tasks/bin/run_external_test $TEST_GEM rake spec + TEST_GEM: chef/knife-windows + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake unit_spec rvm: 2.4.1 - # this has been broken for some time and running incorrectly, see: - # - # see https://github.com/chef/knife-windows/pull/421 - #- env: - # TEST_GEM: knife-windows - #script: tasks/bin/run_external_test $TEST_GEM rake unit_spec - #rvm: 2.4.1 - env: - TEST_GEM: poise - script: tasks/bin/run_external_test $TEST_GEM rake spec + TEST_GEM: poise/poise + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake spec rvm: 2.4.1 ### START TEST KITCHEN ONLY ### # @@ -110,7 +97,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -128,7 +115,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -146,7 +133,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -164,7 +151,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -182,7 +169,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -200,7 +187,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -218,7 +205,7 @@ matrix: # before_install: # - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) # - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) -# bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen +# bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen # before_script: # - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) # - cd kitchen-tests @@ -236,7 +223,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -254,7 +241,7 @@ matrix: # before_install: # - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) # - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) -# bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen +# bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen # before_script: # - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) # - cd kitchen-tests @@ -272,7 +259,7 @@ matrix: # before_install: # - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) # - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) -# bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen +# bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen # before_script: # - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) # - cd kitchen-tests @@ -292,7 +279,7 @@ matrix: - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - sudo apt-get update - sudo apt-get -y install squid3 git curl - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen env: - PROXY_TESTS_DIR=proxy_tests/files/default/scripts - PROXY_TESTS_REPO=$PROXY_TESTS_DIR/repo @@ -312,7 +299,7 @@ matrix: before_install: - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - gem install bundler -v $(grep bundler omnibus_overrides.rb | cut -d'"' -f2) - bundler_args: --without ci development docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen + bundler_args: --without ci docgen guard integration maintenance omnibus_package tools aix bsd mac_os_x solaris windows --frozen before_script: - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - cd kitchen-tests @@ -323,6 +310,13 @@ matrix: env: - AMAZONLINUX=LATEST - KITCHEN_YAML=.kitchen.travis.yml + # this has been broken for some time and running incorrectly, see: + # + # see https://github.com/chef/knife-windows/pull/421 + - env: + TEST_GEM: chef/knife-windows + script: bundle exec tasks/bin/run_external_test $TEST_GEM master rake unit_spec + rvm: 2.4.1 notifications: on_change: true @@ -1,7 +1,3 @@ -# This buys us the ability to be included in other Gemfiles -require_relative "tasks/gemfile_util" -extend GemfileUtil - source "https://rubygems.org" # Note we do not use the gemspec DSL which restricts to the @@ -14,8 +10,6 @@ gem "chef", path: "." gem "ohai", "~> 13" gem "chef-config", path: File.expand_path("../chef-config", __FILE__) if File.exist?(File.expand_path("../chef-config", __FILE__)) -gem "rake" -gem "bundler" gem "cheffish", "~> 13" # required for rspec tests group(:omnibus_package) do @@ -33,22 +27,6 @@ group(:omnibus_package, :pry) do gem "pry-stack_explorer" end -# These are used for external tests -group(:integration) do - gem "chef-sugar" - gem "chefspec" - gem "halite", git: "https://github.com/poise/halite.git" - gem "poise", git: "https://github.com/poise/poise.git" - gem "poise-boiler", git: "https://github.com/poise/poise-boiler.git" - gem "knife-windows" - gem "foodcritic" - - # We pin this so nobody brings in a cucumber-core incompatible with cucumber latest - gem "cucumber", ">= 2.4.0" - # We pin oc-chef-pedant to prevent it from updating out of lockstep with chef-zero - gem "oc-chef-pedant", git: "https://github.com/chef/chef-server" -end - group(:docgen) do gem "yard" end @@ -72,7 +50,11 @@ group(:linux, :bsd, :mac_os_x, :solaris) do gem "ruby-shadow", platforms: :ruby end +# appveyor seems to need this here? +gem "bundler" + group(:development, :test) do + gem "rake" gem "simplecov" # for testing new chefstyle rules diff --git a/Gemfile.lock b/Gemfile.lock index bc7b08fcbb..df58cc30c5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,20 +1,4 @@ GIT - remote: https://github.com/chef/chef-server - revision: 07fea253ceea254af8fbd9c602a04017751cae21 - specs: - oc-chef-pedant (2.2.0) - activesupport (>= 4.2.7.1, < 6.0) - erubis (~> 2.7) - mixlib-authentication (~> 1.4) - mixlib-config (~> 2.0) - mixlib-shellout (>= 1.1) - net-http-spy (~> 0.2) - rest-client (>= 1.6) - rspec (~> 3.2) - rspec-rerun (~> 1.0) - rspec_junit_formatter (~> 0.2) - -GIT remote: https://github.com/chef/chefstyle.git revision: b2bf89dd11270e169fd2315495c98095d4a19090 branch: master @@ -36,56 +20,6 @@ GIT retriable (>= 1.4) GIT - remote: https://github.com/poise/halite.git - revision: b9b3f61682abe1c656f57b7edbbf43d918c5c16b - specs: - halite (1.5.1.pre) - bundler - chef (>= 12.0, < 14.0) - stove (~> 5.0) - thor - -GIT - remote: https://github.com/poise/poise-boiler.git - revision: 40763eaded9384b1d8d3e3db6f883613b0a3ebe2 - specs: - poise-boiler (1.14.1.pre) - bundler - chefspec (~> 5.0) - codeclimate-test-reporter (~> 0.4) - codecov (~> 0.0, >= 0.0.2) - foodcritic (>= 7, < 9) - fuubar (~> 2.0) - git (~> 1.2) - halite (~> 1.2) - kitchen-docker (>= 2.6.0.rc.0) - kitchen-ec2 (~> 1.0) - kitchen-sync (~> 2.1) - kitchen-vagrant - mixlib-shellout (>= 1.4, < 3.0) - poise-profiler (~> 1.0) - pry - pry-byebug - rake (>= 10.4, < 12.0) - rspec (~> 3.2) - rspec-its (~> 1.2) - simplecov (~> 0.9) - test-kitchen (~> 1.7, >= 1.7.1) - travis (~> 1.8, >= 1.8.1) - vagrant-wrapper - winrm (>= 1.6, < 3) - winrm-fs (>= 0.4, < 2) - yard (~> 0.8) - yard-classmethods (~> 1.0) - -GIT - remote: https://github.com/poise/poise.git - revision: 47cd0e2296fed918b30b0889ed127c824cc32d30 - specs: - poise (2.7.3.pre) - halite (~> 1.0) - -GIT remote: https://github.com/rubysec/bundler-audit.git revision: 6eb5a81e9b184fbb8db03f3e57dc758c65dd7383 specs: @@ -188,26 +122,13 @@ GEM addressable (2.4.0) appbundler (0.10.0) mixlib-cli (~> 1.4) - artifactory (2.8.1) ast (2.3.0) - aws-sdk (2.9.5) - aws-sdk-resources (= 2.9.5) - aws-sdk-core (2.9.5) - aws-sigv4 (~> 1.0) - jmespath (~> 1.0) - aws-sdk-resources (2.9.5) - aws-sdk-core (= 2.9.5) - aws-sigv4 (1.0.0) backports (3.7.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) blankslate (2.1.2.4) builder (3.2.3) byebug (9.0.6) - chef-api (0.7.0) - logify (~> 0.1) - mime-types - chef-sugar (3.4.0) chef-zero (13.0.0) ffi-yajl (~> 2.2) hashie (>= 2.0, < 4.0) @@ -217,66 +138,31 @@ GEM cheffish (13.0.0) chef-zero (~> 13.0) net-ssh - chefspec (5.4.0) - chef (>= 12.0) - fauxhai (~> 3.6) - rspec (~> 3.0) - codeclimate-test-reporter (0.6.0) - simplecov (>= 0.7.1, < 1.0.0) - codecov (0.1.10) - json - simplecov - url coderay (1.1.1) concurrent-ruby (1.0.5) - cucumber (2.4.0) - builder (>= 2.1.2) - cucumber-core (~> 1.5.0) - cucumber-wire (~> 0.0.1) - diff-lcs (>= 1.1.3) - gherkin (~> 4.0) - multi_json (>= 1.7.5, < 2.0) - multi_test (>= 0.1.2) - cucumber-core (1.5.0) - gherkin (~> 4.0) - cucumber-wire (0.0.1) debug_inspector (0.0.2) diff-lcs (1.3) docile (1.1.5) - docker-api (1.33.3) + docker-api (1.33.4) excon (>= 0.38.0) json - domain_name (0.5.20170404) - unf (>= 0.0.5, < 1.0.0) erubis (2.7.0) ethon (0.10.1) ffi (>= 1.3.0) excon (0.55.0) - faraday (0.12.0.1) + faraday (0.12.1) multipart-post (>= 1.2, < 3) faraday-http-cache (2.0.0) faraday (~> 0.8) faraday_middleware (0.11.0.1) faraday (>= 0.7.4, < 1.0) - fauxhai (3.10.0) - net-ssh ffi (1.9.18) + ffi (1.9.18-x64-mingw32) ffi (1.9.18-x86-mingw32) ffi-win32-extensions (1.0.3) ffi ffi-yajl (2.3.0) libyajl2 (~> 1.2) - foodcritic (8.2.0) - cucumber-core (>= 1.3) - erubis - nokogiri (>= 1.5, < 2.0) - rake - rufus-lru (~> 1.0) - treetop (~> 1.4) - yajl-ruby (~> 1.1) - fuubar (2.2.0) - rspec-core (~> 3.0) - ruby-progressbar (~> 1.4) fuzzyurl (0.9.0) gh (0.15.1) addressable (~> 2.4.0) @@ -285,20 +171,16 @@ GEM multi_json (~> 1.0) net-http-persistent (~> 2.9) net-http-pipeline - gherkin (4.1.1) - git (1.3.0) gssapi (1.2.0) ffi (>= 1.0.1) gyoku (1.3.1) builder (>= 2.1.2) hashie (3.5.5) highline (1.7.8) - http-cookie (1.0.3) - domain_name (~> 0.5) httpclient (2.8.3) i18n (0.8.1) iniparse (1.4.2) - inspec (1.19.1) + inspec (1.21.0) addressable (~> 2.4) faraday (>= 0.9.0) hashie (~> 3.4) @@ -306,48 +188,27 @@ GEM method_source (~> 0.8) mixlib-log parallel (~> 1.9) + parslet (~> 1.5) pry (~> 0) rainbow (~> 2) rspec (~> 3) rspec-its (~> 1.2) rubyzip (~> 1.1) - sslshake (~> 1) + sslshake (~> 1.2) thor (~> 0.19) toml (~> 0.1) train (>= 0.22.0, < 1.0) ipaddress (0.8.3) iso8601 (0.9.1) - jmespath (1.3.1) - json (2.0.3) - kitchen-docker (2.6.0) - test-kitchen (>= 1.0.0) - kitchen-ec2 (1.3.2) - aws-sdk (~> 2) - excon - multi_json - retryable (~> 2.0) - test-kitchen (~> 1.4, >= 1.4.1) - kitchen-sync (2.1.2) - net-sftp - test-kitchen (>= 1.0.0) - kitchen-vagrant (1.1.0) - test-kitchen (~> 1.4) - knife-windows (1.9.0) - winrm (~> 2.1) - winrm-elevated (~> 1.0) + json (2.1.0) launchy (2.4.3) addressable (~> 2.3) libyajl2 (1.2.0) little-plugger (1.1.4) - logging (2.2.0) + logging (2.2.2) little-plugger (~> 1.1) multi_json (~> 1.10) - logify (0.2.0) method_source (0.8.2) - mime-types (3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) - mini_portile2 (2.1.0) minitest (5.10.1) mixlib-archive (0.4.1) mixlib-log @@ -355,8 +216,7 @@ GEM mixlib-log mixlib-cli (1.7.0) mixlib-config (2.2.4) - mixlib-install (2.1.12) - artifactory + mixlib-install (3.2.0) mixlib-shellout mixlib-versioning thor @@ -367,27 +227,21 @@ GEM wmi-lite (~> 1.0) mixlib-versioning (1.1.0) multi_json (1.12.1) - multi_test (0.1.2) multipart-post (2.0.0) net-http-persistent (2.9.4) net-http-pipeline (1.0.1) - net-http-spy (0.2.1) net-scp (1.2.1) net-ssh (>= 2.6.5) net-sftp (2.1.2) net-ssh (>= 2.6.5) net-ssh (4.1.0) - net-ssh-gateway (1.3.0) - net-ssh (>= 2.6.5) + net-ssh-gateway (2.0.0) + net-ssh (>= 4.0.0) net-ssh-multi (1.2.1) net-ssh (>= 2.6.5) net-ssh-gateway (>= 1.2.0) net-telnet (0.1.1) netrc (0.11.0) - nokogiri (1.7.1) - mini_portile2 (~> 2.1.0) - nokogiri (1.7.1-x86-mingw32) - mini_portile2 (~> 2.1.0) nori (2.6.0) octokit (4.7.0) sawyer (~> 0.8.0, >= 0.5.3) @@ -409,9 +263,6 @@ GEM parslet (1.5.0) blankslate (~> 2.0) plist (3.2.0) - poise-profiler (1.0.1) - halite (~> 1.0) - polyglot (0.3.5) powerpack (0.1.1) proxifier (1.0.3) pry (0.10.4) @@ -431,20 +282,11 @@ GEM json websocket (~> 1.0) rack (2.0.1) - rainbow (2.2.1) - rake (11.3.0) + rainbow (2.2.2) + rake + rake (12.0.0) rb-readline (0.5.4) - rest-client (2.0.1) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - rest-client (2.0.1-x86-mingw32) - ffi (~> 1.9) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) retriable (3.0.1) - retryable (2.0.4) rspec (3.5.0) rspec-core (~> 3.5.0) rspec-expectations (~> 3.5.0) @@ -460,8 +302,6 @@ GEM rspec-mocks (3.5.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.5.0) - rspec-rerun (1.1.0) - rspec (~> 3.0) rspec-support (3.5.0) rspec_junit_formatter (0.2.3) builder (< 4) @@ -475,10 +315,8 @@ GEM ruby-prof (0.16.2) ruby-progressbar (1.8.1) ruby-shadow (2.5.0) - rubyntlm (0.6.1) + rubyntlm (0.6.2) rubyzip (1.2.1) - rufus-lru (1.1.0) - safe_yaml (1.0.4) sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) faraday (~> 0.8, < 1.0) @@ -494,26 +332,15 @@ GEM simplecov-html (~> 0.10.0) simplecov-html (0.10.0) slop (3.6.0) - specinfra (2.67.7) + specinfra (2.67.8) net-scp net-ssh (>= 2.7, < 5.0) net-telnet sfl - sslshake (1.1.0) - stove (5.1.0) - chef-api (~> 0.5) - logify (~> 0.2) + sslshake (1.2.0) syslog-logger (1.6.8) systemu (2.6.5) - test-kitchen (1.16.0) - mixlib-install (>= 1.2, < 3.0) - mixlib-shellout (>= 1.2, < 3.0) - net-scp (~> 1.1) - net-ssh (>= 2.9, < 5.0) - net-ssh-gateway (~> 1.2) - safe_yaml (~> 1.0) - thor (~> 0.19, < 0.19.2) - thor (0.19.1) + thor (0.19.4) thread_safe (0.3.6) toml (0.1.2) parslet (~> 1.5.0) @@ -535,20 +362,12 @@ GEM launchy (~> 2.1) pusher-client (~> 0.4) typhoeus (~> 0.6, >= 0.6.8) - treetop (1.6.8) - polyglot (~> 0.3) typhoeus (0.8.0) ethon (>= 0.8.0) tzinfo (1.2.3) thread_safe (~> 0.1) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.2) - unf_ext (0.0.7.2-x86-mingw32) - unicode-display_width (1.1.3) - url (0.3.2) + unicode-display_width (1.2.1) uuidtools (2.1.5) - vagrant-wrapper (2.0.3) websocket (1.2.4) win32-api (1.5.3-universal-mingw32) win32-dir (0.5.1) @@ -570,7 +389,7 @@ GEM ffi-win32-extensions windows-api (0.4.4) win32-api (>= 1.4.5) - winrm (2.2.1) + winrm (2.2.2) builder (>= 2.1.2) erubis (~> 2.7) gssapi (~> 1.2) @@ -579,22 +398,17 @@ GEM logging (>= 1.6.1, < 3.0) nori (~> 2.0) rubyntlm (~> 0.6.0, >= 0.6.1) - winrm-elevated (1.1.0) - winrm (~> 2.0) - winrm-fs (~> 1.0) winrm-fs (1.0.1) erubis (~> 2.7) logging (>= 1.6.1, < 3.0) rubyzip (~> 1.1) winrm (~> 2.0) wmi-lite (1.0.0) - yajl-ruby (1.3.0) - yard (0.9.8) - yard-classmethods (1.0.0) - yard + yard (0.9.9) PLATFORMS ruby + x64-mingw32 x86-mingw32 DEPENDENCIES @@ -603,23 +417,14 @@ DEPENDENCIES bundler-audit! chef! chef-config! - chef-sugar cheffish (~> 13) - chefspec chefstyle! - cucumber (>= 2.4.0) - foodcritic github_changelog_generator! - halite! inspec - knife-windows mixlib-install netrc - oc-chef-pedant! octokit ohai (~> 13) - poise! - poise-boiler! pry pry-byebug pry-remote diff --git a/appveyor.yml b/appveyor.yml index c4d7dfcffc..0ec136a574 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -27,14 +27,14 @@ install: - ps: $env:OMNIBUS_BUNDLER=$(findstr bundler omnibus_overrides.rb | %{ $_.split(" ")[3] }) - echo %OMNIBUS_BUNDLER% - ruby --version + - gem --version + - bundler --version - gem uninstall bundler -a -x - gem update --system %OMNIBUS_RUBYGEMS% || gem update --system %OMNIBUS_RUBYGEMS% || gem update --system %OMNIBUS_RUBYGEMS% - gem install bundler -v %OMNIBUS_BUNDLER% --quiet --no-ri --no-rdoc || gem install bundler -v %OMNIBUS_BUNDLER% --quiet --no-ri --no-rdoc || gem install bundler -v %OMNIBUS_BUNDLER% --quiet --no-ri --no-rdoc - gem --version - bundler --version - - SET BUNDLE_IGNORE_CONFIG=true - - SET BUNDLE_FROZEN=1 - - SET BUNDLE_WITHOUT=development:guard:maintenance:tools:integration:ci:docgen:travis:style:omnibus_package:aix:bsd:linux:mac_os_x:solaris + - SET BUNDLE_WITHOUT=guard:maintenance:tools:integration:ci:docgen:travis:style:omnibus_package:aix:bsd:linux:mac_os_x:solaris - appveyor DownloadFile http://curl.haxx.se/ca/cacert.pem -FileName C:\cacert.pem - set SSL_CERT_FILE=C:\cacert.pem diff --git a/chef-config/spec/unit/fips_spec.rb b/chef-config/spec/unit/fips_spec.rb index cf5af22ef1..d53096cead 100644 --- a/chef-config/spec/unit/fips_spec.rb +++ b/chef-config/spec/unit/fips_spec.rb @@ -1,6 +1,6 @@ # # Author:: Matt Wrock (<matt@mattwrock.com>) -# Copyright:: Copyright (c) 2016 Chef Software, Inc. +# Copyright:: Copyright (c) 2016-2017, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,6 +19,12 @@ require "chef-config/fips" require "spec_helper" +begin + require "win32/registry" +rescue LoadError + # not on unix +end + RSpec.describe "ChefConfig.fips?" do let(:enabled) { "0" } diff --git a/omnibus_overrides.rb b/omnibus_overrides.rb index 0409c2a1bc..69617a4eac 100644 --- a/omnibus_overrides.rb +++ b/omnibus_overrides.rb @@ -1,6 +1,6 @@ # DO NOT EDIT. Generated by "rake dependencies". Edit version_policy.rb instead. override :rubygems, version: "2.6.11" -override :bundler, version: "1.12.5" +override :bundler, version: "1.14.6" override "libffi", version: "3.2.1" override "libiconv", version: "1.14" override "liblzma", version: "5.2.3" diff --git a/tasks/bin/run_external_test b/tasks/bin/run_external_test index 74f76d3229..1925c3e125 100755 --- a/tasks/bin/run_external_test +++ b/tasks/bin/run_external_test @@ -1,47 +1,25 @@ -#!/bin/bash +#!/usr/bin/env ruby -# Fail fast (e) and echo commands (vx) -set -evx +$:.unshift(File.expand_path("../../lib", File.dirname(__FILE__))) -# Arguments -TEST_GEM=$1 -shift +require "tmpdir" +require "bundler" +require "chef/mixin/shell_out" -PROJECT_ROOT=$(pwd) -PROJECT_BUNDLE_PATH=${BUNDLE_PATH:-$(grep BUNDLE_PATH: $PROJECT_ROOT/.bundle/config | cut -d' ' -f2-)} -if [ -n "$PROJECT_BUNDLE_PATH" ]; then - PROJECT_BUNDLE_PATH=$PROJECT_ROOT/$PROJECT_BUNDLE_PATH -fi +include Chef::Mixin::ShellOut -TEST_GEM_ROOT=$(bundle show $TEST_GEM) +github_repo = ARGV.shift +git_thing = ARGV.shift -# Make a copy of the original Gemfile and stitch in our Gemfile.lock -TEST_GEMFILE=$TEST_GEM_ROOT/Gemfile -MODIFIED_TEST_GEMFILE=$TEST_GEMFILE.externaltest -cat <<EOM > $MODIFIED_TEST_GEMFILE -require_relative "$PROJECT_ROOT/tasks/gemfile_util" -GemfileUtil.include_locked_gemfile(self, "$PROJECT_ROOT/Gemfile", gems: ["$TEST_GEM"] + "$TEST_WITH_GEMS".split(/\s+/)) -$TEST_GEM_OVERRIDES -EOM -cat $TEST_GEMFILE >> $MODIFIED_TEST_GEMFILE -if [ -f $TEST_GEMFILE.lock ]; then - cp $TEST_GEMFILE.lock $MODIFIED_TEST_GEMFILE.lock -elif [ -f $MODIFIED_TEST_GEMFILE.lock ]; then - rm -f $MODIFIED_TEST_GEMFILE.lock -fi - -# Run the bundle install -cd $TEST_GEM_ROOT -export BUNDLE_GEMFILE=$MODIFIED_TEST_GEMFILE -# Don't read from the project .bundle/config, just our env vars -export BUNDLE_IGNORE_CONFIG=true -# Use the top level bundle cache so we don't have to reinstall their packages -if [ -n "$PROJECT_BUNDLE_PATH" ]; then - export BUNDLE_PATH=$PROJECT_BUNDLE_PATH -fi -export BUNDLE_FROZEN= -bundle install -export BUNDLE_FROZEN=true - -bundle config -bundle exec $@ +Dir.mktmpdir("chef-external-test") do |dir| + git_url = "https://github.com/#{github_repo}" + Dir.rmdir dir + shell_out!("git clone #{git_url} #{dir}", live_stream: STDOUT) + Dir.chdir(dir) do + shell_out!("git checkout #{git_thing}", live_stream: STDOUT) + Bundler.with_clean_env do + shell_out!("bundle install", live_stream: STDOUT) + shell_out!("bundle exec #{ARGV.join(" ")}", live_stream: STDOUT) + end + end +end diff --git a/tasks/bundle.rb b/tasks/bundle.rb index 0e9b207932..db1bbde4b2 100644 --- a/tasks/bundle.rb +++ b/tasks/bundle.rb @@ -24,9 +24,7 @@ namespace :bundle do task :update, [:args] do |t, rake_args| args = rake_args[:args] || "" Bundler.with_clean_env do - sh "bundle config --local frozen '0'" sh "bundle update #{args}" - sh "bundle config --local frozen '1'" end end @@ -35,9 +33,7 @@ namespace :bundle do args = rake_args[:args] || "" args = rake_args[:args] || "" Bundler.with_clean_env do - sh "bundle config --local frozen '0'" sh "bundle install #{args}" - sh "bundle config --local frozen '1'" end end @@ -57,10 +53,8 @@ namespace :bundle do task :outdated do bundle_outdated = "" Bundler.with_clean_env do - sh "bundle config --local frozen '0'" bundle_outdated = `bundle outdated` puts bundle_outdated - sh "bundle config --local frozen '1'" end outdated_gems = parse_bundle_outdated(bundle_outdated).map { |line, gem_name| gem_name } outdated_gems = outdated_gems.reject { |gem_name| ACCEPTABLE_OUTDATED_GEMS.include?(gem_name) } @@ -74,8 +68,6 @@ desc "Run bundle with arbitrary args" task :bundle, [:args] do |t, rake_args| args = rake_args[:args] || "" Bundler.with_clean_env do - sh "bundle config --local frozen '0'" sh "bundle #{args}" - sh "bundle config --local frozen '1'" end end diff --git a/tasks/dependencies.rb b/tasks/dependencies.rb index 2118644b12..e6e11c0235 100644 --- a/tasks/dependencies.rb +++ b/tasks/dependencies.rb @@ -51,10 +51,10 @@ namespace :dependencies do task task_name do Dir.chdir(dir) do Bundler.with_clean_env do - sh "bundle config --local frozen '0'" + rm_f "#{dir}/Gemfile.lock" sh "bundle lock --update --add-platform ruby" + sh "bundle lock --update --add-platform x64-mingw32" sh "bundle lock --update --add-platform x86-mingw32" - sh "bundle config --local frozen '1'" end end end diff --git a/version_policy.rb b/version_policy.rb index 39bc81f2fa..6552d51305 100644 --- a/version_policy.rb +++ b/version_policy.rb @@ -20,7 +20,7 @@ OMNIBUS_OVERRIDES = { # Lower level library pins ## according to comment in omnibus-sw, latest versions don't work on solaris # https://github.com/chef/omnibus-software/blob/aefb7e79d29ca746c3f843673ef5e317fa3cba54/config/software/libtool.rb#L23 - :bundler => "1.12.5", # until we figure out how to work with 1.13.0 + :bundler => "1.14.6", "libffi" => "3.2.1", "libiconv" => "1.14", "liblzma" => "5.2.2", |