From 1eeda220d1b311e2dc0dfdab4e82d7edb8712d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20B=C3=A9rtoli?= Date: Fri, 21 Aug 2020 10:47:35 -0300 Subject: [PATCH] ci(travis,kitchen): update matrix --- .pre-commit-config.yaml | 56 ++++++++++++++++ .rstcheck.cfg | 3 + .travis.yml | 31 +++++++-- .yamllint | 3 +- kitchen.yml | 141 ++++++++++++++++++++-------------------- 5 files changed, 157 insertions(+), 77 deletions(-) create mode 100644 .pre-commit-config.yaml create mode 100644 .rstcheck.cfg diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..f4893e6 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +default_stages: [commit] +repos: + - repo: https://github.com/dafyddj/commitlint-pre-commit-hook + rev: v2.3.0 + hooks: + - id: commitlint + name: Check commit message using commitlint + description: Lint commit message against @commitlint/config-conventional rules + stages: [commit-msg] + additional_dependencies: ['@commitlint/config-conventional@8.3.4'] + - id: commitlint-travis + stages: [manual] + additional_dependencies: ['@commitlint/config-conventional@8.3.4'] + always_run: true + - repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 2.1.3 + hooks: + - id: rubocop + exclude: ^Gemfile\.lock$ + - id: shellcheck + name: Check shell scripts with shellcheck + exclude_types: [zsh] + args: [] + - repo: https://github.com/adrienverge/yamllint.git + rev: v1.23.0 + hooks: + - id: yamllint + name: Check YAML syntax with yamllint + args: [--strict] + types: [file] + files: > + (?x)^( + \.salt-lint| + \.yamllint| + .*\.example| + test/.*\.sls| + .*\.(yaml|yml) + )$ + exclude: ^test/salt/.*/.*\.sls$ + - repo: https://github.com/warpnet/salt-lint + rev: v0.3.0 + hooks: + - id: salt-lint + name: Check Salt files using salt-lint + files: ^.*\.(sls|jinja|j2|tmpl|tst)$ + - repo: https://github.com/myint/rstcheck + rev: 3f929574 + hooks: + - id: rstcheck + name: Check reST files using rstcheck + args: [--report=warning] diff --git a/.rstcheck.cfg b/.rstcheck.cfg new file mode 100644 index 0000000..05856dc --- /dev/null +++ b/.rstcheck.cfg @@ -0,0 +1,3 @@ +[rstcheck] +report=error +ignore_language=rst diff --git a/.travis.yml b/.travis.yml index 496e2df..e08a807 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,9 @@ jobs: # Run all of the linters in a single job - language: 'node_js' node_js: 'lts/*' + cache: + directories: + - $HOME/.cache/pre-commit env: 'Lint' name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint' before_install: 'skip' @@ -54,6 +57,10 @@ jobs: - npm i -D @commitlint/config-conventional @commitlint/travis-cli - commitlint-travis + # Install and run `pre-commit` + - pip install pre-commit + - pre-commit run --all-files --verbose + - pre-commit run --hook-stage manual --verbose commitlint-travis ## Define the rest of the matrix based on Kitchen testing # Make sure the instances listed below match up with @@ -69,11 +76,10 @@ jobs: # to allow for comprehensive local testing # Ref: https://github.com/saltstack-formulas/template-formula/issues/118 # Ref: https://github.com/saltstack-formulas/template-formula/issues/121 - - env: INSTANCE=default-debian-10-master-py3 - # env: INSTANCE=default-ubuntu-2004-master-py3 + - env: INSTANCE=default-ubuntu-2004-master-py3 # - env: INSTANCE=default-ubuntu-1804-master-py3 - env: INSTANCE=default-centos-8-master-py3 - # env: INSTANCE=default-fedora-32-master-py3 + - env: INSTANCE=default-fedora-32-master-py3 # - env: INSTANCE=default-fedora-31-master-py3 # - env: INSTANCE=default-opensuse-leap-152-master-py3 # - env: INSTANCE=default-amazonlinux-2-master-py3 @@ -83,8 +89,8 @@ jobs: # - env: INSTANCE=default-centos-8-3000-3-py3 # - env: INSTANCE=default-centos-7-3000-3-py3 # - env: INSTANCE=default-fedora-31-3000-3-py3 - # env: INSTANCE=default-opensuse-leap-152-3000-3-py3 - # env: INSTANCE=default-amazonlinux-2-3000-3-py3 + - env: INSTANCE=default-opensuse-leap-152-3000-3-py3 + - env: INSTANCE=default-amazonlinux-2-3000-3-py3 # - env: INSTANCE=default-ubuntu-1804-3000-3-py2 # - env: INSTANCE=default-ubuntu-1604-3000-3-py2 # - env: INSTANCE=default-arch-base-latest-3000-3-py2 @@ -100,6 +106,9 @@ jobs: # - env: INSTANCE=default-centos-6-2019-2-py2 # - env: INSTANCE=default-amazonlinux-1-2019-2-py2 - env: INSTANCE=default-arch-base-latest-2019-2-py2 + # REPO + - env: INSTANCE=repo-debian-10-3000-3-py3 + - env: INSTANCE=repo-centos-7-3000-3-py3 ## Define the release stage that runs `semantic-release` - stage: 'release' @@ -126,3 +135,15 @@ jobs: edge: true # Run `semantic-release` script: 'npx semantic-release@15.14' + +# Notification options: `always`, `never` or `change` +notifications: + webhooks: + if: 'repo = saltstack-formulas/prometheus-formula' + urls: + - https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=saltstack-formulas%2Fprometheus-formula&ignore_pull_requests=true + on_success: always # default: always + on_failure: always # default: always + on_start: always # default: never + on_cancel: always # default: always + on_error: always # default: always diff --git a/.yamllint b/.yamllint index a1d0979..ad379ab 100644 --- a/.yamllint +++ b/.yamllint @@ -10,7 +10,7 @@ extends: default # 3. Any YAML files under directory `.kitchen/`, introduced during local testing ignore: | node_modules/ - test/**/states/**/*.sls + test/**/*.sls .kitchen/ bin/kitchen prometheus/osfamilymap.yaml @@ -24,7 +24,6 @@ yaml-files: - .yamllint # SaltStack Formulas additional settings - '*.example' - - test/**/*.sls rules: empty-values: diff --git a/kitchen.yml b/kitchen.yml index ff8442c..d47979f 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -15,20 +15,26 @@ platforms: - name: debian-10-master-py3 driver: image: saltimages/salt-master-py3:debian-10 + - name: ubuntu-2004-master-py3 + driver: + image: saltimages/salt-master-py3:ubuntu-20.04 - name: ubuntu-1804-master-py3 driver: image: saltimages/salt-master-py3:ubuntu-18.04 - name: centos-8-master-py3 driver: image: saltimages/salt-master-py3:centos-8 + - name: fedora-32-master-py3 + driver: + image: saltimages/salt-master-py3:fedora-32 - name: fedora-31-master-py3 driver: image: saltimages/salt-master-py3:fedora-31 - - name: opensuse-leap-151-master-py3 + - name: opensuse-leap-152-master-py3 driver: - image: netmanagers/salt-master-py3:opensuse-leap-15.1 + image: saltimages/salt-master-py3:opensuse-leap-15.2 run_command: /usr/lib/systemd/systemd - # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.2`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 @@ -36,6 +42,47 @@ platforms: driver: image: saltimages/salt-master-py3:amazonlinux-2 + ## SALT `3000.3` + - name: debian-10-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:debian-10 + - name: debian-9-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:debian-9 + - name: ubuntu-1804-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:ubuntu-18.04 + - name: centos-8-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:centos-8 + - name: centos-7-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:centos-7 + - name: fedora-31-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:fedora-31 + - name: opensuse-leap-152-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:opensuse-leap-15.2 + run_command: /usr/lib/systemd/systemd + # Workaround to avoid intermittent failures on `opensuse-leap-15.2`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: amazonlinux-2-3000-3-py3 + driver: + image: saltimages/salt-3000.3-py3:amazonlinux-2 + - name: ubuntu-1804-3000-3-py2 + driver: + image: saltimages/salt-3000.3-py2:ubuntu-18.04 + - name: ubuntu-1604-3000-3-py2 + driver: + image: saltimages/salt-3000.3-py2:ubuntu-16.04 + - name: arch-base-latest-3000-3-py2 + driver: + image: saltimages/salt-3000.3-py2:arch-base-latest + run_command: /usr/lib/systemd/systemd + ## SALT `2019.2` - name: debian-10-2019-2-py3 driver: @@ -46,92 +93,42 @@ platforms: - name: ubuntu-1804-2019-2-py3 driver: image: saltimages/salt-2019.2-py3:ubuntu-18.04 + - name: ubuntu-1604-2019-2-py3 + driver: + image: saltimages/salt-2019.2-py3:ubuntu-16.04 - name: centos-8-2019-2-py3 driver: image: saltimages/salt-2019.2-py3:centos-8 + - name: centos-7-2019-2-py3 + driver: + image: saltimages/salt-2019.2-py3:centos-7 - name: fedora-31-2019-2-py3 driver: image: saltimages/salt-2019.2-py3:fedora-31 - - name: opensuse-leap-151-2019-2-py3 + - name: opensuse-leap-152-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py3:opensuse-leap-15.1 + image: saltimages/salt-2019.2-py3:opensuse-leap-15.2 run_command: /usr/lib/systemd/systemd - # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.2`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: centos-7-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:centos-7 - name: amazonlinux-2-2019-2-py3 driver: image: saltimages/salt-2019.2-py3:amazonlinux-2 + - name: centos-6-2019-2-py2 + driver: + image: saltimages/salt-2019.2-py2:centos-6 + run_command: /sbin/init + - name: amazonlinux-1-2019-2-py2 + driver: + image: saltimages/salt-2019.2-py2:amazonlinux-1 + run_command: /sbin/init - name: arch-base-latest-2019-2-py2 driver: image: saltimages/salt-2019.2-py2:arch-base-latest run_command: /usr/lib/systemd/systemd - ## SALT `2018.3` - - name: fedora-30-2018-3-py3 - driver: - image: netmanagers/salt-2018.3-py3:fedora-30 - - name: debian-9-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:debian-9 - - name: ubuntu-1604-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:ubuntu-16.04 - - name: centos-7-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:centos-7 - - name: opensuse-leap-151-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:opensuse-leap-15.1 - run_command: /usr/lib/systemd/systemd - # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: - # => SCP did not finish successfully (255): (Net::SCP::Error) - transport: - max_ssh_sessions: 1 - - name: amazonlinux-1-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd - - ## SALT `2017.7` - - name: debian-8-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:debian-8 - - name: ubuntu-1604-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:ubuntu-16.04 - - name: centos-6-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:centos-6 - run_command: /sbin/init - - name: fedora-30-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:fedora-30 - - name: opensuse-leap-151-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:opensuse-leap-15.1 - run_command: /usr/lib/systemd/systemd - # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: - # => SCP did not finish successfully (255): (Net::SCP::Error) - transport: - max_ssh_sessions: 1 - - name: amazonlinux-1-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd - provisioner: name: salt_solo log_level: debug @@ -152,6 +149,8 @@ verifier: suites: - name: default + excludes: + - centos-6-2018-3-py2 provisioner: state_top: base: @@ -169,6 +168,8 @@ suites: inspec_tests: - path: test/integration/default - name: repo + excludes: + - centos-6-2018-3-py2 provisioner: state_top: base: