diff options
author | Gene Wood <gene_wood@cementhorizon.com> | 2022-09-16 14:32:36 -0700 |
---|---|---|
committer | Gene Wood <gene_wood@cementhorizon.com> | 2022-09-16 14:32:36 -0700 |
commit | e1b43995a26591ced7716837d7da1a24c1b02d75 (patch) | |
tree | 1c26bd4eb6c1c5c30b86189ee5cf3fade11310f5 /.github/workflows/kitchen.yml | |
parent | 9e6c10160e87bedb703e2409776cd08011798210 (diff) | |
parent | 37a97f02edee045e5f8387f7071f67600ea811dd (diff) | |
download | chef-e1b43995a26591ced7716837d7da1a24c1b02d75.tar.gz |
Merge branch 'main' into fix_install_snaps_call
Diffstat (limited to '.github/workflows/kitchen.yml')
-rw-r--r-- | .github/workflows/kitchen.yml | 157 |
1 files changed, 115 insertions, 42 deletions
diff --git a/.github/workflows/kitchen.yml b/.github/workflows/kitchen.yml index 126c7a5e57..00e564709f 100644 --- a/.github/workflows/kitchen.yml +++ b/.github/workflows/kitchen.yml @@ -13,45 +13,91 @@ jobs: fail-fast: false matrix: os: [windows-2022, windows-2019] + ruby: ['3.1'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 + - name: 'Upgrade Ruby Devkit on Windows' + id: upgrade_ruby + run: | + $pkg_version="3.1.2" + $pkg_revision="1" + $pkg_source="https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-${pkg_version}-${pkg_revision}/rubyinstaller-devkit-${pkg_version}-${pkg_revision}-x64.exe" + + $old_version = Ruby --version + if(-not($old_version -match "3.1")){ + $ErrorActionPreference = 'Stop'; + Write-Output 'Downloading Ruby + DevKit'; + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; + $package_destination = "$env:temp\rubyinstaller-devkit-$pkg_version-$pkg_revision-x64.exe" + (New-Object System.Net.WebClient).DownloadFile($pkg_source, $package_destination); + Write-Output "Did the file download?" + $output = Get-ChildItem -Path $env:temp + Write-Output $output + Write-Output 'Installing Ruby + DevKit'; + Start-Process $package_destination -ArgumentList '/verysilent /dir=C:\ruby31' -Wait ; + Write-Output 'Cleaning up installation'; + Remove-Item $package_destination -Force; + Write-Output "Installing URU to manage Ruby Versions" + choco install 7zip -y + Write-Output "Downloading Uru Installer..." + New-Item -Path c:\uru_temp -Type Directory + # Use TLS 1.2 for Windows 2016 Server and older + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + Invoke-WebRequest -OutFile "c:\uru_temp\uru-0.8.5-windows-x86.7z" -Uri "https://bitbucket.org/jonforums/uru/downloads/uru-0.8.5-windows-x86.7z" + Write-Output "Installing Uru Ruby Switcher" + 7z x "c:\uru_temp\uru-0.8.5-windows-x86.7z" -o"C:\Program Files (x86)\Uru" + If ($lastexitcode -ne 0) { Exit $lastexitcode } + Start-Process "C:\Program Files (x86)\Uru\uru_rt.exe" -WorkingDirectory "C:\Program Files (x86)\Uru\" -ArgumentList 'admin install' -Wait + + Write-Output 'Updating PATH' + $env:PATH = "C:\Program Files (x86)\Uru;" + $env:PATH + [Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine) + + Write-Output "Register Installed Ruby Version 3.1 With Uru" + Start-Process "uru_rt.exe" -ArgumentList 'admin add C:\ruby31\bin' -Wait + uru 312 + if (-not $?) { throw "Can't Activate Ruby. Did Uru Registration Succeed?" } + ruby -v + if (-not $?) { throw "Can't run Ruby. Is it installed?" } + } + - name: 'Install Chef/Ohai from Omnitruck' id: install_chef run: | . { Invoke-WebRequest -useb https://omnitruck.chef.io/install.ps1 } | Invoke-Expression; Install-Project -project chef -channel current - $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + $env:PATH = "C:\ruby31\bin;C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH chef-client -v ohai -v rake --version bundle -v - - name: 'Upgrade Chef/Ohai via Appbundler' - id: upgrade - run: | - $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH - $env:OHAI_VERSION = ( Select-String -Path .\Gemfile.lock -Pattern '(?<=ohai \()\d.*(?=\))' | ForEach-Object { $_.Matches[0].Value } ) + # - name: 'Upgrade Chef/Ohai via Appbundler' + # id: upgrade + # run: | + # $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + # $env:OHAI_VERSION = ( Select-String -Path .\Gemfile.lock -Pattern '(?<=ohai \()\d.*(?=\))' | ForEach-Object { $_.Matches[0].Value } ) - # The chef-client installer does not put the file 'ansidecl.h' down in the correct location - # This leads to failures during testing. Moving that file to its correct position here. - # Another example of 'bad' that needs to be corrected - $output = gci -path C:\opscode\ -file ansidecl.h -Recurse - $target_path = $($output.Directory.Parent.FullName + "\x86_64-w64-mingw32\include") - Move-Item -Path $output.FullName -Destination $target_path + # # The chef-client installer does not put the file 'ansidecl.h' down in the correct location + # # This leads to failures during testing. Moving that file to its correct position here. + # # Another example of 'bad' that needs to be corrected + # $output = gci -path C:\opscode\ -file ansidecl.h -Recurse + # $target_path = $($output.Directory.Parent.FullName + "\x86_64-w64-mingw32\include") + # Move-Item -Path $output.FullName -Destination $target_path - gem install appbundler appbundle-updater --no-doc - If ($lastexitcode -ne 0) { Exit $lastexitcode } - appbundle-updater chef chef $env:GITHUB_SHA --tarball --github $env:GITHUB_REPOSITORY - If ($lastexitcode -ne 0) { Exit $lastexitcode } - Write-Output "Installed Chef / Ohai release:" - chef-client -v - If ($lastexitcode -ne 0) { Exit $lastexitcode } - ohai -v - If ($lastexitcode -ne 0) { Exit $lastexitcode } + # gem install appbundler appbundle-updater --no-doc + # If ($lastexitcode -ne 0) { Exit $lastexitcode } + # appbundle-updater chef chef $env:GITHUB_SHA --tarball --github $env:GITHUB_REPOSITORY + # If ($lastexitcode -ne 0) { Exit $lastexitcode } + # Write-Output "Installed Chef / Ohai release:" + # chef-client -v + # If ($lastexitcode -ne 0) { Exit $lastexitcode } + # ohai -v + # If ($lastexitcode -ne 0) { Exit $lastexitcode } - name: 'Run end_to_end::default recipe' id: run run: | cd kitchen-tests - $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + $env:PATH = "C:\ruby31\bin;C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH # htmldiff and ldiff on windows cause a conflict with gems being loaded below. # we remove thenm here. if (Test-Path C:\opscode\chef\embedded\bin\htmldiff) @@ -78,10 +124,18 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-10.15] # macos-11.0 is not public for now + os: [macos-latest] + ruby: ["3.1"] # macos-11.0 is not public for now runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 + with: + clean: true + - name: 'Upgrade Ruby Devkit on Macos' + id: upgrade_ruby + run: | + echo "This is the installed version of Ruby:" + brew info ruby - name: 'Install Chef/Ohai from Omnitruck' id: install_chef run: | @@ -90,26 +144,34 @@ jobs: /opt/chef/bin/chef-client -v /opt/chef/bin/ohai -v /opt/chef/embedded/bin/rake --version - /opt/chef/embedded/bin/bundle -v - - name: 'Upgrade Chef/Ohai via Appbundler' - id: upgrade - run: | - OHAI_VERSION=$(sed -n '/ohai .[0-9]/{s/.*(//;s/)//;p;}' Gemfile.lock) - sudo /opt/chef/embedded/bin/gem install appbundler appbundle-updater --no-doc - sudo /opt/chef/embedded/bin/appbundle-updater chef chef $GITHUB_SHA --tarball --github $GITHUB_REPOSITORY - echo "Installed Chef / Ohai release:" - /opt/chef/bin/chef-client -v - /opt/chef/bin/ohai -v + # echo "Updating Bundler" + # gem install bundler:2.3.18 + # echo "finished updating Bundler, now getting the version" + # /opt/chef/embedded/bin/bundle -v + # echo "finished getting the bundler version" - name: 'Run end_to_end::default recipe' id: run run: | + brew install rbenv ruby-build + touch ~/.zshrc + export PATH="$HOME/.rbenv/bin:$PATH" + export HOMEBREW_NO_ENV_HINTS="true" + echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc + source ~/.zshrc + rbenv install 3.1.2 + rbenv global 3.1.2 + gem install bundler:2.3.18 + echo "which bundler are we using?" + which bundle + echo "what version is that?" + bundle --version + cd /Users/runner/work/chef/chef + sudo bundle install cd kitchen-tests - sudo /opt/chef/embedded/bin/bundle config set --local without 'omnibus_package' - sudo /opt/chef/embedded/bin/bundle config set --local path 'vendor/bundle' - sudo /opt/chef/embedded/bin/bundle install --jobs=3 --retry=3 - sudo rm -f /opt/chef/embedded/bin/{htmldiff,ldiff} - sudo /opt/chef/embedded/bin/gem install berkshelf --no-doc - sudo /opt/chef/embedded/bin/berks vendor cookbooks + sudo bundle install --jobs=3 --retry=3 + sudo gem install kitchen + sudo gem install berkshelf --no-doc + sudo berks vendor cookbooks sudo /opt/chef/bin/chef-client -z -o end_to_end --chef-license accept-no-persist linux: @@ -129,20 +191,31 @@ jobs: - 'ubuntu-1804' - 'ubuntu-2004' - 'ubuntu-2204' + ruby: ['3.1'] runs-on: ubuntu-latest env: FORCE_FFI_YAJL: ext CHEF_LICENSE: accept-no-persist steps: - name: Check out code - uses: actions/checkout@main + uses: actions/checkout@v2 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.0" - bundler-cache: true + ruby-version: "3.1" + bundler-cache: false working-directory: kitchen-tests - name: Run Test Kitchen working-directory: kitchen-tests run: | + ruby -v + echo "Which ruby are we using?" + which ruby + sudo mv /home/runner/work/chef/chef /home/runner/work/chef/chef17 + git clone https://github.com/chef/chef.git /home/runner/work/chef/chef + cd /home/runner/work/chef/chef + bundle install + gem install kitchen + cd /home/runner/work/chef/chef/kitchen-tests + bundle install bundle exec kitchen test end-to-end-${{ matrix.os }} |