(PIE-1612) Release Prep #38
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: "PE Latest Testing" | |
on: [pull_request] | |
jobs: | |
setup_matrix: | |
name: "Setup Test Matrix" | |
runs-on: ubuntu-20.04 | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.acc_matrix }} | |
steps: | |
- name: Checkout Source | |
uses: actions/checkout@v4 | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
- name: Activate Ruby 2.7 | |
uses: ruby/setup-ruby@v1 | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
with: | |
ruby-version: "2.7" | |
bundler-cache: true | |
- name: Print bundle environment | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
run: | | |
echo ::group::bundler environment | |
bundle env | |
echo ::endgroup:: | |
- name: Curl Forge for PE versions | |
id: curl_forge | |
run: | | |
echo "forge_response=$(curl https://forge.puppet.com/private/versions/pe)" >> $GITHUB_OUTPUT | |
- name: Set PE latest release | |
id: latest_release | |
run: | | |
out=$(jq -c '[.[] | select(.lts == false)][0].latest | {"pe_version": [.]}' <<<'${{ steps.curl_forge.outputs.forge_response }}') | |
echo "latest=$out" >> $GITHUB_OUTPUT | |
- name: Build Test Matrix | |
id: build-matrix | |
run: | | |
bundle exec matrix_from_metadata_v3 \ | |
--provision-exclude docker \ | |
--arch-exclude arm \ | |
--platform-exclude debian \ | |
--platform-exclude sles \ | |
--platform-exclude ubuntu | |
- name: Setup Acceptance Test Matrix | |
id: set-matrix | |
run: | | |
out=$(echo '${{ steps.build-matrix.outputs.matrix }}' | jq -c --argjson latest '${{ steps.latest_release.outputs.latest }}' '.collection = $latest.pe_version') | |
echo "acc_matrix=$out" >> $GITHUB_OUTPUT | |
Integration: | |
name: "${{matrix.platforms.label}}, ${{matrix.collection}}" | |
needs: | |
- setup_matrix | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.setup_matrix.outputs.matrix) }} | |
steps: | |
- name: Checkout Source | |
uses: actions/checkout@v4 | |
- name: Activate Ruby 2.7 | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "2.7" | |
bundler-cache: true | |
- name: Print bundle environment | |
run: | | |
echo ::group::bundler environment | |
bundle env | |
echo ::endgroup:: | |
- name: Create the fixtures directory | |
run: | | |
echo ::group::Create the fixtures directory | |
bundle exec rake spec_prep | |
echo ::endgroup:: | |
- name: Provision test environment | |
run: | | |
bundle exec bolt --modulepath spec/fixtures/modules plan run splunk_hec::acceptance::provision_machines using='provision_service' image='${{ matrix.platforms.image }}' | |
echo ::group::=== REQUEST === | |
cat request.json || true | |
echo | |
echo ::endgroup:: | |
echo ::group::=== INVENTORY === | |
if [ -f 'spec/fixtures/litmus_inventory.yaml' ]; | |
then | |
FILE='spec/fixtures/litmus_inventory.yaml' | |
elif [ -f 'inventory.yaml' ]; | |
then | |
FILE='inventory.yaml' | |
fi | |
sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true | |
echo ::endgroup:: | |
echo INVENTORY_PATH=$FILE >> $GITHUB_ENV | |
- name: Install server | |
run: | | |
bundle exec bolt --modulepath spec/fixtures/modules plan run splunk_hec::acceptance::server_setup puppet_version='${{ matrix.collection }}' -i ./$INVENTORY_PATH --stream | |
- name: Install module | |
run: | | |
bundle exec rake 'litmus:install_module' | |
- name: Set up Splunk instance | |
run: | | |
bundle exec rake acceptance:setup_splunk_targets | |
- name: Run acceptance tests | |
run: | | |
bundle exec rake acceptance:ci_run_tests | |
- name: Remove test environment | |
if: ${{ always() }} | |
continue-on-error: true | |
run: | | |
if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then | |
bundle exec rake 'litmus:tear_down' | |
echo ::group::=== REQUEST === | |
cat request.json || true | |
echo | |
echo ::endgroup:: | |
fi |