diff --git a/.github/workflows/acceptance.yml b/.github/workflows/acceptance.yml deleted file mode 100644 index b6301f3..0000000 --- a/.github/workflows/acceptance.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Acceptance tests - -on: pull_request - -jobs: - build_cache: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: "2.7" - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-2.7-gems-acceptance-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-2.7-gems-acceptance- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development test' - bundle install --jobs 4 --retry 3 - - acceptance: - needs: build_cache - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - setfile: - - centos6-64{hostname=centos6-64.example.com} - - centos7-64{hostname=centos7-64.example.com,image=centos:7.6.1810} - - fedora31-64{hostname=fedora31-64.example.com} - - debian9-64{hostname=debian9-64.example.com} - - debian10-64{hostname=debian10-64.example.com} - - ubuntu1604-64{hostname=ubuntu1604-64.example.com,image=ubuntu:xenial-20191212} - - ubuntu1804-64{hostname=ubuntu1804-64.example.com} - - ubuntu2004-64{hostname=ubuntu2004-64.example.com} - puppet: - - "6" - - "5" - exclude: - - setfile: "debian10-64{hostname=debian10-64.example.com}" - puppet: "5" - - setfile: "ubuntu2004-64{hostname=ubuntu2004-64.example.com}" - puppet: "5" - name: Puppet ${{ matrix.puppet }} - ${{ matrix.setfile }} - steps: - - name: Enable IPv6 on docker - run: | - echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json - sudo service docker restart - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: "2.7" - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-2.7-gems-acceptance-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-2.7-gems-acceptance- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development test' - bundle install --jobs 4 --retry 3 - - name: Run tests - run: bundle exec rake beaker - env: - BEAKER_PUPPET_COLLECTION: puppet${{ matrix.puppet }} - BEAKER_setfile: ${{ matrix.setfile }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ab42212 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,79 @@ +name: CI + +on: + pull_request: + schedule: + - cron: '4 4 * * *' + +jobs: + setup_matrix: + if: github.event_name != 'schedule' || github.repository_owner == 'theforeman' + name: 'Setup Test Matrix' + runs-on: ubuntu-latest + outputs: + beaker_setfiles: ${{ steps.get_outputs.outputs.beaker_setfiles }} + puppet_major_versions: ${{ steps.get_outputs.outputs.puppet_major_versions }} + puppet_unit_test_matrix: ${{ steps.get_outputs.outputs.puppet_unit_test_matrix }} + env: + BUNDLE_WITHOUT: development:release + steps: + - uses: actions/checkout@v2 + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7' + bundler-cache: true + - name: Run rake check + run: bundle exec rake check + - name: Run rake validate + run: bundle exec rake validate + - name: Run rake lint + run: bundle exec rake lint + - name: Setup Test Matrix + id: get_outputs + run: bundle exec metadata2gha --use-fqdn --pidfile-workaround true + + unit: + needs: setup_matrix + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: ${{fromJson(needs.setup_matrix.outputs.puppet_unit_test_matrix)}} + env: + BUNDLE_WITHOUT: development:system_tests:release + PUPPET_VERSION: "${{ matrix.puppet }}.0" + name: Unit / Puppet ${{ matrix.puppet }} (Ruby ${{ matrix.ruby }}) + steps: + - uses: actions/checkout@v2 + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + - name: Run tests + run: bundle exec rake parallel_spec + + acceptance: + needs: setup_matrix + runs-on: ubuntu-latest + env: + BUNDLE_WITHOUT: development:test:release + strategy: + fail-fast: false + matrix: + setfile: ${{fromJson(needs.setup_matrix.outputs.beaker_setfiles)}} + puppet: ${{fromJson(needs.setup_matrix.outputs.puppet_major_versions)}} + name: Acceptance / ${{ matrix.puppet.name }} - ${{ matrix.setfile.name }} + steps: + - uses: actions/checkout@v2 + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7' + bundler-cache: true + - name: Run tests + run: bundle exec rake beaker + env: + BEAKER_PUPPET_COLLECTION: ${{ matrix.puppet.collection }} + BEAKER_setfile: ${{ matrix.setfile.value }} diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml deleted file mode 100644 index 66b5938..0000000 --- a/.github/workflows/cron.yml +++ /dev/null @@ -1,126 +0,0 @@ -name: Nightly tests - -on: - schedule: - - cron: '4 4 * * *' - -jobs: - unit: - if: github.repository == 'theforeman/puppet-puppet' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - ruby: - - "2.5" - - "2.4" - puppet: - - "6" - - "5" - exclude: - - ruby: "2.5" - puppet: "5" - - ruby: "2.4" - puppet: "6" - env: - PUPPET_VERSION: "${{ matrix.puppet }}.0" - name: Puppet ${{ matrix.puppet }} (Ruby ${{ matrix.ruby }}) - steps: - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-${{ matrix.puppet }}-${{ matrix.ruby }}-gems-unit-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-${{ matrix.puppet }}-${{ matrix.ruby }}-gems-unit- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development system_tests' - bundle install --jobs 4 --retry 3 - - name: Run tests - run: bundle exec rake - - build_cache: - if: github.repository == 'theforeman/puppet-puppet' - runs-on: ubuntu-latest - steps: - - name: Enable IPv6 on docker - run: | - echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json - sudo service docker restart - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: "2.7" - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-2.7-gems-acceptance-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-2.7-gems-acceptance- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development test' - bundle install --jobs 4 --retry 3 - - acceptance: - if: github.repository == 'theforeman/puppet-puppet' - needs: build_cache - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - setfile: - - centos6-64{hostname=centos6-64.example.com} - - centos7-64{hostname=centos7-64.example.com,image=centos:7.6.1810} - - fedora31-64{hostname=fedora31-64.example.com} - - debian9-64{hostname=debian9-64.example.com} - - debian10-64{hostname=debian10-64.example.com} - - ubuntu1604-64{hostname=ubuntu1604-64.example.com,image=ubuntu:xenial-20191212} - - ubuntu1804-64{hostname=ubuntu1804-64.example.com} - - ubuntu2004-64{hostname=ubuntu2004-64.example.com} - puppet: - - "6" - - "5" - exclude: - - setfile: "debian10-64{hostname=debian10-64.example.com}" - puppet: "5" - - setfile: "ubuntu2004-64{hostname=ubuntu2004-64.example.com}" - puppet: "5" - name: Puppet ${{ matrix.puppet }} - ${{ matrix.setfile }} - steps: - - name: Enable IPv6 on docker - run: | - echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json - sudo service docker restart - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: "2.7" - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-2.7-gems-acceptance-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-2.7-gems-acceptance- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development test' - bundle install --jobs 4 --retry 3 - - name: Run tests - run: bundle exec rake beaker - env: - BEAKER_PUPPET_COLLECTION: puppet${{ matrix.puppet }} - BEAKER_setfile: ${{ matrix.setfile }} diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml deleted file mode 100644 index 432fb74..0000000 --- a/.github/workflows/unit.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Unit tests - -on: pull_request - -jobs: - unit: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - ruby: - - "2.5" - - "2.4" - puppet: - - "6" - - "5" - exclude: - - ruby: "2.5" - puppet: "5" - - ruby: "2.4" - puppet: "6" - name: Puppet ${{ matrix.puppet }} (Ruby ${{ matrix.ruby }}) - env: - PUPPET_VERSION: "${{ matrix.puppet }}.0" - steps: - - uses: actions/checkout@v2 - - name: Setup ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-${{ matrix.puppet }}-${{ matrix.ruby }}-gems-unit-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-${{ matrix.puppet }}-${{ matrix.ruby }}-gems-unit- - - name: Install dependencies - run: | - gem install bundler - bundle config path vendor/bundle - bundle config without 'development system_tests' - bundle install --jobs 4 --retry 3 - - name: Run tests - run: bundle exec rake diff --git a/.sync.yml b/.sync.yml index 1d1ce32..f747126 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,18 +1,6 @@ --- -.github/workflows/acceptance.yml: - excludes: - - setfile: debian10-64{hostname=debian10-64.example.com} - puppet: "5" - - setfile: ubuntu2004-64{hostname=ubuntu2004-64.example.com} - puppet: "5" - pidfile_workaround: true -.github/workflows/cron.yml: - excludes: - - setfile: debian10-64{hostname=debian10-64.example.com} - puppet: "5" - - setfile: ubuntu2004-64{hostname=ubuntu2004-64.example.com} - puppet: "5" +.github/workflows/ci.yml: pidfile_workaround: true Gemfile: extra: - gem: hocon diff --git a/Gemfile b/Gemfile index 2497079..fec9345 100644 --- a/Gemfile +++ b/Gemfile @@ -1,22 +1,23 @@ # This file is managed centrally by modulesync # https://github.com/theforeman/foreman-installer-modulesync source 'https://rubygems.org' gem 'puppet', ENV.key?('PUPPET_VERSION') ? "~> #{ENV['PUPPET_VERSION']}" : '>= 5.5', groups: ['development', 'test'] gem 'rake' gem 'kafo_module_lint', {"groups"=>["test"]} gem 'puppet-lint-empty_string-check', {"groups"=>["test"]} gem 'puppet-lint-file_ensure-check', {"groups"=>["test"]} gem 'puppet-lint-param-docs', '>= 1.3.0', {"groups"=>["test"]} gem 'puppet-lint-spaceship_operator_without_tag-check', {"groups"=>["test"]} gem 'puppet-lint-strict_indent-check', {"groups"=>["test"]} gem 'puppet-lint-undef_in_function-check', {"groups"=>["test"]} gem 'voxpupuli-test', '~> 1.4' gem 'github_changelog_generator', '>= 1.15.0', {"groups"=>["development"]} +gem 'puppet_metadata', '~> 0.3' gem 'puppet-blacksmith', '>= 6.0.0', {"groups"=>["development"]} -gem 'voxpupuli-acceptance', '~> 0.2', {"groups"=>["system_tests"]} +gem 'voxpupuli-acceptance', '~> 0.3', {"groups"=>["system_tests"]} gem 'hocon' # vim:ft=ruby