From 0f2d36f9f67bbb835f61bf2e0f53dac61e2c3462 Mon Sep 17 00:00:00 2001 From: Luchian Nemes Date: Tue, 8 Sep 2020 16:32:01 +0300 Subject: (maint) Remove 'puppet-module-dev' gem dependency In preparation for the Puppet 7 release, the `puppet-module-posix-dev-r2.7` and `puppet-module-posix-dev-r2.7` gems had to be removed from `Gemfile` due to the following dependency error: `puppet-module-posix-dev-r2.7` depends on `puppet_litmus` which depends on `bolt` which depends on `puppet` which is locked to a version below 7 Also added the needed gems that were lost in the above removal process. --- Gemfile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index f799be4..b2c38d0 100644 --- a/Gemfile +++ b/Gemfile @@ -17,6 +17,14 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments minor_version = ruby_version_segments[0..1].join('.') group :development do + gem "parallel_tests", '>= 2.14.1', '< 2.14.3', require: false + gem "metadata-json-lint", '>= 2.0.2', '< 3.0.0', require: false + gem "rspec-puppet-facts", '~> 1.10.0', require: false + gem "rspec_junit_formatter", '~> 0.2', require: false + gem "rubocop", '~> 0.49.0', require: false + gem "rubocop-rspec", '~> 1.16.0', require: false + gem "rubocop-i18n", '~> 1.2.0', require: false + gem "puppetlabs_spec_helper", '>= 2.9.0', '< 3.0.0', require: false gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0') gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0') gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0') @@ -25,9 +33,7 @@ group :development do gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "puppet-module-posix-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby] - gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby] gem "puppet-module-win-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "puppet-module-win-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2') end group :system_tests do -- cgit v1.2.3 From 31f7208e7b2800c2013ee58a8ef6730aff9a39c2 Mon Sep 17 00:00:00 2001 From: Luchian Nemes Date: Tue, 8 Sep 2020 16:35:13 +0300 Subject: (MODULES-10800) Add GitHub Actions workflows Added GitHub Actions workflows for `Static Code Analysis` and `Unit Tests` that run each time there is a new `pull request` or `git push`. `Unit tests` are also set to run every workday at `05:00:00 UTC`. The `.yaml` config file for `Travis` has been removed. --- .../daily_unit_tests_with_nightly_puppet_gem.yaml | 58 +++++++++++++++++++++ .github/workflows/static_code_analysis.yaml | 41 +++++++++++++++ .../unit_tests_with_nightly_puppet_gem.yaml | 60 ++++++++++++++++++++++ .../unit_tests_with_released_puppet_gem.yaml | 48 +++++++++++++++++ .travis.yml | 45 ---------------- README.md | 6 +++ 6 files changed, 213 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml create mode 100644 .github/workflows/static_code_analysis.yaml create mode 100644 .github/workflows/unit_tests_with_nightly_puppet_gem.yaml create mode 100644 .github/workflows/unit_tests_with_released_puppet_gem.yaml delete mode 100644 .travis.yml diff --git a/.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml b/.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml new file mode 100644 index 0000000..b31bf18 --- /dev/null +++ b/.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml @@ -0,0 +1,58 @@ +--- +name: '[Daily] Unit Tests with nightly Puppet gem' + +on: + schedule: + - cron: '0 5 * * 1-5' + +jobs: + daily_unit_tests_with_nightly_puppet_gem: + name: ${{ matrix.os_type }} / Puppet${{ matrix.puppet_version }} gem / Ruby ${{ matrix.ruby }} + strategy: + matrix: + os: [ 'ubuntu-18.04', 'macos-10.15', 'windows-2019' ] + puppet_version: [ 5, 6, 7 ] + include: + - puppet_version: 5 + ruby: 2.4 + - puppet_version: 6 + ruby: 2.5 + - puppet_version: 7 + ruby: 2.7 + + - os: 'ubuntu-18.04' + os_type: 'Linux' + env_set_cmd: 'export ' + gem_file: 'puppet-latest.gem' + - os: 'macos-10.15' + os_type: 'macOS' + env_set_cmd: 'export ' + gem_file: 'puppet-latest-universal-darwin.gem' + - os: 'windows-2019' + os_type: 'Windows' + env_set_cmd: '$env:' + gem_file: 'puppet-latest-x64-mingw32.gem' + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install ruby version ${{ matrix.ruby }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + + - name: Install the latest nightly build of puppet${{ matrix.puppet_version }} gem + run: | + curl http://nightlies.puppet.com/downloads/gems/puppet${{ matrix.puppet_version }}-nightly/${{ matrix.gem_file }} --output puppet.gem + gem install puppet.gem -N + + - name: Prepare testing environment with bundler + run: | + bundle config set system 'true' + ${{ matrix.env_set_cmd }}PUPPET_GEM_VERSION=$(ruby -e 'puts /puppet\s+\((.+)\)/.match(`gem list -eld puppet`)[1]') + bundle update --jobs 4 --retry 3 + + - name: Run unit tests + run: bundle exec rake parallel_spec diff --git a/.github/workflows/static_code_analysis.yaml b/.github/workflows/static_code_analysis.yaml new file mode 100644 index 0000000..ed4a232 --- /dev/null +++ b/.github/workflows/static_code_analysis.yaml @@ -0,0 +1,41 @@ +--- +name: Static Code Analysis + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + static_code_analysis: + name: Run checks + + env: + ruby_version: 2.5 + extra_checks: check:symlinks check:git_ignore check:dot_underscore check:test_file + + runs-on: 'ubuntu-18.04' + steps: + - name: Checkout current PR code + uses: actions/checkout@v2 + + - name: Install ruby version ${{ env.ruby_version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ env.ruby_version }} + + - name: Prepare testing environment with bundler + run: bundle update --jobs 4 --retry 3 + + - name: Run rubocop check + run: bundle exec rake ${{ env.extra_checks }} rubocop + + - name: Run syntax check + run: bundle exec rake ${{ env.extra_checks }} syntax syntax:hiera syntax:manifests syntax:templates + + - name: Run lint check + run: bundle exec rake ${{ env.extra_checks }} lint + + - name: Run metadata_lint check + run: bundle exec rake ${{ env.extra_checks }} metadata_lint diff --git a/.github/workflows/unit_tests_with_nightly_puppet_gem.yaml b/.github/workflows/unit_tests_with_nightly_puppet_gem.yaml new file mode 100644 index 0000000..8c5d909 --- /dev/null +++ b/.github/workflows/unit_tests_with_nightly_puppet_gem.yaml @@ -0,0 +1,60 @@ +--- +name: Unit Tests with nightly Puppet gem + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + unit_tests_with_nightly_puppet_gem: + name: ${{ matrix.os_type }} / Puppet${{ matrix.puppet_version }} gem / Ruby ${{ matrix.ruby }} + strategy: + matrix: + os: [ 'ubuntu-18.04', 'macos-10.15', 'windows-2019' ] + puppet_version: [ 5, 6, 7 ] + include: + - puppet_version: 5 + ruby: 2.4 + - puppet_version: 6 + ruby: 2.5 + - puppet_version: 7 + ruby: 2.7 + + - os: 'ubuntu-18.04' + os_type: 'Linux' + env_set_cmd: 'export ' + gem_file: 'puppet-latest.gem' + - os: 'macos-10.15' + os_type: 'macOS' + env_set_cmd: 'export ' + gem_file: 'puppet-latest-universal-darwin.gem' + - os: 'windows-2019' + os_type: 'Windows' + env_set_cmd: '$env:' + gem_file: 'puppet-latest-x64-mingw32.gem' + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout current PR code + uses: actions/checkout@v2 + + - name: Install ruby version ${{ matrix.ruby }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + + - name: Install the latest nightly build of puppet${{ matrix.puppet_version }} gem + run: | + curl http://nightlies.puppet.com/downloads/gems/puppet${{ matrix.puppet_version }}-nightly/${{ matrix.gem_file }} --output puppet.gem + gem install puppet.gem -N + + - name: Prepare testing environment with bundler + run: | + bundle config set system 'true' + ${{ matrix.env_set_cmd }}PUPPET_GEM_VERSION=$(ruby -e 'puts /puppet\s+\((.+)\)/.match(`gem list -eld puppet`)[1]') + bundle update --jobs 4 --retry 3 + + - name: Run unit tests + run: bundle exec rake parallel_spec diff --git a/.github/workflows/unit_tests_with_released_puppet_gem.yaml b/.github/workflows/unit_tests_with_released_puppet_gem.yaml new file mode 100644 index 0000000..065e2b9 --- /dev/null +++ b/.github/workflows/unit_tests_with_released_puppet_gem.yaml @@ -0,0 +1,48 @@ +--- +name: Unit Tests with released Puppet gem + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + unit_tests_with_released_puppet_gem: + name: ${{ matrix.os_type }} / Puppet${{ matrix.puppet_version }} gem / Ruby ${{ matrix.ruby }} + strategy: + matrix: + os: [ 'ubuntu-18.04', 'macos-10.15', 'windows-2019' ] + puppet_version: [ 5, 6 ] + include: + - puppet_version: 5 + ruby: 2.4 + - puppet_version: 6 + ruby: 2.5 + + - os: 'ubuntu-18.04' + os_type: 'Linux' + - os: 'macos-10.15' + os_type: 'macOS' + - os: 'windows-2019' + os_type: 'Windows' + + runs-on: ${{ matrix.os }} + env: + PUPPET_GEM_VERSION: ~> ${{ matrix.puppet_version }}.0 + steps: + - name: Checkout current PR code + uses: actions/checkout@v2 + + - name: Install ruby version ${{ matrix.ruby }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + + - name: Prepare testing environment with bundler + run: | + bundle config set system 'true' + bundle update --jobs 4 --retry 3 + + - name: Run unit tests + run: bundle exec rake parallel_spec diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ed27d4d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -dist: xenial -language: ruby -cache: bundler -before_install: - - bundle -v - - rm -f Gemfile.lock - - gem update --system $RUBYGEMS_VERSION - - gem --version - - bundle -v -script: - - 'bundle exec rake $CHECK' -bundler_args: --without system_tests -rvm: - - 2.5.3 -stages: - - static - - spec - - acceptance - - - if: tag =~ ^v\d - name: deploy -matrix: - fast_finish: true - include: - - - env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint" - stage: static - - - env: PUPPET_GEM_VERSION="~> 5.0" CHECK=parallel_spec - rvm: 2.4.5 - stage: spec - - - env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec - rvm: 2.5.3 - stage: spec - - - env: DEPLOY_TO_FORGE=yes - stage: deploy -branches: - only: - - master - - /^v\d/ -notifications: - email: false diff --git a/README.md b/README.md index 3460895..95af7c6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # cron_core +[![Modules Status](https://github.com/puppetlabs/puppetlabs-cron_core/workflows/%5BDaily%5D%20Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-cron_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-cron_core/workflows/Static%20Code%20Analysis/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-cron_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-cron_core/workflows/Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-cron_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-cron_core/workflows/Unit%20Tests%20with%20released%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-cron_core/actions) + + #### Table of Contents 1. [Description](#description) -- cgit v1.2.3