Spec Tests #1062
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: Spec Tests | |
on: | |
schedule: | |
- cron: 0 0 * * * | |
workflow_dispatch: | |
pull_request: | |
paths: | |
- .github/workflows/**/* | |
- spec/**/* | |
- lib/**/* | |
- tasks/**/* | |
- functions/**/* | |
- types/**/* | |
- plans/**/* | |
- hiera/**/* | |
- manifests/**/* | |
- templates/**/* | |
- files/**/* | |
- metadata.json | |
- Rakefile | |
- Gemfile | |
- provision.yaml | |
- .rspec | |
- .rubocop.yml | |
- .puppet-lint.rc | |
- .fixtures.yml | |
jobs: | |
setup_matrix: | |
name: Setup Test Matrix | |
runs-on: ubuntu-20.04 | |
outputs: | |
spec_matrix: ${{ steps.get-matrix.outputs.spec_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: Run Static & Syntax Tests | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
run: | | |
bundle exec rake validate lint check rubocop | |
- name: Setup Spec Test Matrix | |
id: get-matrix | |
run: | | |
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then | |
bundle exec matrix_from_metadata_v2 | |
else | |
echo "::set-output name=spec_matrix::{}" | |
fi | |
Spec: | |
name: 'Spec Tests (Puppet: ${{matrix.puppet_version}}, Ruby Ver: ${{matrix.ruby_version}})' | |
needs: [setup_matrix] | |
if: ${{ needs.setup_matrix.outputs.spec_matrix != '{}' }} | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.setup_matrix.outputs.spec_matrix)}} | |
env: | |
PUPPET_GEM_VERSION: ${{ matrix.puppet_version }} | |
FACTER_GEM_VERSION: https://github.com/puppetlabs/facter#main | |
steps: | |
- run: | | |
echo "SANITIZED_PUPPET_VERSION=$(echo '${{ matrix.puppet_version }}' | sed 's/~> //g')" >> $GITHUB_ENV | |
- name: Checkout Source | |
uses: actions/checkout@v4 | |
- name: Activate Ruby ${{ matrix.ruby_version }} | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{matrix.ruby_version}} | |
bundler-cache: true | |
- name: Print bundle environment | |
run: | | |
echo ::group::bundler environment | |
bundle env | |
echo ::endgroup:: | |
- name: Run parallel_spec tests | |
run: |- | |
bundle exec rake parallel_spec |