test #309
Workflow file for this run
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: chef-test | |
# Only run tests if there are relevant changes | |
on: | |
push: | |
branches: | |
- main | |
- chef-new-zeroconfig | |
paths: | |
- '.github/workflows/chef-test.yml' | |
- 'deployments/chef/**' | |
- '!**.md' | |
pull_request: | |
paths: | |
- '.github/workflows/chef-test.yml' | |
- 'deployments/chef/**' | |
- '!**.md' | |
concurrency: | |
group: chef-test-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
working-directory: 'deployments/chef' | |
jobs: | |
chef-lint-spec-test: | |
name: chef-lint-spec-test | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: lint | |
run: make lint | |
- name: Rake spec | |
run: | | |
make rake-spec | |
chef-kitchen-matrix: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Get linux distros and suites | |
id: get-linux-matrix | |
run: | | |
distros=$(yq '[.platforms[] | "\"" + (.name | sub("_", "-") | sub("\.", "")) + "\""] | join(", ")' kitchen.yml) | |
if [ -z "$distros" ]; then | |
echo "Failed to get platforms from kitchen.yml!" >&2 | |
exit 1 | |
fi | |
suites=$(yq '[.suites[] | "\"" + (.name | sub("_", "-") | sub("\.", "")) + "\""] | join(", ")' kitchen.yml) | |
if [ -z "$suites" ]; then | |
echo "Failed to get suites from kitchen.yml!" >&2 | |
exit 1 | |
fi | |
echo "matrix={'DISTRO': [${distros}], 'SUITE': [${suites}]}" >> $GITHUB_OUTPUT | |
- name: Get windows distros and suites | |
id: get-win-matrix | |
run: | | |
distros=$(yq '[.platforms[] | "\"" + (.name | sub("_", "-") | sub("\.", "")) + "\""] | join(", ")' kitchen.windows.yml) | |
if [ -z "$distros" ]; then | |
echo "Failed to get platforms from kitchen.windows.yml!" >&2 | |
exit 1 | |
fi | |
suites=$(yq '[.suites[] | "\"" + (.name | sub("_", "-") | sub("\.", "")) + "\""] | join(", ")' kitchen.windows.yml) | |
if [ -z "$suites" ]; then | |
echo "Failed to get suites from kitchen.windows.yml!" >&2 | |
exit 1 | |
fi | |
echo "matrix={'DISTRO': [${distros}], 'SUITE': [${suites}]}" >> $GITHUB_OUTPUT | |
outputs: | |
linux-matrix: ${{ steps.get-linux-matrix.outputs.matrix }} | |
win-matrix: ${{ steps.get-win-matrix.outputs.matrix }} | |
chef-kitchen-linux: | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [chef-lint-spec-test, chef-kitchen-matrix] | |
strategy: | |
matrix: ${{ fromJSON(needs.chef-kitchen-matrix.outputs.linux-matrix) }} | |
fail-fast: false | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Install chef | |
uses: actionshub/[email protected] | |
with: | |
version: 21.12.720 | |
- run: kitchen test ${{ matrix.SUITE }}-${{ matrix.DISTRO }} | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: ${{ matrix.SUITE }}-${{ matrix.DISTRO }} | |
path: deployments/chef/.kitchen/logs/* | |
chef-kitchen-windows: | |
runs-on: ${{ matrix.DISTRO }} | |
needs: [chef-lint-spec-test, chef-kitchen-matrix] | |
strategy: | |
matrix: ${{ fromJSON(needs.chef-kitchen-matrix.outputs.win-matrix) }} | |
fail-fast: false | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Install chef | |
uses: actionshub/[email protected] | |
with: | |
version: 21.12.720 | |
- name: Install kitchen-docker | |
run: | | |
chef env --chef-license accept | |
chef gem install kitchen-docker -v 2.12.0 | |
- name: kitchen test ${{ matrix.SUITE }}-${{ matrix.DISTRO }} | |
run: | | |
kitchen test ${{ matrix.SUITE }}-${{ matrix.DISTRO }} | |
# For some reason, kitchen returns 0 here even if there are test failures, so check the log instead. | |
grep -q '0 failures' .kitchen/logs/kitchen.log || exit 1 | |
shell: bash | |
env: | |
KITCHEN_YAML: kitchen.windows.yml | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: ${{ matrix.SUITE }}-${{ matrix.DISTRO }} | |
path: deployments/chef/.kitchen/logs/* |