Skip to content

Commit

Permalink
(MODULES-10800) Add GitHub Actions workflows
Browse files Browse the repository at this point in the history
Added GitHub Actions workflows for `Static Code Analysis`, `Unit Tests`
and `Task Acceptance 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.
  • Loading branch information
luchihoratiu committed Sep 24, 2020
1 parent 3faaa19 commit 7777618
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 47 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
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
46 changes: 46 additions & 0 deletions .github/workflows/static_code_analysis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: Static Code Analysis

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
static_code_analysis:
name: Run checks

env:
ruby_version: 2.5

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 commits check
run: bundle exec rake commits

- name: Run validate check
run: bundle exec rake validate

- name: Run lint check
run: bundle exec rake lint

- name: Run metadata_lint check
run: bundle exec rake metadata_lint

- name: Run syntax check
run: bundle exec rake syntax syntax:hiera syntax:manifests syntax:templates

- name: Run rubocop check
run: bundle exec rake rubocop
43 changes: 43 additions & 0 deletions .github/workflows/task_acceptance_tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
name: Task Acceptance Tests

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
task_acceptance_tests:
name: On ${{ matrix.os }}
strategy:
matrix:
os: [ 'centos-7', 'ubuntu-18.04' ]

env:
ruby_version: 2.4
GEM_BOLT: true
BEAKER_debug: true
BEAKER_set: docker/${{ matrix.os }}

runs-on: 'ubuntu-18.04'
steps:
- name: Checkout current PR code
uses: actions/checkout@v2

- name: Install docker
uses: docker/setup-buildx-action@v1
id: buildx
with:
install: true

- 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 task acceptance tests
run: cd task_spec && bundle exec rake task_acceptance
58 changes: 58 additions & 0 deletions .github/workflows/unit_tests_with_nightly_puppet_gem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
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
47 changes: 47 additions & 0 deletions .github/workflows/unit_tests_with_released_puppet_gem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
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 }}
continue-on-error: true
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 update --jobs 4 --retry 3
- name: Run unit tests
run: bundle exec rake parallel_spec
47 changes: 0 additions & 47 deletions .travis.yml

This file was deleted.

7 changes: 7 additions & 0 deletions acceptance/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
[![Modules Status](https://github.com/puppetlabs/puppetlabs-puppet_agent/workflows/[Daily]%20Unit%20Tests%20with%nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-puppet_agent/actions)
[![Modules Status](https://github.com/puppetlabs/puppetlabs-puppet_agent/workflows/Static%20Code%20Analysis/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-puppet_agent/actions)
[![Modules Status](https://github.com/puppetlabs/puppetlabs-puppet_agent/workflows/Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-puppet_agent/actions)
[![Modules Status](https://github.com/puppetlabs/puppetlabs-puppet_agent/workflows/Unit%20Tests%20with%20released%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-puppet_agent/actions)
[![Modules Status](https://github.com/puppetlabs/puppetlabs-puppet_agent/workflows/Task%20Acceptance%20Tests/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-puppet_agent/actions)


# Acceptance tests for puppetlabs-puppet_agent

These integration tests use the [beaker](https://github.com/puppetlabs/beaker)
Expand Down

0 comments on commit 7777618

Please sign in to comment.