Fix #6238 - handle link :delete action without to
#11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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 }} |