Skip to content

Fix #6238 - handle link :delete action without to #11

Fix #6238 - handle link :delete action without to

Fix #6238 - handle link :delete action without to #11

Workflow file for this run

---
name: kitchen
"on":
pull_request:
push:
branches:
- main
jobs:
windows:
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2019]
ruby: ['3.1']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- 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
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 } )
# 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
# As of Ruby 3.1, there are 3 ansidecl.h files found in the opscode path
# Grabbing the first (and shortest) path found is a bit of a :fingers-crossed: but
# making the leap that ansidecl.h isn't going to vary in a way that will fail
# subtly.
if ($output -is [Array]) { $output = $output[0] }
$target_path = $($output.Directory.Parent.FullName + "\x86_64-w64-mingw32\include")
Move-Item -Path $output.FullName -Destination $target_path
# if a different version of ffi-yajl is installed, then libyajl2 needs to be reinstalled
# so that libyajldll.a is present in the intermediate build step. bundler seems to skip
# libyajl2 build if already present. gem install seems to build anyway.
gem uninstall -I libyajl2
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
# 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)
{
Remove-Item -Path C:\opscode\chef\embedded\bin\htmldiff
Remove-Item -Path C:\opscode\chef\embedded\bin\ldiff
}
bundle install --jobs=3 --retry=3
# If ($lastexitcode -ne 0) { Exit $lastexitcode }
# The bundle install command above fails because our build on windows on ruby-3.0 is
# completely broken when it comes to installing native gems. Until that is fixed we
# need to ignore that error code and to manually install berkshelf below. This is a
# very bad hack.
If ($lastexitcode -ne 0) { Exit $lastexitcode }
gem install berkshelf --no-doc
If ($lastexitcode -ne 0) { Exit $lastexitcode }
berks vendor cookbooks
If ($lastexitcode -ne 0) { Exit $lastexitcode }
chef-client -z -o end_to_end --chef-license accept-no-persist
macos:
strategy:
fail-fast: false
matrix:
os: [macos-latest]
ruby: ['3.1']
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v3
with:
clean: true
- name: 'Install Chef/Ohai from Omnitruck'
id: install_chef
run: |
brew install coreutils
curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -c current
/opt/chef/bin/chef-client -v
/opt/chef/bin/ohai -v
/opt/chef/embedded/bin/rake --version
- 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
- name: 'Run end_to_end::default recipe'
id: run
run: |
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 /opt/chef/bin/chef-client -z -o end_to_end --chef-license accept-no-persist
linux:
strategy:
fail-fast: false
matrix:
os:
- 'centos-6'
- 'centos-7'
- 'almalinux-8'
- 'debian-10'
- 'debian-11'
- 'fedora-latest'
- 'opensuse-leap-15'
- '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@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: true
working-directory: kitchen-tests
- name: Run Test Kitchen
working-directory: kitchen-tests
run: |
bundle exec kitchen test end-to-end-${{ matrix.os }}
# Amazon Linux 2 has an issue with systemctl (throws a timedatectl error)
# if dokken container hosted on Ubuntu 22.04 or later. Lock to Ubuntu 20.04
# for now.
linux-2004-host:
strategy:
fail-fast: false
matrix:
os:
- 'amazonlinux-2'
ruby: ['3.1']
runs-on: ubuntu-20.04
env:
FORCE_FFI_YAJL: ext
CHEF_LICENSE: accept-no-persist
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: true
working-directory: kitchen-tests
- name: Run Test Kitchen
working-directory: kitchen-tests
run: |
bundle exec kitchen test end-to-end-${{ matrix.os }}