From e65ad11c560f4b3156f80c21612212450f4426a0 Mon Sep 17 00:00:00 2001 From: Luchian Nemes Date: Thu, 3 Sep 2020 19:44:59 +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 files of `Travis` and `AppVeyor` have 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 +++ appveyor.yml | 56 -------------------- 7 files changed, 213 insertions(+), 101 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 delete mode 100644 appveyor.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..ea06ac0 --- /dev/null +++ b/.github/workflows/static_code_analysis.yaml @@ -0,0 +1,41 @@ +--- +name: Static Code Analysis + +on: + push: + branches: [ $default-branch ] + pull_request: + branches: [ $default-branch ] + +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..12b7230 --- /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: [ $default-branch ] + pull_request: + branches: [ $default-branch ] + +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..66d64ac --- /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: [ $default-branch ] + pull_request: + branches: [ $default-branch ] + +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 cd1965e..fe8e0e0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # augeas_core +[![Modules Status](https://github.com/puppetlabs/puppetlabs-augeas_core/workflows/[Daily]%20Unit%20Tests%20with%nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-augeas_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-augeas_core/workflows/Static%20Code%20Analysis/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-augeas_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-augeas_core/workflows/Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-augeas_core/actions) +[![Modules Status](https://github.com/puppetlabs/puppetlabs-augeas_core/workflows/Unit%20Tests%20with%20released%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-augeas_core/actions) + + #### Table of Contents 1. [Description](#description) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index ec38949..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,56 +0,0 @@ ---- -version: 1.1.x.{build} -branches: - only: - - master - - release -skip_commits: - message: /^\(?doc\)?.*/ -clone_depth: 10 -init: - - SET - - 'mkdir C:\ProgramData\PuppetLabs\code && exit 0' - - 'mkdir C:\ProgramData\PuppetLabs\facter && exit 0' - - 'mkdir C:\ProgramData\PuppetLabs\hiera && exit 0' - - 'mkdir C:\ProgramData\PuppetLabs\puppet\var && exit 0' -environment: - matrix: - - - RUBY_VERSION: 24-x64 - CHECK: syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop - - - PUPPET_GEM_VERSION: ~> 5.0 - RUBY_VERSION: 24 - CHECK: parallel_spec - - - PUPPET_GEM_VERSION: ~> 5.0 - RUBY_VERSION: 24-x64 - CHECK: parallel_spec - - - PUPPET_GEM_VERSION: ~> 6.0 - RUBY_VERSION: 25 - CHECK: parallel_spec - - - PUPPET_GEM_VERSION: ~> 6.0 - RUBY_VERSION: 25-x64 - CHECK: parallel_spec -matrix: - fast_finish: true -install: - - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH% - - bundle install --jobs 4 --retry 2 --without system_tests - - type Gemfile.lock -build: off -test_script: - - bundle exec puppet -V - - ruby -v - - gem -v - - bundle -v - - bundle exec rake %CHECK% -notifications: - - provider: Email - to: - - nobody@nowhere.com - on_build_success: false - on_build_failure: false - on_build_status_changed: false -- cgit v1.2.3