diff --git a/.github/workflows/kitchen.vagrant.yml b/.github/workflows/kitchen.vagrant.yml new file mode 100644 index 0000000..2dac76a --- /dev/null +++ b/.github/workflows/kitchen.vagrant.yml @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: 'Kitchen Vagrant (FreeBSD)' +'on': ['push', 'pull_request'] + +env: + KITCHEN_LOCAL_YAML: 'kitchen.vagrant.yml' + +jobs: + test: + runs-on: 'macos-10.15' + strategy: + fail-fast: false + matrix: + instance: + - default-freebsd-122-latest-py3 + # - freebsd-122-latest-py3 + - default-freebsd-114-latest-py3 + # - freebsd-114-latest-py3 + steps: + - name: 'Check out code' + uses: 'actions/checkout@v2' + - name: 'Set up Bundler cache' + uses: 'actions/cache@v1' + with: + path: 'vendor/bundle' + key: "${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}" + restore-keys: "${{ runner.os }}-gems-" + - name: 'Run Bundler' + run: | + ruby --version + bundle config path vendor/bundle + bundle install --jobs 4 --retry 3 + - name: 'Run Test Kitchen' + run: 'bundle exec kitchen verify ${{ matrix.instance }}' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 53a837e..ea8271b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,6 +17,14 @@ repos: stages: [manual] additional_dependencies: ['@commitlint/config-conventional@8.3.4'] always_run: true + - repo: https://github.com/rubocop-hq/rubocop + rev: v1.9.1 + hooks: + - id: rubocop + name: Check Ruby files with rubocop + args: [--debug] + always_run: true + pass_filenames: false - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.7.1.1 hooks: diff --git a/.travis.yml b/.travis.yml index 905a129..eae765c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,17 +36,14 @@ stages: # - name: 'release' # if: 'branch = master AND type != pull_request' jobs: - allow_failures: - - env: Lint_rubocop - fast_finish: true include: ## Define the test stage that runs the linters (and testing matrix, if applicable) - # Run all of the linters in a single job (except `rubocop`) + # Run all of the linters in a single job - language: 'node_js' node_js: 'lts/*' env: 'Lint' - name: 'Lint: salt-lint, yamllint, shellcheck & commitlint' + name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint' before_install: 'skip' script: # Install and run `salt-lint` @@ -57,6 +54,9 @@ jobs: # Need at least `v1.17.0` for the `yaml-files` setting - pip install --user yamllint>=1.17.0 - yamllint -s . + # Install and run `rubocop` + - gem install rubocop + - rubocop -d # Run `shellcheck` (already pre-installed in Travis) - shellcheck --version - git ls-files -- '*.sh' '*.bash' '*.ksh' @@ -65,17 +65,6 @@ jobs: - npm i -D @commitlint/config-conventional @commitlint/travis-cli - commitlint-travis - # Run the `rubocop` linter in a separate job that is allowed to fail - # Once these lint errors are fixed, this can be merged into a single job - - language: node_js - node_js: lts/* - env: Lint_rubocop - name: 'Lint: rubocop' - before_install: skip - script: - # Install and run `rubocop` - - gem install rubocop - - rubocop -d # Run `pre-commit` linters in a single job - language: 'python' diff --git a/Gemfile b/Gemfile index c08ad6c..8be107e 100644 --- a/Gemfile +++ b/Gemfile @@ -12,3 +12,7 @@ gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure # rubocop:enable Layout/LineLength gem 'kitchen-inspec', '>= 2.2.1' gem 'kitchen-salt', '>= 0.6.3' + +group :vagrant do + gem 'kitchen-vagrant' +end diff --git a/Gemfile.lock b/Gemfile.lock index d7cbc3b..ef26d96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -292,6 +292,8 @@ GEM kitchen-salt (0.6.3) hashie (>= 3.5) test-kitchen (>= 1.4) + kitchen-vagrant (1.7.0) + test-kitchen (>= 1.4, < 3) libyajl2 (1.2.0) license-acceptance (1.0.19) pastel (~> 0.7) @@ -525,6 +527,7 @@ DEPENDENCIES kitchen-docker! kitchen-inspec (>= 2.2.1) kitchen-salt (>= 0.6.3) + kitchen-vagrant BUNDLED WITH 2.1.2 diff --git a/kitchen.vagrant.yml b/kitchen.vagrant.yml new file mode 100644 index 0000000..cb9c6d9 --- /dev/null +++ b/kitchen.vagrant.yml @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +driver: + name: vagrant + cache_directory: false + customize: + usbxhci: 'off' + gui: false + linked_clone: true + ssh: + shell: /bin/sh + +platforms: + - name: freebsd-122-latest-py3 + driver: + box: bento/freebsd-12.2 + - name: freebsd-114-latest-py3 + driver: + box: bento/freebsd-11.4 + +provisioner: + salt_install: bootstrap diff --git a/kitchen.yml b/kitchen.yml index d137d21..b505c9b 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -326,6 +326,13 @@ suites: - path: test/integration/default - name: passenger includes: + - debian-10-tiamat-py3 + - debian-9-tiamat-py3 + - ubuntu-2004-tiamat-py3 + - ubuntu-1804-tiamat-py3 + - centos-8-tiamat-py3 + - centos-7-tiamat-py3 + - oraclelinux-8-tiamat-py3 - debian-10-master-py3 - debian-9-master-py3 - ubuntu-2004-master-py3 @@ -333,6 +340,27 @@ suites: - centos-8-master-py3 - centos-7-master-py3 - oraclelinux-8-master-py3 + - debian-10-3002-5-py3 + - debian-9-3002-5-py3 + - ubuntu-2004-3002-5-py3 + - ubuntu-1804-3002-5-py3 + - centos-8-3002-5-py3 + - centos-7-3002-5-py3 + - oraclelinux-8-3002-5-py3 + - debian-10-3001-6-py3 + - debian-9-3001-6-py3 + - ubuntu-2004-3001-6-py3 + - ubuntu-1804-3001-6-py3 + - centos-8-3001-6-py3 + - centos-7-3001-6-py3 + - oraclelinux-8-3001-6-py3 + - debian-10-3000-8-py3 + - debian-9-3000-8-py3 + - ubuntu-1804-3000-8-py3 + - centos-8-3000-8-py3 + - centos-7-3000-8-py3 + - oraclelinux-8-3000-8-py3 + - ubuntu-1804-3000-8-py2 provisioner: state_top: base: