|
---
|
|
name: Test
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- 'develop'
|
|
- '*-stable'
|
|
|
|
concurrency:
|
|
group: ${{ github.ref_name }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
rubocop:
|
|
name: Rubocop
|
|
uses: theforeman/actions/.github/workflows/rubocop.yml@v0
|
|
|
|
test:
|
|
name: "Ruby ${{ matrix.ruby }} / Puppet ${{ matrix.puppet }}"
|
|
needs: rubocop
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- ruby: '2.7'
|
|
puppet: '7.0'
|
|
- ruby: '3.0'
|
|
puppet: '7.0'
|
|
- ruby: '3.2'
|
|
puppet: '8.0'
|
|
env:
|
|
PUPPET_VERSION: ${{ matrix.puppet }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install system dependencies
|
|
run: sudo apt-get install -y --no-install-recommends asciidoc
|
|
- name: Setup ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: ${{ matrix.ruby }}
|
|
bundler-cache: true
|
|
- name: Archive Gemfile.lock
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Gemfile-ruby-${{ matrix.ruby }}-puppet-${{ matrix.puppet }}.lock
|
|
path: Gemfile.lock
|
|
- name: Run tests
|
|
run: bundle exec rake spec
|
|
- name: Test installer configuration
|
|
run: |
|
|
bundle exec rake install PREFIX=./local --trace
|
|
bundle exec rake installation_tests PREFIX=./local --trace
|
|
|
|
# A dummy job that you can mark as a required check instead of each individual test
|
|
test-suite:
|
|
needs: test
|
|
runs-on: ubuntu-latest
|
|
name: Test suite
|
|
steps:
|
|
- run: echo Test suite completed
|