summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add new chef_sleep resourceTim Smith2019-11-083-0/+72
| | | | | | | | | | | We highly recommend you never use this, but there's times when you 100% need to have the client sleep for a period of time after some work. Example: windows_service will start a service and the OS will say that it's "started" when it's not. Before doing additional work that relies on the service being started you may need to sleep. This would be a good time to notify on the restart or start action. Signed-off-by: Tim Smith <tsmith@chef.io>
* Bump version to 15.4.70 by Chef Expeditorv15.4.70Chef Expeditor2019-11-087-19/+20
| | | | Obvious fix; these changes are the result of automation not creative thinking.
* Add chef-utils gem with various recipe DSL helpers (#8922)Lamont Granquist2019-11-08199-844/+3954
|\ | | | | Add chef-utils gem with various recipe DSL helpers
| * Add chef-utils gem with various recipe DSL helpersLamont Granquist2019-11-08199-844/+3954
|/ | | | | | | | | | | | | This is the implementation of [RFC-087](https://github.com/chef-boneyard/chef-rfc/blob/master/rfc087-distro-sugar-helpers.md) although some of the specifics have been iterated on and changed. The documentation will be in the [README.md](https://github.com/chef/chef/tree/master/chef-utils/README.md) once this is merged. While this PR mostly moves chef-sugar utilities into core-chef via this chef-utils gem, the scope of the chef-utils gem should be considered larger than just that. As an example this PR moves the Mash class into this gem for reuse in ohai as well. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Bump version to 15.4.69 by Chef Expeditorv15.4.69Chef Expeditor2019-11-066-14/+15
| | | | Obvious fix; these changes are the result of automation not creative thinking.
* Merge pull request #9061 from chef/judicious-error-throwingTim Smith2019-11-065-12/+26
|\ | | | | fix the habitat package promotion tests
| * increase timeout; the Windows hab tests take a long timejudicious-error-throwingRobb Kidd2019-11-051-0/+8
| | | | | | | | Signed-off-by: Robb Kidd <robb@thekidds.org>
| * move minimum hab check/install to a reusable scriptRobb Kidd2019-11-053-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And use it in both the verify/habitat and habitat/test pipelines. verify/habitat needs hab >= 0.85 to both build with environment variables that don't include the studio path[1] and to binlink the runtime with stubs that include the package and system environment.[2] habitat/test needs hab >= 0.85 to binlink the runtime with stubs that include the package and system environment. [1] https://github.com/habitat-sh/habitat/pull/6850 [2] https://github.com/habitat-sh/habitat/pull/6826 Signed-off-by: Robb Kidd <robb@thekidds.org>
| * because we're binlinking, ensure \hab\bin is in the PATHRobb Kidd2019-11-051-1/+2
| | | | | | | | | | | | | | | | | | Test hosts haven't necessarily had "hab setup" run for \hab\bin to be on the system PATH. For the purposes on this test, we would like that to be the case. So, put Hab's bin directory at the start of the PATH and carry on. Signed-off-by: Robb Kidd <robb@thekidds.org>
| * add more error checks to hab package testsRobb Kidd2019-11-052-1/+3
| | | | | | | | | | | | | | | | The PowerShell scripts calling PowerShell scripts was apparently swallowing the errors being thrown from inner layers. Check the error level of those scripts and throw another error if need be. Signed-off-by: Robb Kidd <robb@thekidds.org>
* | Bump version to 15.4.68 by Chef Expeditorv15.4.68Chef Expeditor2019-11-066-14/+15
| | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | Merge pull request #9070 from chef/lcg/remove-useless-codeTim Smith2019-11-051-3/+0
|\ \ | | | | | | Remove useless search arg mangling
| * | Remove useless search arg manglingLamont Granquist2019-11-051-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't actually do anything and repetitively confuses me every 6 months when I look at it. Array#pop(0) does nothing at all (in python it removes the first element from the list): [2] pry(main)> a = [ 1, 2, 3 ] => [1, 2, 3] [3] pry(main)> a.pop(0) => [] [4] pry(main)> a => [1, 2, 3] Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* | | Bump version to 15.4.67 by Chef Expeditorv15.4.67Chef Expeditor2019-11-056-18/+20
| | | | | | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | | dist constants in win logs (#9058)Lamont Granquist2019-11-043-5/+19
|\ \ \ | | | | | | | | dist constants in win logs
| * | | dist constants in win logsMarc Chamberland2019-11-043-5/+19
|/ / / | | | | | | | | | Signed-off-by: Marc Chamberland <chamberland.marc@gmail.com>
* | | Bump version to 15.4.66 by Chef Expeditorv15.4.66Chef Expeditor2019-11-056-14/+15
| | | | | | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | | Merge pull request #9047 from jaymzh/fix_enableLamont Granquist2019-11-046-8/+113
|\ \ \ | | | | | | | | service/systemd_unit: Don't try to reenable services in an indirect status
| * | | Fix enable on indirect unitsPhil Dibowitz2019-11-046-8/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows this `is_masked` path to ensure we don't try to enable OR disable systemd units if they are indirect Fixes #9041 Signed-off-by: Phil Dibowitz <phil@ipom.com>
* | | | Bump version to 15.4.65 by Chef Expeditorv15.4.65Chef Expeditor2019-11-046-14/+15
| | | | | | | | | | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | | | Updates for Chefstyle with Rubocop 0.75.1 (#9055)Lamont Granquist2019-11-048-10/+10
|\ \ \ \ | |_|/ / |/| | | Updates for Chefstyle with Rubocop 0.75.1
| * | | Updates for Chefstyle with Rubocop 0.75.1Tim Smith2019-11-048-10/+10
|/ / / | | | | | | | | | | | | | | | This update found a few things that should have been triggering before. Signed-off-by: Tim Smith <tsmith@chef.io>
* | | Bump version to 15.4.64 by Chef Expeditorv15.4.64Chef Expeditor2019-11-046-14/+15
| | | | | | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | | Merge pull request #9054 from chef/bump_lib_depsBryan McLellan2019-11-042-5/+5
|\ \ \ | |_|/ |/| | Update lixml2, libxslt, and nokogiri to the latest
| * | Update lixml2, libxslt, and nokogiri to the latestbump_lib_depsTim Smith2019-11-042-5/+5
|/ / | | | | | | | | | | Resolve multiple CVEs in these libs Signed-off-by: Tim Smith <tsmith@chef.io>
* | Bump version to 15.4.63 by Chef Expeditorv15.4.63Chef Expeditor2019-11-046-14/+15
| | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | systemd_unit needs to log (#9046)Lamont Granquist2019-11-041-0/+12
|\ \ | | | | | | systemd_unit needs to log
| * | systemd_unit needs to logPhil Dibowitz2019-11-011-0/+12
| |/ | | | | | | | | | | closes #9045 Signed-off-by: Phil Dibowitz <phil@ipom.com>
* | Bump version to 15.4.62 by Chef Expeditorv15.4.62Chef Expeditor2019-11-046-14/+15
| | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | Merge pull request #9050 from chef/jsinha/update_omni2Bryan McLellan2019-11-041-2/+2
|\ \ | | | | | | Update omnibus
| * | Update omnibusJaymala Sinha2019-11-041-2/+2
|/ / | | | | | | Signed-off-by: Jaymala Sinha <jsinha@chef.io>
* | Bump version to 15.4.61 by Chef Expeditorv15.4.61Chef Expeditor2019-11-036-14/+15
| | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | Merge pull request #9049 from ↵Tim Smith2019-11-032-1/+9
|\ \ | | | | | | | | | | | | MsysTechnologiesllc/VSingh/MSYS-1141_knife_config_get_conf_d_fixes [knife config get] Fix TypeError: no implicit conversion of nil into String
| * | Fix TypeError: no implicit conversion of nil into StringVivek Singh2019-11-032-1/+9
|/ / | | | | | | | | | |  - Now showing relevant logs for config.d configuration files. Signed-off-by: Vivek Singh <vivek.singh@msystechnologies.com>
* | Bump version to 15.4.60 by Chef Expeditorv15.4.60Chef Expeditor2019-11-036-14/+15
| | | | | | | | Obvious fix; these changes are the result of automation not creative thinking.
* | Merge pull request #9048 from chef/btm/bump-omnibusTim Smith2019-11-021-2/+2
|\ \ | |/ |/| Bump omnibus to 6.1.10
| * Bump omnibus to 6.1.10Bryan McLellan2019-11-021-2/+2
|/ | | | | | Pull in fix https://github.com/chef/omnibus/pull/910 Signed-off-by: Bryan McLellan <btm@chef.io>
* Merge pull request #9044 from chef/robb/include-target-platform-in-promotionBryan McLellan2019-11-011-1/+1
|\ | | | | [ci] include the platform target in the hab package promotion command
| * include the platform target in the package promotion commandRobb Kidd2019-11-011-1/+1
|/ | | | | | | Or else it won't work when there are multiple platform targets for a package. Signed-off-by: Robb Kidd <robb@thekidds.org>
* Bump version to 15.4.59 by Chef Expeditorv15.4.59Chef Expeditor2019-11-016-14/+15
| | | | Obvious fix; these changes are the result of automation not creative thinking.
* Merge pull request #8900 from robbkidd/habiwindochefBryan McLellan2019-11-0111-27/+324
|\ | | | | a Windows Habitat plan
| * only install hab 0.85 if not already installedhabiwindochefRobb Kidd2019-11-011-3/+10
| | | | | | | | Signed-off-by: Robb Kidd <robb@thekidds.org>
| * disconnect hab promotion from omnibus pipelineRobb Kidd2019-11-012-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed the promote_hab_package actions from the omnibus release workloads. Defined a new workload subscribed to BuildKite successfully publishing to unstable packages for all platforms listed in .bldr.toml. The habitat/test pipeline is now responsible for testing the unstable packages just built and promoting them if they all pass. Currently scoped only to the Windows package because the Linux packages don't test well yet. Co-authored-by: Jeremiah Snapp <jeremiah.snapp@gmail.com> Signed-off-by: Robb Kidd <robb@thekidds.org>
| * add Windows to the target build platformsRobb Kidd2019-11-011-1/+2
| | | | | | | | | | | | | | | | Expeditor uses this to know for which platforms to crank out packages. https://expeditor.chef.io/docs/patterns/habitat-packages/#bldr-toml Signed-off-by: Robb Kidd <robb@thekidds.org>
| * disable choco specs directlyRobb Kidd2019-11-011-4/+2
| | | | | | | | | | | | | | | | We can disable the :choco_installed specs directly in the execution of RSpec instead of deleting the choco.exe binary from the test system to fool the "filter_run_excluding choco_installed" config in spec_helper. Signed-off-by: Robb Kidd <robb@thekidds.org>
| * add tests for the Windows habitat planRobb Kidd2019-11-015-0/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a test PowersShell script to habitat/tests/ to run some simple tests on executable version output and then run the functional specs suite like the omnibus_test script does. scripts/ci/verify-plan.ps1 will perform a throwaway build of the plan under a "ci" origin and then run the test script upon the built package. The habitat/verify pipeline was updated to run the verify-plan.ps1 script. Signed-off-by: Robb Kidd <robb@thekidds.org> add Windows plan verification to verify-hab pipeline Signed-off-by: Robb Kidd <robb@thekidds.org>
| * add a label to the version command specsRobb Kidd2019-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | These fail in the Habitat plan verification tests because bundle isn't on the PATH for Windows builds (bundle.cmd is). Adding a label to the spec lets testing chose whether to run it or not. Default is that the specs are included in a test run. Signed-off-by: Robb Kidd <robb@thekidds.org>
| * force that yajl, yoRobb Kidd2019-11-011-0/+1
| | | | | | | | | | | | | | | | Tell ffi-yajl to use the C-extensions we know are there because we depend on MRI. C is fast, y'know, and we don't need the FFI portability for other Ruby runtimes. Signed-off-by: Robb Kidd <robb@thekidds.org>
| * prevent appbundler from clearing GEM_PATHRobb Kidd2019-11-011-0/+1
| | | | | | | | Signed-off-by: Robb Kidd <robb@thekidds.org>
| * a plan for Windows!Robb Kidd2019-11-011-0/+138
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on Stuart Preston's work. Currently depends on the very large ruby-plus-devkit package[1] that is a repackaging of RubyInstaller+DevKit[2]. The DevKit is essentially MSYS2, which is its own software distribution. It can get large. It is depended on currently because it RubyInstaller+DevKit has been the most common Ruby on Windows solution for build environment and library ecosystem. Whatever Ruby this plan ultimately depends on is expected to have its executables on the PATH and any gems it ships with (say, bundler, rake, etc) added to GEM_PATH which is totally a thing a package can do in SetupEnvironment and pushing directories onto GEM_HOME. [1] https://bldr.habitat.sh/#/pkgs/chef/ruby-plus-devkit https://github.com/chef/chef-plans/tree/master/ruby-plus-devkit [2] https://rubyinstaller.org/about/comparison/ * bundle install'ing With core/git not being fully capable of supporting a `bundle install` because of semi-hardcoded paths to binaries, git is baked into the "devkit" portion of Chef's chef/ruby-plus-devkit. That means `bundle install` works, so this build uses a pattern established in the chef omnibus software definition: 1. bundle install the Ruby dependencies 2. gem install the local gems 3. install the git-ref'd gems At the end of these steps, all the gems are "installed" in the standard directories under GEM_HOME/gems and binstubs are in GEM_HOME/bin. * add the other Ruby binstubs to the PATH Gems got their bundle/gem installed binstubs placed in GEM_HOME/bin a.k.a vendor/bin. That path has been added to the package's bin paths for use in the build and later in testing. Appbundler is executed in Invoke-Install to create our precisely-pinned binstubs for only the gems that supply executables we expect users of chef-client to use. Those appbundled binstubs are placed into the package's bin directory under $pkg_prefix/bin. While the binstubs under vendor/bin aren't locked down with appbundler, they're worth having on the PATH, particularly for testing the build. * Trimming the Fat Remove many of the byproducts of gems that appear in $pkg_prefix. Some C-extension build logs. Other gems' spec directories. We keep the chef gem's spec directory because we will be testing builds with the functional portion of the test suite. * Stripping the FS_ROOT The studio's FS_ROOT appears in the Gemfiles generated by appbundler. Added a function to remove the build environment's FS_ROOT from a given file. Currently only using it on the chef gem's Gemfile so that it can be used with `bundle install` and `bundle exec` to test the build. * build in "${HAB_CACHE_SRC_PATH}/${pkg_dirname}" "${HAB_CACHE_SRC_PATH}/${pkg_dirname}" is $CACHE_PATH, but we can't use CACHE_PATH directly because it seems the Windows plan build script doesn't actually set that variable unless pkg_version is computed and updated; probably a bug, need to investigate. Mainly opted for this to take advantage of the clean-room features of builds done in the CACHE directory. Use git to archive up only the version-controlled files and place that archive where Hab would normally download a source artifact. Set the $pkg_filename so the plan build knows what to archive and unpack. No-Op the Verify function because the archive "downloaded" was just created. For Install, set the location of the Gemfile for bundler via an environment variable instead of a `bundle config --local` command so that there is no need to clean up the generated `.bundle/config`. * have the plan check for a minimum hab version The Windows plan must be built with Hab version 0.85.0 or greater because of its use of the -IsPath option when setting/pushing paths in SetupEnvironment. This change adds a version check to the Begin build callback to bail with an informative error message when the required minimum version isn't present. Otherwise, the error that appears is the slightly arcane: ``` An error occured in the build! You cannot call a method on a null-valued expression. At C:\hab\pkgs\core\hab-studio\0.83.0\20190712234514\bin\hab-plan-build.ps1:1447 char:5 + $pathArray = $path.Split($separator) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvokeMethodOnNull ``` Co-authored-by: Stuart Preston <stuart@chef.io> Co-authored-by: John Snow <thelunaticscripter@outlook.com> Signed-off-by: Robb Kidd <robb@thekidds.org>