]> gitweb.fluxo.info Git - puppet-sshkeys_core.git/commitdiff
(MODULES-10800) Add GitHub Actions workflows
authorLuchian Nemes <luchian.nemes@puppet.com>
Tue, 8 Sep 2020 14:48:41 +0000 (17:48 +0300)
committerLuchian Nemes <luchian.nemes@puppet.com>
Thu, 10 Sep 2020 11:52:14 +0000 (14:52 +0300)
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.

.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml [new file with mode: 0644]
.github/workflows/static_code_analysis.yaml [new file with mode: 0644]
.github/workflows/unit_tests_with_nightly_puppet_gem.yaml [new file with mode: 0644]
.github/workflows/unit_tests_with_released_puppet_gem.yaml [new file with mode: 0644]
.travis.yml [deleted file]
README.md
appveyor.yml [deleted file]

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 (file)
index 0000000..b31bf18
--- /dev/null
@@ -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 (file)
index 0000000..ed4a232
--- /dev/null
@@ -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 (file)
index 0000000..8c5d909
--- /dev/null
@@ -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 (file)
index 0000000..065e2b9
--- /dev/null
@@ -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 (file)
index ed27d4d..0000000
+++ /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
index c045df9602a90432422d2c5f7a74a57524150b69..e3eac9b3789059d933a8f3c28187aca9764b4895 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,12 @@
 
 # sshkeys_core
 
+[![Modules Status](https://github.com/puppetlabs/puppetlabs-sshkeys_core/workflows/%5BDaily%5D%20Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-sshkeys_core/actions)
+[![Modules Status](https://github.com/puppetlabs/puppetlabs-sshkeys_core/workflows/Static%20Code%20Analysis/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-sshkeys_core/actions) 
+[![Modules Status](https://github.com/puppetlabs/puppetlabs-sshkeys_core/workflows/Unit%20Tests%20with%20nightly%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-sshkeys_core/actions) 
+[![Modules Status](https://github.com/puppetlabs/puppetlabs-sshkeys_core/workflows/Unit%20Tests%20with%20released%20Puppet%20gem/badge.svg?branch=main)](https://github.com/puppetlabs/puppetlabs-sshkeys_core/actions)
+
+
 ## Table of Contents
 
 1. [Description](#description)
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644 (file)
index ec38949..0000000
+++ /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