diff options
author | Lamont Granquist <lamont@chef.io> | 2019-07-31 20:28:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-31 20:28:36 -0700 |
commit | 44ceee9dc7a21fb0d0f708bb3f7378d44ba6c8d9 (patch) | |
tree | d1d944d3003456d4677cd6e9147ce47e839a656a | |
parent | 5f62bda7e41c4d8629e0d79781dce6de4124cbca (diff) | |
parent | 4791e41fdcdc68cdb1b47459f052a23e14ac00ef (diff) | |
download | chef-44ceee9dc7a21fb0d0f708bb3f7378d44ba6c8d9.tar.gz |
Remove Travis / Jenkins config / docs (#8786)
Remove Travis / Jenkins config / docs
-rw-r--r-- | .travis.yml | 227 | ||||
-rw-r--r-- | CONTRIBUTING.md | 4 | ||||
-rw-r--r-- | docs/dev/design_documents/how_chef_is_tested_and_built.md | 13 | ||||
-rw-r--r-- | docs/dev/how_to/releasing_chef_infra.md | 2 | ||||
-rw-r--r-- | kitchen-tests/README.md | 8 | ||||
-rw-r--r-- | kitchen-tests/cookbooks/end_to_end/recipes/default.rb | 4 | ||||
-rwxr-xr-x | tasks/bin/run_external_test | 2 |
7 files changed, 16 insertions, 244 deletions
diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2d711f7e10..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,227 +0,0 @@ -language: ruby -cache: bundler -dist: trusty - -# Early warning system to catch if Rubygems breaks something -before_install: - - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - - gem --version - # travis may preinstall a bundler gem which is later than the one which we pin, which may totally hose us, so we preemtively - # uninstall anything they may have installed here. if they haven't installed anything then we have to ignore the failure - # to uninstall the default bundler that ships embedded in ruby itself. - - rvm @global do gem uninstall bundler -a -x || true - - gem install bundler -v $(grep :bundler omnibus_overrides.rb | cut -d'"' -f2) - - bundle --version - - rm -f .bundle/config - -before_script: - # necessary for sudo: true tests, ingore failures on tests invoked with sudo: false - - sudo sed -i -e 's/^Defaults\tsecure_path.*$//' /etc/sudoers - -# do not run expensive spec tests on PRs, only on branches -branches: - only: - - master - - chef-14 - -env: - global: - - FORCE_FFI_YAJL=ext - - CHEF_LICENSE="accept-no-persist" - -matrix: - include: - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-amazonlinux-2 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - AMAZON=2 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-amazonlinux - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - AMAZON=201X - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-ubuntu-1604 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - UBUNTU=16.04 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-ubuntu-1804 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - UBUNTU=18.04 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-debian-8 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - DEBIAN=8 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-debian-9 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - DEBIAN=9 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-debian-10 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - DEBIAN=10 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-centos-6 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - CENTOS=6 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-centos-7 - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - CENTOS=7 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-fedora-latest - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - FEDORA=latest - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - services: docker - gemfile: kitchen-tests/Gemfile - 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) - before_script: - - sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER ) - - cd kitchen-tests - script: - - bundle exec kitchen test end-to-end-opensuse-leap - after_failure: - - cat .kitchen/logs/kitchen.log - env: - - OPENSUSELEAP=42 - - KITCHEN_YAML=kitchen.yml - - rvm: 2.6.3 - before_install: - - gem update --system $(grep rubygems omnibus_overrides.rb | cut -d'"' -f2) - - rvm @global do gem uninstall bundler -a -x || true - - gem install bundler -v $(grep :bundler omnibus_overrides.rb | cut -d'"' -f2) - - sudo apt-get update - - sudo apt-get -y install squid3 git curl - env: - - PROXY_TESTS_DIR=proxy_tests/files/default/scripts - - PROXY_TESTS_REPO=$PROXY_TESTS_DIR/repo - script: - - bundle exec chef-client --version - - git clone https://github.com/chef/proxy_tests.git - - rvmsudo -E bundle exec bash $PROXY_TESTS_DIR/run_tests.sh chef_client \* \* /tmp/out.txt - after_script: - - cat /tmp/out.txt - - sudo cat /var/log/squid3/cache.log - - sudo cat /var/log/squid3/access.log diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aa154feb11..b9fb99a34b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ We have a 3 step process for contributions: Chef Projects are built to last. We strive to ensure high quality throughout the experience. In order to ensure this, we require that all pull requests to Chef projects meet these specifications: 1. **Tests:** To ensure high quality code and protect against future regressions, we require all the code in Chef Projects to have at least unit test coverage. We use [RSpec](http://rspec.info/) for unit testing. -2. **Green CI Tests:** We use [Travis CI](https://travis-ci.org/) and/or [AppVeyor](https://www.appveyor.com/) CI systems to test all pull requests. We require these test runs to succeed on every pull request before being merged. +2. **Green CI Tests:** We use [Buildkite](https://buildkite.com/chef-oss) to test all pull requests. We require these test runs to succeed on every pull request before being merged. ### Code Review Process @@ -62,7 +62,7 @@ By making a contribution to this project, I certify that: (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open - source license and I have the right under that license to + source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as diff --git a/docs/dev/design_documents/how_chef_is_tested_and_built.md b/docs/dev/design_documents/how_chef_is_tested_and_built.md index 94fbaa8051..06307ee366 100644 --- a/docs/dev/design_documents/how_chef_is_tested_and_built.md +++ b/docs/dev/design_documents/how_chef_is_tested_and_built.md @@ -15,9 +15,8 @@ We can't just merge any old change, so we run various checks against your submit - Unit, functional, and integration tests on all supported Ruby releases. These run on Ubuntu, CentOS and openSUSE so we can make sure our functional / integration tests run on the platforms where user's consume Chef Infra. - Chefstyle Ruby linting - Unit tests from chef-sugar, chef-zero, cheffish, chefspec, and knife-windows against the chef code in your PR - - **Travis**: - We run full Test Kitchen integration tests that covers common Chef usage on various different Linux Distros in Travis-CI. Those integration tests run using the kitchen-dokken plugin and the dokken-images Docker containers, which do their best to replicate a real Linux system. You can see the exactly what we test here: https://github.com/chef/chef/blob/master/kitchen-tests/cookbooks/end_to_end/recipes/default.rb - - **Appveyor**: Buildkite & Travis do a great job of testing PRs against Linux hosts, but many rspec tests require a Windows system to run, and for this, we test in Appveyor. In Appveyor, we run our unit, integration, and functional specs against our supported Ruby releases, but this time, we do it on Windows. + - Full Test Kitchen integration tests that covers common Chef usage on various different Linux Distros. Those integration tests run using the kitchen-dokken plugin and the dokken-images Docker containers, which do their best to replicate a real Linux system. You can see the exactly what we test here: https://github.com/chef/chef/blob/master/kitchen-tests/cookbooks/end_to_end/recipes/default.rb + - **Appveyor**: Buildkite does a great job of testing PRs against Linux hosts, but many rspec tests require a Windows system to run, and for this, we test in Appveyor. In Appveyor, we run our unit, integration, and functional specs against our supported Ruby releases, but this time, we do it on Windows. ## PR is Reviewed and Merged @@ -29,12 +28,12 @@ Your PR will be reviewed for Chef and Ruby correctness, overall design, and like Every commit that we merge into Chef Infra should be ready to release. In order to ensure that's possible, each merged PR increments the patch version of the application and is noted in the changelog. This is performed automatically by our Expeditor tool. If you'd like to avoid one or both of these steps, there are Expeditor GitHub issue labels that can be applied to skip either. -## Jenkins Build / Test +## Buildkite Build / Test Pipeline -Once the version has been incremented, Expeditor will begin a build matrix in our internal Jenkins CI cluster. In Jenkins, we build omnibus-based system packages of Chef Infra for multiple platforms, distros, and architectures. Each of the platforms we build are those which will eventually be available on our downloads site if this build is successful and later promoted. Upon completion, builds are promoted to the `unstable` channel and are available to any system supporting our Omnitruck API (Test Kitchen, mixlib-install, etc). +Once the version has been incremented, Expeditor will begin a build matrix in our internal Buildkite pipeline. In Buiildkitie, we build omnibus-based system packages of Chef Infra for multiple platforms, distros, and architectures. Each of the platforms we build are those which will eventually be available on our downloads site if this build is successful and later promoted. Upon completion, builds are promoted to the `unstable` channel and are available to any system supporting our Omnitruck API (Test Kitchen, mixlib-install, etc). -Once the builds complete, Jenkins will move to the test phase where each of these builds will be verified on all the platforms that Chef officially supports. For many build artifacts, this means the artifact tests on multiple versions of the same platform. For example, Chef is built on Windows 2012 R2, yet tests are run on 2008, 2012, 2012 R2, and 2016 to ensure full compatibility. In total, this phase includes nearly three dozen test nodes. Assuming all tests pass, the build will be promoted to the `current` channel, which is available on the downloads site, in addition to being available via the Omnitruck API. +Once the builds complete, Buildkite will move to the test phase where each of these builds will be verified on all the platforms that Chef officially supports. For many build artifacts, this means the artifact tests on multiple versions of the same platform. For example, Chef is built on Windows 2012 R2, yet tests are run on 2008, 2012, 2012 R2, and 2016 to ensure full compatibility. In total, this phase includes nearly three dozen test nodes. Assuming all tests pass, the build will be promoted to the `current` channel, which is available on the downloads site, in addition to being available via the Omnitruck API. ## Releasing Chef -Once a build has been blessed by our Jenkins gauntlet and everyone has agreed that we are ready to release, an artifact can be promoted from current to stable channels. For the complete release process see [Releasing Chef Infra Client](../how_to/releasing_chef_infra.md) +Once a build has been blessed by our Buildkite gauntlet and everyone has agreed that we are ready to release, an artifact can be promoted from current to stable channels. For the complete release process see [Releasing Chef Infra Client](../how_to/releasing_chef_infra.md) diff --git a/docs/dev/how_to/releasing_chef_infra.md b/docs/dev/how_to/releasing_chef_infra.md index eee8d9abba..8ff2165351 100644 --- a/docs/dev/how_to/releasing_chef_infra.md +++ b/docs/dev/how_to/releasing_chef_infra.md @@ -51,7 +51,7 @@ Also, make sure to announce the build on any social media platforms that you occ ### Update homebrew Content -Many of our users consume Chef via Homebrew using our casks. Make sure to update those here: https://github.com/chef/homebrew-chef +Many of our users consume Chef via Homebrew using our casks. Expeditor will create a pull request to update the Chef Homebrew cask, which will need to be merged here: https://github.com/chef/homebrew-chef ### Update Chocolatey Packages diff --git a/kitchen-tests/README.md b/kitchen-tests/README.md index d87c3a0ecb..99ab9b0cfe 100644 --- a/kitchen-tests/README.md +++ b/kitchen-tests/README.md @@ -1,6 +1,6 @@ -# End-To-End Testing for Chef Client +# End-To-End Testing for Chef Infra Client -Here we seek to provide end-to-end testing of Chef Client through cookbooks which exercise many of the available resources, providers, and common patterns. The cookbooks here are designed to ensure certain capabilities remain functional with updates to the client code base. +Here we seek to provide end-to-end testing of Chef Infra Client through cookbooks which exercise many of the available resources, providers, and common patterns. The cookbooks here are designed to ensure certain capabilities remain functional with updates to the client code base. ## Getting started @@ -25,7 +25,7 @@ end-to-end-amazonlinux Dokken Dokken Inspec Dokken <Not Created ## Testing -We use Test Kitchen to build instances, test client code, and destroy instances. If you are unfamiliar with Test Kitchen, we recommend checking out the [tutorial](http://kitchen.ci/) along with the `kitchen-dokken` [driver documentation](https://github.com/someara/kitchen-dokken). Test Kitchen is configured to manipulate instances using [Docker](https://www.docker.com/) when testing locally, and when testing, pull requests on [Travis CI](https://travis-ci.com/). +We use Test Kitchen to build instances, test client code, and destroy instances. If you are unfamiliar with Test Kitchen, we recommend checking out the [tutorial](http://kitchen.ci/) along with the `kitchen-dokken` [driver documentation](https://github.com/someara/kitchen-dokken). Test Kitchen is configured to manipulate instances using [Docker](https://www.docker.com/) when testing locally, and when testing, pull requests on [Buildkite](https://buildkite.com/chef-oss/chef-chef-master-verify). ### Commands @@ -66,7 +66,7 @@ The branch you choose must be accessible on GitHub. You cannot use a local commi ### Testing pull requests -These end-to-end tests are also configured to run on Travis-CI with Docker containers when you submit a pull request to `chef/chef`. Kitchen is configured to pull chef client source code from the branch it is testing. There is no need to modify `kitchen.yml` unless you are contributing tests. +These end-to-end tests are also configured to run on Buildkite with Docker containers when you submit a pull request to `chef/chef`. Kitchen is configured to pull chef client source code from the branch it is testing. There is no need to modify `kitchen.yml` unless you are contributing tests. ## Contributing diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/default.rb b/kitchen-tests/cookbooks/end_to_end/recipes/default.rb index decd6a24af..901c0aa63d 100644 --- a/kitchen-tests/cookbooks/end_to_end/recipes/default.rb +++ b/kitchen-tests/cookbooks/end_to_end/recipes/default.rb @@ -2,10 +2,10 @@ # Cookbook:: end_to_end # Recipe:: default # -# Copyright:: 2014-2018, Chef Software, Inc. +# Copyright:: 2014-2019, Chef Software, Inc. # -hostname "chef-travis-ci.chef.io" +hostname "chef-bk-ci.chef.io" apt_update diff --git a/tasks/bin/run_external_test b/tasks/bin/run_external_test index 845c9b9d91..90cf9e2e0c 100755 --- a/tasks/bin/run_external_test +++ b/tasks/bin/run_external_test @@ -17,7 +17,7 @@ include Chef::Mixin::ShellOut github_repo = ARGV.shift git_thing = ARGV.shift -build_dir = File.expand_path(ENV["TRAVIS_BUILD_DIR"] || Dir.pwd) +build_dir = Dir.pwd env = { "GEMFILE_MOD" => "gem 'chef', path: '#{build_dir}'; " \ |