diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 0000000..42a5375 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: Commitlint +'on': [pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: wagoid/commitlint-github-action@v1 diff --git a/.gitignore b/.gitignore index 0bbb03c..39752a7 100644 --- a/.gitignore +++ b/.gitignore @@ -91,6 +91,9 @@ celerybeat-schedule venv/ ENV/ +# visual studio +.vs/ + # Spyder project settings .spyderproject .spyproject @@ -105,7 +108,7 @@ ENV/ .mypy_cache/ # Bundler -Gemfile.lock +.bundle/ # copied `.md` files used for conversion to `.rst` using `m2r` docs/*.md @@ -120,3 +123,12 @@ docs/*.md Dockerfile.*_* ignore/ tmp/ + +# `salt-formula` -- Vagrant Specific files +.vagrant +top.sls +!test/salt/pillar/top.sls + +# `suricata-formula` -- Platform binaries +*.rpm +*.deb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..1c6c241 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,212 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +############################################################################### +# Define all YAML node anchors +############################################################################### +.node_anchors: + # `only` (also used for `except` where applicable) + only_branch_master_parent_repo: &only_branch_master_parent_repo + - 'master@saltstack-formulas/influxdb-formula' + # `stage` + stage_lint: &stage_lint 'lint' + stage_release: &stage_release 'release' + stage_test: &stage_test 'test' + # `image` + image_commitlint: &image_commitlint 'myii/ssf-commitlint:11' + image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3' + image_precommit: &image_precommit + name: 'myii/ssf-pre-commit:2.9.2' + entrypoint: ['/bin/bash', '-c'] + image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest' + image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' + # `services` + services_docker_dind: &services_docker_dind + - 'docker:dind' + # `variables` + # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 + # https://bundler.io/v1.16/bundle_config.html + variables_bundler: &variables_bundler + BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' + BUNDLE_WITHOUT: 'production' + # `cache` + cache_bundler: &cache_bundler + key: '${CI_JOB_STAGE}' + paths: + - '${BUNDLE_CACHE_PATH}' + +############################################################################### +# Define stages and global variables +############################################################################### +stages: + - *stage_lint + - *stage_test + - *stage_release +variables: + DOCKER_DRIVER: 'overlay2' + +############################################################################### +# `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed) +############################################################################### +commitlint: + stage: *stage_lint + image: *image_commitlint + script: + # Add `upstream` remote to get access to `upstream/master` + - 'git remote add upstream + https://gitlab.com/saltstack-formulas/influxdb-formula.git' + - 'git fetch --all' + # Set default commit hashes for `--from` and `--to` + - 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"' + - 'export COMMITLINT_TO="${CI_COMMIT_SHA}"' + # `coqbot` adds a merge commit to test PRs on top of the latest commit in + # the repo; amend this merge commit message to avoid failure + - | + if [ "${GITLAB_USER_LOGIN}" = "coqbot" ] \ + && [ "${CI_COMMIT_BRANCH}" != "master" ]; then + git commit --amend -m \ + 'chore: reword coqbot merge commit message for commitlint' + export COMMITLINT_TO=HEAD + fi + # Run `commitlint` + - 'commitlint --from "${COMMITLINT_FROM}" + --to "${COMMITLINT_TO}" + --verbose' + +pre-commit: + stage: *stage_lint + image: *image_precommit + # https://pre-commit.com/#gitlab-ci-example + variables: + PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' + cache: + key: '${CI_JOB_NAME}' + paths: + - '${PRE_COMMIT_HOME}' + script: + - 'pre-commit run --all-files --color always --verbose' + +# Use a separate job for `rubocop` other than the one potentially run by `pre-commit` +# - The `pre-commit` check will only be available for formulas that pass the default +# `rubocop` check -- and must continue to do so +# - This job is allowed to fail, so can be used for all formulas +# - Furthermore, this job uses all of the latest `rubocop` features & cops, +# which will help when upgrading the `rubocop` linter used in `pre-commit` +rubocop: + allow_failure: true + stage: *stage_lint + image: *image_rubocop + script: + - 'rubocop -d -P -S --enable-pending-cops' + +############################################################################### +# Define `test` template +############################################################################### +.test_instance: &test_instance + stage: *stage_test + image: *image_dindruby + services: *services_docker_dind + variables: *variables_bundler + cache: *cache_bundler + before_script: + # TODO: This should work from the env vars above automatically + - 'bundle config set path "${BUNDLE_CACHE_PATH}"' + - 'bundle config set without "${BUNDLE_WITHOUT}"' + - 'bundle install' + script: + # Alternative value to consider: `${CI_JOB_NAME}` + - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' + +############################################################################### +# Define `test` template (`allow_failure: true`) +############################################################################### +.test_instance_failure_permitted: + <<: *test_instance + allow_failure: true + +############################################################################### +# `test` stage: each instance below uses the `test` template above +############################################################################### +## Define the rest of the matrix based on Kitchen testing +# Make sure the instances listed below match up with +# the `platforms` defined in `kitchen.yml` +# yamllint disable rule:line-length +# default-debian-11-tiamat-py3: {extends: '.test_instance'} +# default-debian-10-tiamat-py3: {extends: '.test_instance'} +# default-debian-9-tiamat-py3: {extends: '.test_instance'} +# default-ubuntu-2204-tiamat-py3: {extends: '.test_instance_failure_permitted'} +# default-ubuntu-2004-tiamat-py3: {extends: '.test_instance'} +# default-ubuntu-1804-tiamat-py3: {extends: '.test_instance'} +# default-centos-stream8-tiamat-py3: {extends: '.test_instance_failure_permitted'} +# default-centos-7-tiamat-py3: {extends: '.test_instance'} +# default-amazonlinux-2-tiamat-py3: {extends: '.test_instance'} +# default-oraclelinux-8-tiamat-py3: {extends: '.test_instance'} +# default-oraclelinux-7-tiamat-py3: {extends: '.test_instance'} +# default-almalinux-8-tiamat-py3: {extends: '.test_instance'} +# default-rockylinux-8-tiamat-py3: {extends: '.test_instance'} +default-debian-11-master-py3: {extends: '.test_instance'} +default-debian-10-master-py3: {extends: '.test_instance'} +default-debian-9-master-py3: {extends: '.test_instance'} +default-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'} +default-ubuntu-2004-master-py3: {extends: '.test_instance'} +default-ubuntu-1804-master-py3: {extends: '.test_instance'} +default-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'} +default-centos-7-master-py3: {extends: '.test_instance'} +default-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'} +default-fedora-35-master-py3: {extends: '.test_instance'} +default-opensuse-leap-153-master-py3: {extends: '.test_instance'} +default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'} +default-amazonlinux-2-master-py3: {extends: '.test_instance'} +default-oraclelinux-8-master-py3: {extends: '.test_instance'} +default-oraclelinux-7-master-py3: {extends: '.test_instance'} +# default-arch-base-latest-master-py3: {extends: '.test_instance'} +# default-gentoo-stage3-latest-master-py3: {extends: '.test_instance'} +# default-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'} +default-almalinux-8-master-py3: {extends: '.test_instance'} +default-rockylinux-8-master-py3: {extends: '.test_instance'} +# default-debian-11-3004-1-py3: {extends: '.test_instance'} +# default-debian-10-3004-1-py3: {extends: '.test_instance'} +# default-debian-9-3004-1-py3: {extends: '.test_instance'} +# default-ubuntu-2204-3004-1-py3: {extends: '.test_instance_failure_permitted'} +# default-ubuntu-2004-3004-1-py3: {extends: '.test_instance'} +# default-ubuntu-1804-3004-1-py3: {extends: '.test_instance'} +# default-centos-stream8-3004-1-py3: {extends: '.test_instance_failure_permitted'} +# default-centos-7-3004-1-py3: {extends: '.test_instance'} +# default-fedora-36-3004-1-py3: {extends: '.test_instance_failure_permitted'} +# default-fedora-35-3004-1-py3: {extends: '.test_instance'} +# default-amazonlinux-2-3004-1-py3: {extends: '.test_instance'} +# default-oraclelinux-8-3004-1-py3: {extends: '.test_instance'} +# default-oraclelinux-7-3004-1-py3: {extends: '.test_instance'} +# default-arch-base-latest-3004-1-py3: {extends: '.test_instance'} +# default-gentoo-stage3-latest-3004-1-py3: {extends: '.test_instance'} +# default-gentoo-stage3-systemd-3004-1-py3: {extends: '.test_instance'} +# default-almalinux-8-3004-1-py3: {extends: '.test_instance'} +# default-rockylinux-8-3004-1-py3: {extends: '.test_instance'} +# default-opensuse-leap-153-3004-0-py3: {extends: '.test_instance'} +# default-opensuse-tmbl-latest-3004-0-py3: {extends: '.test_instance_failure_permitted'} +# default-debian-10-3003-4-py3: {extends: '.test_instance'} +# default-debian-9-3003-4-py3: {extends: '.test_instance'} +# default-ubuntu-2004-3003-4-py3: {extends: '.test_instance'} +# default-ubuntu-1804-3003-4-py3: {extends: '.test_instance'} +# default-centos-stream8-3003-4-py3: {extends: '.test_instance_failure_permitted'} +# default-centos-7-3003-4-py3: {extends: '.test_instance'} +# default-amazonlinux-2-3003-4-py3: {extends: '.test_instance'} +# default-oraclelinux-8-3003-4-py3: {extends: '.test_instance'} +# default-oraclelinux-7-3003-4-py3: {extends: '.test_instance'} +# default-almalinux-8-3003-4-py3: {extends: '.test_instance'} +# yamllint enable rule:line-length + +############################################################################### +# `release` stage: `semantic-release` +############################################################################### +semantic-release: + only: *only_branch_master_parent_repo + stage: *stage_release + image: *image_semanticrelease + variables: + MAINTAINER_TOKEN: '${GH_TOKEN}' + script: + # Update `AUTHORS.md` + - '${HOME}/go/bin/maintainer contributor' + # Run `semantic-release` + - 'semantic-release' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..1299a84 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +ci: + autofix_commit_msg: | + ci(pre-commit.ci): apply auto fixes from pre-commit.com hooks + + For more information, see https://pre-commit.ci + autofix_prs: true + autoupdate_branch: '' + autoupdate_commit_msg: | + ci(pre-commit.ci): perform `pre-commit` autoupdate + autoupdate_schedule: quarterly + skip: [] + submodules: false +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/rubocop-hq/rubocop + rev: v1.30.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.8.0.4 + hooks: + - id: shellcheck + name: Check shell scripts with shellcheck + files: ^.*\.(sh|bash|ksh)$ + types: [] + - repo: https://github.com/adrienverge/yamllint + rev: v1.26.3 + hooks: + - id: yamllint + name: Check YAML syntax with yamllint + args: [--strict, '.'] + always_run: true + pass_filenames: false + - repo: https://github.com/warpnet/salt-lint + rev: v0.8.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 + exclude: 'docs/CHANGELOG.rst' + - repo: https://github.com/saltstack-formulas/mirrors-rst-lint + rev: v1.3.2 + hooks: + - id: rst-lint + name: Check reST files using rst-lint + exclude: | + (?x)^( + docs/CHANGELOG.rst| + docs/TOFS_pattern.rst| + )$ + additional_dependencies: [pygments==2.9.0] diff --git a/.rstcheck.cfg b/.rstcheck.cfg new file mode 100644 index 0000000..5383623 --- /dev/null +++ b/.rstcheck.cfg @@ -0,0 +1,4 @@ +[rstcheck] +report=info +ignore_language=rst +ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$) diff --git a/.rubocop.yml b/.rubocop.yml index bdae9aa..bf4d107 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,9 +2,22 @@ # vim: ft=yaml --- # General overrides used across formulas in the org -Metrics/LineLength: +Layout/LineLength: # Increase from default of `80` # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) Max: 88 +Metrics/BlockLength: + IgnoredMethods: + - control + - describe + # Increase from default of `25` + Max: 30 +Security/YAMLLoad: + Exclude: + - test/integration/**/_mapdata.rb + +# General settings across all cops in this formula +AllCops: + NewCops: enable # Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config` diff --git a/.salt-lint b/.salt-lint index a539954..3715677 100644 --- a/.salt-lint +++ b/.salt-lint @@ -2,6 +2,7 @@ # vim: ft=yaml --- exclude_paths: [] +rules: {} skip_list: # Using `salt-lint` for linting other files as well, such as Jinja macros/templates - 205 # Use ".sls" as a Salt State file extension diff --git a/.travis.yml b/.travis.yml index 4cf7de7..7435e35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,28 @@ # -*- coding: utf-8 -*- # vim: ft=yaml --- +################################################################################ +# NOTE: This file is UNMAINTAINED; it is provided for references purposes only. +# No guarantees are tendered that this structure will work after 2020. +################################################################################ +# * https://en.wikipedia.org/wiki/Travis_CI: +# - "... free open-source plans were removed in [sic] the end of 2020" +# - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing +# - https://ropensci.org/technotes/2020/11/19/moving-away-travis/ +################################################################################ ## Machine config -dist: bionic -sudo: required -services: - - docker +os: 'linux' +arch: 'amd64' +dist: 'bionic' +version: '~> 1.0' ## Language and cache config -language: ruby -cache: bundler +language: 'ruby' +cache: 'bundler' + +## Services config +services: + - docker ## Script to run for the test stage script: @@ -18,23 +31,25 @@ script: ## Stages and jobs matrix stages: - test - - name: release - if: branch = master AND type != pull_request + # # As part of the switch away from Travis CI, ensure that the `release` stage + # # is not run inadvertently + # - name: 'release' + # if: 'branch = master AND type != pull_request' jobs: include: ## Define the test stage that runs the linters (and testing matrix, if applicable) # Run all of the linters in a single job - - language: node_js - node_js: lts/* - env: Lint - name: 'Lint: salt-lint, yamllint, rubocop & commitlint' - before_install: skip + - language: 'node_js' + node_js: 'lts/*' + env: 'Lint' + name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint' + before_install: 'skip' script: # Install and run `salt-lint` - pip install --user salt-lint - - git ls-files | grep '\.sls$\|\.jinja$\|\.j2$\|\.tmpl$' - | xargs -I {} salt-lint {} + - git ls-files -- '*.sls' '*.jinja' '*.j2' '*.tmpl' '*.tst' + | xargs salt-lint # Install and run `yamllint` # Need at least `v1.17.0` for the `yaml-files` setting - pip install --user yamllint>=1.17.0 @@ -42,50 +57,103 @@ jobs: # Install and run `rubocop` - gem install rubocop - rubocop -d + # Run `shellcheck` (already pre-installed in Travis) + - shellcheck --version + - git ls-files -- '*.sh' '*.bash' '*.ksh' + | xargs shellcheck # Install and run `commitlint` - - npm install @commitlint/config-conventional -D - - npm install @commitlint/travis-cli -D + - npm i -D @commitlint/config-conventional + @commitlint/travis-cli - commitlint-travis + # Run `pre-commit` linters in a single job + - language: 'python' + env: 'Lint_pre-commit' + name: 'Lint: pre-commit' + before_install: 'skip' + cache: + directories: + - $HOME/.cache/pre-commit + script: + # Install and run `pre-commit` + - pip install pre-commit==2.7.1 + - pre-commit run --all-files --color always --verbose + - pre-commit run --color always --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 # the `platforms` defined in `kitchen.yml` - - env: INSTANCE=default-debian-10-develop-py3 - # - env: INSTANCE=default-ubuntu-1804-develop-py3 - # - env: INSTANCE=default-centos-7-develop-py3 - # - env: INSTANCE=default-fedora-30-develop-py3 - # - env: INSTANCE=default-opensuse-leap-15-develop-py3 - # - env: INSTANCE=default-amazonlinux-2-develop-py2 - # - env: INSTANCE=default-arch-base-latest-develop-py2 - # - env: INSTANCE=default-debian-9-2019-2-py3 - - env: INSTANCE=default-ubuntu-1804-2019-2-py3 - # - env: INSTANCE=default-centos-7-2019-2-py3 - # - env: INSTANCE=default-fedora-30-2019-2-py3 - # - env: INSTANCE=default-opensuse-leap-15-2019-2-py3 - - env: INSTANCE=default-amazonlinux-2-2019-2-py2 - # - env: INSTANCE=default-arch-base-latest-2019-2-py2 - # - env: INSTANCE=default-debian-9-2018-3-py2 - # - env: INSTANCE=default-ubuntu-1604-2018-3-py2 - # - env: INSTANCE=default-centos-7-2018-3-py2 - - env: INSTANCE=default-fedora-29-2018-3-py2 - - env: INSTANCE=default-opensuse-leap-15-2018-3-py2 - # - env: INSTANCE=default-amazonlinux-2-2018-3-py2 - # - env: INSTANCE=default-arch-base-latest-2018-3-py2 - # - env: INSTANCE=default-debian-8-2017-7-py2 - # - env: INSTANCE=default-ubuntu-1604-2017-7-py2 - - env: INSTANCE=default-centos-6-2017-7-py2 - # - env: INSTANCE=default-fedora-29-2017-7-py2 - # - env: INSTANCE=default-opensuse-leap-15-2017-7-py2 - # - env: INSTANCE=default-amazonlinux-2-2017-7-py2 - # - env: INSTANCE=default-arch-base-latest-2017-7-py2 + # - env: INSTANCE=default-debian-11-tiamat-py3 + # - env: INSTANCE=default-debian-10-tiamat-py3 + # - env: INSTANCE=default-debian-9-tiamat-py3 + # - env: INSTANCE=default-ubuntu-2204-tiamat-py3 + # - env: INSTANCE=default-ubuntu-2004-tiamat-py3 + # - env: INSTANCE=default-ubuntu-1804-tiamat-py3 + # - env: INSTANCE=default-centos-stream8-tiamat-py3 + # - env: INSTANCE=default-centos-7-tiamat-py3 + # - env: INSTANCE=default-amazonlinux-2-tiamat-py3 + # - env: INSTANCE=default-oraclelinux-8-tiamat-py3 + # - env: INSTANCE=default-oraclelinux-7-tiamat-py3 + # - env: INSTANCE=default-almalinux-8-tiamat-py3 + # - env: INSTANCE=default-rockylinux-8-tiamat-py3 + - env: INSTANCE=default-debian-11-master-py3 + - env: INSTANCE=default-debian-10-master-py3 + - env: INSTANCE=default-debian-9-master-py3 + - env: INSTANCE=default-ubuntu-2204-master-py3 + - env: INSTANCE=default-ubuntu-2004-master-py3 + - env: INSTANCE=default-ubuntu-1804-master-py3 + - env: INSTANCE=default-centos-stream8-master-py3 + - env: INSTANCE=default-centos-7-master-py3 + - env: INSTANCE=default-fedora-36-master-py3 + - env: INSTANCE=default-fedora-35-master-py3 + - env: INSTANCE=default-opensuse-leap-153-master-py3 + - env: INSTANCE=default-opensuse-tmbl-latest-master-py3 + - env: INSTANCE=default-amazonlinux-2-master-py3 + - env: INSTANCE=default-oraclelinux-8-master-py3 + - env: INSTANCE=default-oraclelinux-7-master-py3 + # - env: INSTANCE=default-arch-base-latest-master-py3 + # - env: INSTANCE=default-gentoo-stage3-latest-master-py3 + # - env: INSTANCE=default-gentoo-stage3-systemd-master-py3 + - env: INSTANCE=default-almalinux-8-master-py3 + - env: INSTANCE=default-rockylinux-8-master-py3 + # - env: INSTANCE=default-debian-11-3004-1-py3 + # - env: INSTANCE=default-debian-10-3004-1-py3 + # - env: INSTANCE=default-debian-9-3004-1-py3 + # - env: INSTANCE=default-ubuntu-2204-3004-1-py3 + # - env: INSTANCE=default-ubuntu-2004-3004-1-py3 + # - env: INSTANCE=default-ubuntu-1804-3004-1-py3 + # - env: INSTANCE=default-centos-stream8-3004-1-py3 + # - env: INSTANCE=default-centos-7-3004-1-py3 + # - env: INSTANCE=default-fedora-36-3004-1-py3 + # - env: INSTANCE=default-fedora-35-3004-1-py3 + # - env: INSTANCE=default-amazonlinux-2-3004-1-py3 + # - env: INSTANCE=default-oraclelinux-8-3004-1-py3 + # - env: INSTANCE=default-oraclelinux-7-3004-1-py3 + # - env: INSTANCE=default-arch-base-latest-3004-1-py3 + # - env: INSTANCE=default-gentoo-stage3-latest-3004-1-py3 + # - env: INSTANCE=default-gentoo-stage3-systemd-3004-1-py3 + # - env: INSTANCE=default-almalinux-8-3004-1-py3 + # - env: INSTANCE=default-rockylinux-8-3004-1-py3 + # - env: INSTANCE=default-opensuse-leap-153-3004-0-py3 + # - env: INSTANCE=default-opensuse-tmbl-latest-3004-0-py3 + # - env: INSTANCE=default-debian-10-3003-4-py3 + # - env: INSTANCE=default-debian-9-3003-4-py3 + # - env: INSTANCE=default-ubuntu-2004-3003-4-py3 + # - env: INSTANCE=default-ubuntu-1804-3003-4-py3 + # - env: INSTANCE=default-centos-stream8-3003-4-py3 + # - env: INSTANCE=default-centos-7-3003-4-py3 + # - env: INSTANCE=default-amazonlinux-2-3003-4-py3 + # - env: INSTANCE=default-oraclelinux-8-3003-4-py3 + # - env: INSTANCE=default-oraclelinux-7-3003-4-py3 + # - env: INSTANCE=default-almalinux-8-3003-4-py3 ## Define the release stage that runs `semantic-release` - - stage: release - language: node_js - node_js: lts/* - env: Release + - stage: 'release' + language: 'node_js' + node_js: 'lts/*' + env: 'Release' name: 'Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA' - before_install: skip + before_install: 'skip' script: # Update `AUTHORS.md` - export MAINTAINER_TOKEN=${GH_TOKEN} @@ -93,12 +161,26 @@ jobs: - maintainer contributor # Install all dependencies required for `semantic-release` - - npm install @semantic-release/changelog@3 -D - - npm install @semantic-release/exec@3 -D - - npm install @semantic-release/git@7 -D + - npm i -D @semantic-release/changelog@3 + @semantic-release/exec@3 + @semantic-release/git@7 deploy: - provider: script - skip_cleanup: true - script: - # Run `semantic-release` - - npx semantic-release@15 + provider: 'script' + # Opt-in to `dpl v2` to complete the Travis build config validation (beta) + # * https://docs.travis-ci.com/user/build-config-validation + # Deprecated `skip_cleanup` can now be avoided, `cleanup: false` is by default + edge: true + # Run `semantic-release` + script: 'npx semantic-release@15.14' + +# Notification options: `always`, `never` or `change` +notifications: + webhooks: + if: 'repo = saltstack-formulas/influxdb-formula' + urls: + - https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=saltstack-formulas%2Finfluxdb-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 740beca..716baaf 100644 --- a/.yamllint +++ b/.yamllint @@ -2,16 +2,24 @@ # vim: ft=yaml --- # Extend the `default` configuration provided by `yamllint` -extends: default +extends: 'default' # Files to ignore completely -# 1. All YAML files under directory `node_modules/`, introduced during the Travis run -# 2. Any SLS files under directory `test/`, which are actually state files -# 3. Any YAML files under directory `.kitchen/`, introduced during local testing +# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally +# 2. All YAML files under directory `.cache/`, introduced during the CI run +# 3. All YAML files under directory `.git/` +# 4. All YAML files under directory `node_modules/`, introduced during the CI run +# 5. Any SLS files under directory `test/`, which are actually state files +# 6. Any YAML files under directory `.kitchen/`, introduced during local testing +# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax ignore: | + .bundle/ + .cache/ + .git/ node_modules/ test/**/states/**/*.sls .kitchen/ + kitchen.vagrant.yml yaml-files: # Default settings diff --git a/AUTHORS.md b/AUTHORS.md index 37211c0..434bfbd 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -4,18 +4,18 @@ This list is sorted by the number of commits per contributor in _descending_ ord Avatar|Contributor|Contributions :-:|---|:-: +@myii|[@myii](https://github.com/myii)|59 @babilen5|[@babilen5](https://github.com/babilen5)|49 @alfredopalhares|[@alfredopalhares](https://github.com/alfredopalhares)|40 -@myii|[@myii](https://github.com/myii)|21 @n-rodriguez|[@n-rodriguez](https://github.com/n-rodriguez)|17 @nmadhok|[@nmadhok](https://github.com/nmadhok)|7 @aboe76|[@aboe76](https://github.com/aboe76)|3 @ruimarinho|[@ruimarinho](https://github.com/ruimarinho)|3 @fixe|[@fixe](https://github.com/fixe)|3 @iggy|[@iggy](https://github.com/iggy)|2 +@dafyddj|[@dafyddj](https://github.com/dafyddj)|2 @racingferret|[@racingferret](https://github.com/racingferret)|2 @gravyboat|[@gravyboat](https://github.com/gravyboat)|1 -@gianarb|[@gianarb](https://github.com/gianarb)|1 @qybl|[@qybl](https://github.com/qybl)|1 @nunofgs|[@nunofgs](https://github.com/nunofgs)|1 @whiteinge|[@whiteinge](https://github.com/whiteinge)|1 @@ -23,4 +23,4 @@ Avatar|Contributor|Contributions --- -Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-10-12. +Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2020-12-16. diff --git a/CHANGELOG.md b/CHANGELOG.md index e336f86..aac2fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +## [0.3.3](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.2...v0.3.3) (2020-12-16) + + +### Bug Fixes + +* **release.config.js:** use full commit hash in commit link [skip ci] ([4f2c4a5](https://github.com/saltstack-formulas/influxdb-formula/commit/4f2c4a5973fb458ca02c0f1dd6c0dca2c2f65d8c)) + + +### Continuous Integration + +* **gemfile:** restrict `train` gem version until upstream fix [skip ci] ([9ac0fac](https://github.com/saltstack-formulas/influxdb-formula/commit/9ac0facd41b53807362e77800dfa68b1e70f22d7)) +* **gemfile.lock:** add to repo with updated `Gemfile` [skip ci] ([78abe11](https://github.com/saltstack-formulas/influxdb-formula/commit/78abe118ef5437306c3c179224d955a6d51a40c4)) +* **gitlab-ci:** use GitLab CI as Travis CI replacement ([09e1ffe](https://github.com/saltstack-formulas/influxdb-formula/commit/09e1ffec12a94f76a4ba6c43dedb237ef2709abc)) +* **kitchen:** avoid using bootstrap for `master` instances [skip ci] ([f2ba8bd](https://github.com/saltstack-formulas/influxdb-formula/commit/f2ba8bd011d19471c2d7e1cec2255bab45dbbe22)) +* **kitchen:** use `debian-10-master-py3` instead of `develop` [skip ci] ([1ada26c](https://github.com/saltstack-formulas/influxdb-formula/commit/1ada26c8fc6b1775c3c629925f6f46733fb349f5)) +* **kitchen:** use `develop` image until `master` is ready (`amazonlinux`) [skip ci] ([489ac8c](https://github.com/saltstack-formulas/influxdb-formula/commit/489ac8c796a97194a028237cd8e06196cd96a559)) +* **kitchen:** use `saltimages` Docker Hub where available [skip ci] ([5ca8b9a](https://github.com/saltstack-formulas/influxdb-formula/commit/5ca8b9a0ea964378a106162b1c9430dff0577d5a)) +* **kitchen+travis:** remove `master-py2-arch-base-latest` [skip ci] ([d8372de](https://github.com/saltstack-formulas/influxdb-formula/commit/d8372ded6b29dac3d00509ff884cfc86879b5269)) +* **kitchen+travis:** upgrade matrix after `2019.2.2` release [skip ci] ([61edc79](https://github.com/saltstack-formulas/influxdb-formula/commit/61edc797f94783cc76104af95910aad7f17d66b9)) +* **pre-commit:** add to formula [skip ci] ([172b5b4](https://github.com/saltstack-formulas/influxdb-formula/commit/172b5b45c01e3a9802fe1e832d316e835ff49381)) +* **pre-commit:** enable/disable `rstcheck` as relevant [skip ci] ([fabc9eb](https://github.com/saltstack-formulas/influxdb-formula/commit/fabc9eb9d3803619200260ccc9f203a49bf44ee9)) +* **pre-commit:** finalise `rstcheck` configuration [skip ci] ([c80c66e](https://github.com/saltstack-formulas/influxdb-formula/commit/c80c66eea00773693ad5175ec57387cc01f1dd19)) +* **travis:** add notifications => zulip [skip ci] ([0bc4566](https://github.com/saltstack-formulas/influxdb-formula/commit/0bc456623511153e000f4644f0cffeafc2aa044c)) +* **travis:** apply changes from build config validation [skip ci] ([c4ade2b](https://github.com/saltstack-formulas/influxdb-formula/commit/c4ade2b8971b6ef065ea324b5a4ffcf799766910)) +* **travis:** opt-in to `dpl v2` to complete build config validation [skip ci] ([b09be58](https://github.com/saltstack-formulas/influxdb-formula/commit/b09be58fd99ef57b42bc1c6d83eeace9005ee884)) +* **travis:** quote pathspecs used with `git ls-files` [skip ci] ([c8f134e](https://github.com/saltstack-formulas/influxdb-formula/commit/c8f134ebd4fe919d8cf8ad5aaa7fe154d6d2eebb)) +* **travis:** run `shellcheck` during lint job [skip ci] ([2994fa6](https://github.com/saltstack-formulas/influxdb-formula/commit/2994fa6301aea395c871704a0308b281ed8e854e)) +* **travis:** update `salt-lint` config for `v0.0.10` [skip ci] ([834e3df](https://github.com/saltstack-formulas/influxdb-formula/commit/834e3df3c8c22b82f50e5e0d62545c8bbdf61b63)) +* **travis:** use `major.minor` for `semantic-release` version [skip ci] ([3d280b1](https://github.com/saltstack-formulas/influxdb-formula/commit/3d280b14a7b0ebbac236987078fca62b3fd54fe3)) +* **travis:** use build config validation (beta) [skip ci] ([b6cc703](https://github.com/saltstack-formulas/influxdb-formula/commit/b6cc703133f23594295915f80a1c6eb2ac052273)) +* **workflows/commitlint:** add to repo [skip ci] ([d80c8c6](https://github.com/saltstack-formulas/influxdb-formula/commit/d80c8c63a159e3c22227153f7527cb0c1547d552)) + + +### Documentation + +* **contributing:** remove to use org-level file instead [skip ci] ([ff4f0fd](https://github.com/saltstack-formulas/influxdb-formula/commit/ff4f0fd5ea0556adb0b5aa92f67917dafc796276)) +* **readme:** update link to `CONTRIBUTING` [skip ci] ([f6d3bfb](https://github.com/saltstack-formulas/influxdb-formula/commit/f6d3bfbd0759bc28a1b3f6d2fe075f3e99fc9778)) + + +### Performance Improvements + +* **travis:** improve `salt-lint` invocation [skip ci] ([b995d48](https://github.com/saltstack-formulas/influxdb-formula/commit/b995d4888126b9119234e1fdf8fd1acfa3327b2b)) + ## [0.3.2](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.1...v0.3.2) (2019-10-12) diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..fd11123 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,54 @@ +# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners + +# SECTION: Owner(s) for everything in the repo, unless a later match takes precedence +# ************************************************************************** +# *** NO GLOBAL OWNER(S) SPECIFIED *** +# *** Ideally this will be defined for a healthy, well-maintained repo *** +# ************************************************************************** +# FILE PATTERN OWNER(S) +* @NONE + +# SECTION: Owner(s) for specific directories +# FILE PATTERN OWNER(S) + +# SECTION: Owner(s) for files/directories related to `semantic-release` +# FILE PATTERN OWNER(S) +/.github/workflows/ @saltstack-formulas/ssf +/bin/install-hooks @saltstack-formulas/ssf +/bin/kitchen @saltstack-formulas/ssf +/docs/AUTHORS.rst @saltstack-formulas/ssf +/docs/CHANGELOG.rst @saltstack-formulas/ssf +/docs/TOFS_pattern.rst @saltstack-formulas/ssf +/*/_mapdata/ @saltstack-formulas/ssf +/*/libsaltcli.jinja @saltstack-formulas/ssf +/*/libtofs.jinja @saltstack-formulas/ssf +/test/integration/**/_mapdata.rb @saltstack-formulas/ssf +/test/integration/**/libraries/system.rb @saltstack-formulas/ssf +/test/integration/**/inspec.yml @saltstack-formulas/ssf +/test/integration/**/README.md @saltstack-formulas/ssf +/test/salt/pillar/top.sls @saltstack-formulas/ssf +/.gitignore @saltstack-formulas/ssf +/.cirrus.yml @saltstack-formulas/ssf +/.gitlab-ci.yml @saltstack-formulas/ssf +/.pre-commit-config.yaml @saltstack-formulas/ssf +/.rstcheck.cfg @saltstack-formulas/ssf +/.rubocop.yml @saltstack-formulas/ssf +/.salt-lint @saltstack-formulas/ssf +/.travis.yml @saltstack-formulas/ssf +/.yamllint @saltstack-formulas/ssf +/AUTHORS.md @saltstack-formulas/ssf +/CHANGELOG.md @saltstack-formulas/ssf +/CODEOWNERS @saltstack-formulas/ssf +/commitlint.config.js @saltstack-formulas/ssf +/FORMULA @saltstack-formulas/ssf +/Gemfile @saltstack-formulas/ssf +/Gemfile.lock @saltstack-formulas/ssf +/kitchen.yml @saltstack-formulas/ssf +/kitchen.vagrant.yml @saltstack-formulas/ssf +/kitchen.windows.yml @saltstack-formulas/ssf +/pre-commit_semantic-release.sh @saltstack-formulas/ssf +/release-rules.js @saltstack-formulas/ssf +/release.config.js @saltstack-formulas/ssf + +# SECTION: Owner(s) for specific files +# FILE PATTERN OWNER(S) diff --git a/Gemfile b/Gemfile index 5a232b6..12d9b1d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,19 @@ # frozen_string_literal: true -source 'https://rubygems.org' +source ENV.fetch('PROXY_RUBYGEMSORG', 'https://rubygems.org') -gem 'kitchen-docker', '>= 2.9' -gem 'kitchen-inspec', '>= 1.1' -gem 'kitchen-salt', '>= 0.6.0' +# Install the `inspec` gem using `git` because versions after `4.22.22` +# suppress diff output; this version fixes this for our uses. +# rubocop:disable Layout/LineLength +gem 'inspec', git: 'https://gitlab.com/saltstack-formulas/infrastructure/inspec', branch: 'ssf' +# rubocop:enable Layout/LineLength + +# Install the `kitchen-docker` gem using `git` in order to gain a performance +# improvement: avoid package installations which are already covered by the +# `salt-image-builder` (i.e. the pre-salted images that we're using) +# rubocop:disable Layout/LineLength +gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker', branch: 'ssf' +# rubocop:enable Layout/LineLength + +gem 'kitchen-inspec', '>= 2.5.0' +gem 'kitchen-salt', '>= 0.7.2' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..471bb68 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,675 @@ +GIT + remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec + revision: aaef842906a5666f0fc0b4f186b4dd3498f5b28c + branch: ssf + specs: + inspec (5.18.15) + cookstyle + faraday_middleware (>= 0.12.2, < 1.1) + inspec-core (= 5.18.15) + mongo (= 2.13.2) + progress_bar (~> 1.3.3) + rake + train (~> 3.10) + train-aws (~> 0.2) + train-habitat (~> 0.1) + train-winrm (~> 0.2) + inspec-core (5.18.15) + addressable (~> 2.4) + chef-telemetry (~> 1.0, >= 1.0.8) + faraday (>= 0.9.0, < 1.5) + faraday_middleware (~> 1.0) + hashie (>= 3.4, < 5.0) + license-acceptance (>= 0.2.13, < 3.0) + method_source (>= 0.8, < 2.0) + mixlib-log (~> 3.0) + multipart-post (~> 2.0) + parallel (~> 1.9) + parslet (>= 1.5, < 2.0) + pry (~> 0.13) + rspec (>= 3.9, <= 3.11) + rspec-its (~> 1.2) + rubyzip (>= 1.2.2, < 3.0) + semverse (~> 3.0) + sslshake (~> 1.2) + thor (>= 0.20, < 2.0) + tomlrb (>= 1.2, < 2.1) + train-core (~> 3.10) + tty-prompt (~> 0.17) + tty-table (~> 0.10) + +GIT + remote: https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker + revision: 9a09bc1e571e25f3ccabf4725ca2048d970fff82 + branch: ssf + specs: + kitchen-docker (2.12.0) + test-kitchen (>= 1.0.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.0.3.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + ast (2.4.2) + aws-eventstream (1.2.0) + aws-partitions (1.607.0) + aws-sdk-alexaforbusiness (1.56.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-amplify (1.32.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigateway (1.78.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigatewayv2 (1.42.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationautoscaling (1.51.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-athena (1.55.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-autoscaling (1.63.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-batch (1.47.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-budgets (1.50.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudformation (1.70.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudfront (1.65.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsm (1.39.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsmv2 (1.42.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtrail (1.49.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatch (1.64.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchevents (1.46.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchlogs (1.53.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-codecommit (1.51.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-codedeploy (1.49.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-codepipeline (1.53.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-cognitoidentity (1.31.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cognitoidentityprovider (1.53.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-configservice (1.79.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.131.2) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.525.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1, >= 1.6.1) + aws-sdk-costandusagereportservice (1.40.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-databasemigrationservice (1.53.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-dynamodb (1.75.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-ec2 (1.322.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecr (1.56.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecrpublic (1.12.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecs (1.100.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-efs (1.54.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-eks (1.75.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticache (1.78.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticbeanstalk (1.51.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancing (1.40.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancingv2 (1.78.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticsearchservice (1.65.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-emr (1.53.0) + aws-sdk-core (~> 3, >= 3.121.2) + aws-sigv4 (~> 1.1) + aws-sdk-eventbridge (1.24.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-firehose (1.48.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-glue (1.88.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-guardduty (1.58.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-iam (1.69.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-kafka (1.50.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesis (1.41.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-kms (1.57.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-lambda (1.84.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-mq (1.40.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-networkfirewall (1.17.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-networkmanager (1.24.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-organizations (1.59.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-ram (1.26.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-rds (1.148.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshift (1.84.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53 (1.63.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53domains (1.40.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53resolver (1.37.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.114.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sdk-s3control (1.43.0) + aws-sdk-core (~> 3, >= 3.122.0) + aws-sigv4 (~> 1.1) + aws-sdk-secretsmanager (1.46.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-securityhub (1.67.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-servicecatalog (1.60.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-ses (1.41.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-shield (1.48.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-signer (1.32.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-simpledb (1.29.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv2 (~> 1.0) + aws-sdk-sms (1.40.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-sns (1.53.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-sqs (1.51.1) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssm (1.137.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-states (1.39.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-synthetics (1.19.0) + aws-sdk-core (~> 3, >= 3.121.2) + aws-sigv4 (~> 1.1) + aws-sdk-transfer (1.34.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-waf (1.43.0) + aws-sdk-core (~> 3, >= 3.122.0) + aws-sigv4 (~> 1.1) + aws-sigv2 (1.1.0) + aws-sigv4 (1.5.0) + aws-eventstream (~> 1, >= 1.0.2) + azure_graph_rbac (0.17.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_key_vault (0.17.7) + ms_rest_azure (~> 0.12.0) + azure_mgmt_resources (0.18.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_security (0.19.0) + ms_rest_azure (~> 0.12.0) + azure_mgmt_storage (0.23.0) + ms_rest_azure (~> 0.12.0) + bcrypt_pbkdf (1.1.0) + bson (4.15.0) + builder (3.2.4) + chef-config (17.10.0) + addressable + chef-utils (= 17.10.0) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) + chef-telemetry (1.1.1) + chef-config + concurrent-ruby (~> 1.0) + chef-utils (17.10.0) + concurrent-ruby + coderay (1.1.3) + concurrent-ruby (1.1.10) + cookstyle (7.32.1) + rubocop (= 1.25.1) + declarative (0.0.20) + diff-lcs (1.5.0) + docker-api (2.2.0) + excon (>= 0.47.0) + multi_json + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + ed25519 (1.3.0) + erubi (1.10.0) + excon (0.92.3) + faraday (1.4.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + multipart-post (>= 1.2, < 3) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday_middleware (1.0.0) + faraday (~> 1.0) + ffi (1.15.5) + fuzzyurl (0.9.0) + google-api-client (0.52.0) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.9) + httpclient (>= 2.8.1, < 3.0) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + rexml + signet (~> 0.12) + googleauth (0.14.0) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.14) + gssapi (1.3.1) + ffi (>= 1.0.1) + gyoku (1.4.0) + builder (>= 2.1.2) + rexml (~> 3.0) + hashie (4.1.0) + highline (2.0.3) + http-cookie (1.0.5) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + inifile (3.0.0) + jmespath (1.6.1) + json (2.6.2) + jwt (2.4.1) + kitchen-inspec (2.6.1) + hashie (>= 3.4, <= 5.0) + inspec (>= 2.2.64, < 7.0) + test-kitchen (>= 2.7, < 4) + kitchen-salt (0.7.2) + hashie (>= 3.5) + test-kitchen (>= 1.4) + license-acceptance (2.1.13) + pastel (~> 0.7) + tomlrb (>= 1.2, < 3.0) + tty-box (~> 0.6) + tty-prompt (~> 0.20) + little-plugger (1.1.4) + logging (2.3.1) + little-plugger (~> 1.1) + multi_json (~> 1.14) + memoist (0.16.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.16.2) + mixlib-config (3.0.27) + tomlrb + mixlib-install (3.12.19) + mixlib-shellout + mixlib-versioning + thor + mixlib-log (3.0.9) + mixlib-shellout (3.2.7) + chef-utils + mixlib-versioning (1.2.12) + mongo (2.13.2) + bson (>= 4.8.2, < 5.0.0) + ms_rest (0.7.6) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + timeliness (~> 0.3.10) + ms_rest_azure (0.12.0) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + faraday-cookie_jar (~> 0.0.6) + ms_rest (~> 0.7.6) + multi_json (1.15.0) + multipart-post (2.2.3) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-ssh (6.1.0) + net-ssh-gateway (2.0.0) + net-ssh (>= 4.0.0) + nori (2.6.0) + options (2.3.2) + os (1.1.4) + parallel (1.22.1) + parser (3.1.2.0) + ast (~> 2.4.1) + parslet (1.8.2) + pastel (0.8.0) + tty-color (~> 0.5) + progress_bar (1.3.3) + highline (>= 1.6, < 3) + options (~> 2.3.0) + pry (0.14.1) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (4.0.7) + rainbow (3.1.1) + rake (13.0.6) + regexp_parser (2.5.0) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-its (1.3.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-support (3.11.0) + rubocop (1.25.1) + parallel (~> 1.10) + parser (>= 3.1.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.15.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.19.1) + parser (>= 3.1.1.0) + ruby-progressbar (1.11.0) + ruby2_keywords (0.0.5) + rubyntlm (0.6.3) + rubyzip (2.3.2) + semverse (3.0.2) + signet (0.17.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + sslshake (1.3.1) + strings (0.2.1) + strings-ansi (~> 0.2) + unicode-display_width (>= 1.5, < 3.0) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + test-kitchen (3.3.1) + bcrypt_pbkdf (~> 1.0) + chef-utils (>= 16.4.35) + ed25519 (~> 1.2) + license-acceptance (>= 1.0.11, < 3.0) + mixlib-install (~> 3.6) + mixlib-shellout (>= 1.2, < 4.0) + net-scp (>= 1.1, < 4.0) + net-ssh (>= 2.9, < 7.0) + net-ssh-gateway (>= 1.2, < 3.0) + thor (>= 0.19, < 2.0) + winrm (~> 2.0) + winrm-elevated (~> 1.0) + winrm-fs (~> 1.1) + thor (1.2.1) + timeliness (0.3.10) + tomlrb (1.3.0) + trailblazer-option (0.1.2) + train (3.10.1) + activesupport (>= 6.0.3.1) + azure_graph_rbac (~> 0.16) + azure_mgmt_key_vault (~> 0.17) + azure_mgmt_resources (~> 0.15) + azure_mgmt_security (~> 0.18) + azure_mgmt_storage (~> 0.18) + docker-api (>= 1.26, < 3.0) + google-api-client (>= 0.23.9, <= 0.52.0) + googleauth (>= 0.6.6, <= 0.14.0) + inifile (~> 3.0) + train-core (= 3.10.1) + train-winrm (~> 0.2) + train-aws (0.2.24) + aws-sdk-alexaforbusiness (~> 1.0) + aws-sdk-amplify (~> 1.32.0) + aws-sdk-apigateway (~> 1.0) + aws-sdk-apigatewayv2 (~> 1.0) + aws-sdk-applicationautoscaling (>= 1.46, < 1.52) + aws-sdk-athena (~> 1.0) + aws-sdk-autoscaling (>= 1.22, < 1.64) + aws-sdk-batch (>= 1.36, < 1.48) + aws-sdk-budgets (~> 1.0) + aws-sdk-cloudformation (~> 1.0) + aws-sdk-cloudfront (~> 1.0) + aws-sdk-cloudhsm (~> 1.0) + aws-sdk-cloudhsmv2 (~> 1.0) + aws-sdk-cloudtrail (~> 1.8) + aws-sdk-cloudwatch (~> 1.13) + aws-sdk-cloudwatchevents (>= 1.36, < 1.47) + aws-sdk-cloudwatchlogs (~> 1.13) + aws-sdk-codecommit (~> 1.0) + aws-sdk-codedeploy (~> 1.0) + aws-sdk-codepipeline (~> 1.0) + aws-sdk-cognitoidentity (>= 1.26, < 1.32) + aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54) + aws-sdk-configservice (~> 1.21) + aws-sdk-core (~> 3.0) + aws-sdk-costandusagereportservice (~> 1.6) + aws-sdk-databasemigrationservice (>= 1.42, < 1.54) + aws-sdk-dynamodb (~> 1.31) + aws-sdk-ec2 (~> 1.70) + aws-sdk-ecr (~> 1.18) + aws-sdk-ecrpublic (~> 1.3) + aws-sdk-ecs (~> 1.30) + aws-sdk-efs (~> 1.0) + aws-sdk-eks (~> 1.9) + aws-sdk-elasticache (~> 1.0) + aws-sdk-elasticbeanstalk (~> 1.0) + aws-sdk-elasticloadbalancing (~> 1.8) + aws-sdk-elasticloadbalancingv2 (~> 1.0) + aws-sdk-elasticsearchservice (~> 1.0) + aws-sdk-emr (~> 1.53.0) + aws-sdk-eventbridge (~> 1.24.0) + aws-sdk-firehose (~> 1.0) + aws-sdk-glue (>= 1.71, < 1.89) + aws-sdk-guardduty (~> 1.31) + aws-sdk-iam (~> 1.13) + aws-sdk-kafka (~> 1.0) + aws-sdk-kinesis (~> 1.0) + aws-sdk-kms (~> 1.13) + aws-sdk-lambda (~> 1.0) + aws-sdk-mq (~> 1.40.0) + aws-sdk-networkfirewall (>= 1.6.0) + aws-sdk-networkmanager (>= 1.13.0) + aws-sdk-organizations (>= 1.17, < 1.60) + aws-sdk-ram (>= 1.21, < 1.27) + aws-sdk-rds (~> 1.43) + aws-sdk-redshift (~> 1.0) + aws-sdk-route53 (~> 1.0) + aws-sdk-route53domains (~> 1.0) + aws-sdk-route53resolver (~> 1.0) + aws-sdk-s3 (~> 1.30) + aws-sdk-s3control (~> 1.43.0) + aws-sdk-secretsmanager (>= 1.42, < 1.47) + aws-sdk-securityhub (~> 1.0) + aws-sdk-servicecatalog (>= 1.48, < 1.61) + aws-sdk-ses (~> 1.41.0) + aws-sdk-shield (~> 1.30) + aws-sdk-signer (~> 1.32.0) + aws-sdk-simpledb (~> 1.29.0) + aws-sdk-sms (~> 1.0) + aws-sdk-sns (~> 1.9) + aws-sdk-sqs (~> 1.10) + aws-sdk-ssm (~> 1.0) + aws-sdk-states (>= 1.35, < 1.40) + aws-sdk-synthetics (~> 1.19.0) + aws-sdk-transfer (>= 1.26, < 1.35) + aws-sdk-waf (~> 1.43.0) + train-core (3.10.1) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 4.0) + net-ssh (>= 2.9, < 7.0) + train-habitat (0.2.22) + train-winrm (0.2.13) + winrm (>= 2.3.6, < 3.0) + winrm-elevated (~> 1.2.2) + winrm-fs (~> 1.0) + tty-box (0.7.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-cursor (~> 0.7) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.23.1) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (2.2.0) + unicode_utils (1.4.0) + winrm (2.3.6) + builder (>= 2.1.2) + erubi (~> 1.8) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rubyntlm (~> 0.6.0, >= 0.6.3) + winrm-elevated (1.2.3) + erubi (~> 1.8) + winrm (~> 2.0) + winrm-fs (~> 1.0) + winrm-fs (1.3.5) + erubi (~> 1.8) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 2.0) + winrm (~> 2.0) + wisper (2.0.1) + +PLATFORMS + ruby + +DEPENDENCIES + inspec! + kitchen-docker! + kitchen-inspec (>= 2.5.0) + kitchen-salt (>= 0.7.2) + +BUNDLED WITH + 2.1.2 diff --git a/bin/install-hooks b/bin/install-hooks new file mode 100755 index 0000000..840bb6c --- /dev/null +++ b/bin/install-hooks @@ -0,0 +1,16 @@ +#!/usr/bin/env sh +set -o nounset # Treat unset variables as an error and immediately exit +set -o errexit # If a command fails exit the whole script + +if [ "${DEBUG:-false}" = "true" ]; then + set -x # Run the entire script in debug mode +fi + +if ! command -v pre-commit >/dev/null 2>&1; then + echo "pre-commit not found: please install or check your PATH" >&2 + echo "See https://pre-commit.com/#installation" >&2 + exit 1 +fi + +pre-commit install --install-hooks +pre-commit install --hook-type commit-msg --install-hooks diff --git a/bin/kitchen b/bin/kitchen index dcfdb4c..5d5663e 100755 --- a/bin/kitchen +++ b/bin/kitchen @@ -19,8 +19,8 @@ if File.file?(bundle_binstub) load(bundle_binstub) else abort( - 'Your `bin/bundle` was not generated by Bundler, '\ - 'so this binstub cannot run. Replace `bin/bundle` by running '\ + 'Your `bin/bundle` was not generated by Bundler, ' \ + 'so this binstub cannot run. Replace `bin/bundle` by running ' \ '`bundle binstubs bundler --force`, then run this command again.' ) end diff --git a/commitlint.config.js b/commitlint.config.js index 2f9d1aa..4eb37f4 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,3 +1,8 @@ module.exports = { extends: ['@commitlint/config-conventional'], + rules: { + 'body-max-line-length': [2, 'always', 120], + 'footer-max-line-length': [2, 'always', 120], + 'header-max-length': [2, 'always', 72], + }, }; diff --git a/docs/AUTHORS.rst b/docs/AUTHORS.rst index 0757219..eb461c1 100644 --- a/docs/AUTHORS.rst +++ b/docs/AUTHORS.rst @@ -13,15 +13,15 @@ This list is sorted by the number of commits per contributor in *descending* ord * - Avatar - Contributor - Contributions + * - :raw-html-m2r:`@myii` + - `@myii `_ + - 59 * - :raw-html-m2r:`@babilen5` - `@babilen5 `_ - 49 * - :raw-html-m2r:`@alfredopalhares` - `@alfredopalhares `_ - 40 - * - :raw-html-m2r:`@myii` - - `@myii `_ - - 21 * - :raw-html-m2r:`@n-rodriguez` - `@n-rodriguez `_ - 17 @@ -40,15 +40,15 @@ This list is sorted by the number of commits per contributor in *descending* ord * - :raw-html-m2r:`@iggy` - `@iggy `_ - 2 + * - :raw-html-m2r:`@dafyddj` + - `@dafyddj `_ + - 2 * - :raw-html-m2r:`@racingferret` - `@racingferret `_ - 2 * - :raw-html-m2r:`@gravyboat` - `@gravyboat `_ - 1 - * - :raw-html-m2r:`@gianarb` - - `@gianarb `_ - - 1 * - :raw-html-m2r:`@qybl` - `@qybl `_ - 1 @@ -65,4 +65,4 @@ This list is sorted by the number of commits per contributor in *descending* ord ---- -Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2019-10-12. +Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2020-12-16. diff --git a/docs/CHANGELOG.rst b/docs/CHANGELOG.rst index fc232ea..ae8d66b 100644 --- a/docs/CHANGELOG.rst +++ b/docs/CHANGELOG.rst @@ -2,6 +2,54 @@ Changelog ========= +`0.3.3 `_ (2020-12-16) +---------------------------------------------------------------------------------------------------------- + +Bug Fixes +^^^^^^^^^ + + +* **release.config.js:** use full commit hash in commit link [skip ci] (\ `4f2c4a5 `_\ ) + +Continuous Integration +^^^^^^^^^^^^^^^^^^^^^^ + + +* **gemfile:** restrict ``train`` gem version until upstream fix [skip ci] (\ `9ac0fac `_\ ) +* **gemfile.lock:** add to repo with updated ``Gemfile`` [skip ci] (\ `78abe11 `_\ ) +* **gitlab-ci:** use GitLab CI as Travis CI replacement (\ `09e1ffe `_\ ) +* **kitchen:** avoid using bootstrap for ``master`` instances [skip ci] (\ `f2ba8bd `_\ ) +* **kitchen:** use ``debian-10-master-py3`` instead of ``develop`` [skip ci] (\ `1ada26c `_\ ) +* **kitchen:** use ``develop`` image until ``master`` is ready (\ ``amazonlinux``\ ) [skip ci] (\ `489ac8c `_\ ) +* **kitchen:** use ``saltimages`` Docker Hub where available [skip ci] (\ `5ca8b9a `_\ ) +* **kitchen+travis:** remove ``master-py2-arch-base-latest`` [skip ci] (\ `d8372de `_\ ) +* **kitchen+travis:** upgrade matrix after ``2019.2.2`` release [skip ci] (\ `61edc79 `_\ ) +* **pre-commit:** add to formula [skip ci] (\ `172b5b4 `_\ ) +* **pre-commit:** enable/disable ``rstcheck`` as relevant [skip ci] (\ `fabc9eb `_\ ) +* **pre-commit:** finalise ``rstcheck`` configuration [skip ci] (\ `c80c66e `_\ ) +* **travis:** add notifications => zulip [skip ci] (\ `0bc4566 `_\ ) +* **travis:** apply changes from build config validation [skip ci] (\ `c4ade2b `_\ ) +* **travis:** opt-in to ``dpl v2`` to complete build config validation [skip ci] (\ `b09be58 `_\ ) +* **travis:** quote pathspecs used with ``git ls-files`` [skip ci] (\ `c8f134e `_\ ) +* **travis:** run ``shellcheck`` during lint job [skip ci] (\ `2994fa6 `_\ ) +* **travis:** update ``salt-lint`` config for ``v0.0.10`` [skip ci] (\ `834e3df `_\ ) +* **travis:** use ``major.minor`` for ``semantic-release`` version [skip ci] (\ `3d280b1 `_\ ) +* **travis:** use build config validation (beta) [skip ci] (\ `b6cc703 `_\ ) +* **workflows/commitlint:** add to repo [skip ci] (\ `d80c8c6 `_\ ) + +Documentation +^^^^^^^^^^^^^ + + +* **contributing:** remove to use org-level file instead [skip ci] (\ `ff4f0fd `_\ ) +* **readme:** update link to ``CONTRIBUTING`` [skip ci] (\ `f6d3bfb `_\ ) + +Performance Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ + + +* **travis:** improve ``salt-lint`` invocation [skip ci] (\ `b995d48 `_\ ) + `0.3.2 `_ (2019-10-12) ---------------------------------------------------------------------------------------------------------- diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst deleted file mode 100644 index b7da8f4..0000000 --- a/docs/CONTRIBUTING.rst +++ /dev/null @@ -1,159 +0,0 @@ -.. _contributing: - -How to contribute -================= - -This document will eventually outline all aspects of guidance to make your contributing experience a fruitful and enjoyable one. -What it already contains is information about *commit message formatting* and how that directly affects the numerous automated processes that are used for this repo. -It also covers how to contribute to this *formula's documentation*. - -.. contents:: **Table of Contents** - -Overview --------- - -Submitting a pull request is more than just code! -To achieve a quality product, the *tests* and *documentation* need to be updated as well. -An excellent pull request will include these in the changes, wherever relevant. - -Commit message formatting -------------------------- - -Since every type of change requires making Git commits, -we will start by covering the importance of ensuring that all of your commit -messages are in the correct format. - -Automation of multiple processes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula uses `semantic-release `_ for automating numerous processes such as bumping the version number appropriately, creating new tags/releases and updating the changelog. -The entire process relies on the structure of commit messages to determine the version bump, which is then used for the rest of the automation. - -Full details are available in the upstream docs regarding the `Angular Commit Message Conventions `_. -The key factor is that the first line of the commit message must follow this format: - -.. code-block:: - - type(scope): subject - - -* E.g. ``docs(contributing): add commit message formatting instructions``. - -Besides the version bump, the changelog and release notes are formatted accordingly. -So based on the example above: - -.. - - .. raw:: html - -

Documentation

- - * **contributing:** add commit message formatting instructions - - -* The ``type`` translates into a ``Documentation`` sub-heading. -* The ``(scope):`` will be shown in bold text without the brackets. -* The ``subject`` follows the ``scope`` as standard text. - -Linting commit messages in Travis CI -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula uses `commitlint `_ for checking commit messages during CI testing. -This ensures that they are in accordance with the ``semantic-release`` settings. - -For more details about the default settings, refer back to the ``commitlint`` `reference rules `_. - -Relationship between commit type and version bump -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula applies some customisations to the defaults, as outlined in the table below, -based upon the `type `_ of the commit: - -.. list-table:: - :name: commit-type-vs-version-bump - :header-rows: 1 - :stub-columns: 0 - :widths: 1,2,3,1,1 - - * - Type - - Heading - - Description - - Bump (default) - - Bump (custom) - * - ``build`` - - Build System - - Changes related to the build system - - – - - - * - ``chore`` - - – - - Changes to the build process or auxiliary tools and libraries such as - documentation generation - - – - - - * - ``ci`` - - Continuous Integration - - Changes to the continuous integration configuration - - – - - - * - ``docs`` - - Documentation - - Documentation only changes - - – - - 0.0.1 - * - ``feat`` - - Features - - A new feature - - 0.1.0 - - - * - ``fix`` - - Bug Fixes - - A bug fix - - 0.0.1 - - - * - ``perf`` - - Performance Improvements - - A code change that improves performance - - 0.0.1 - - - * - ``refactor`` - - Code Refactoring - - A code change that neither fixes a bug nor adds a feature - - – - - 0.0.1 - * - ``revert`` - - Reverts - - A commit used to revert a previous commit - - – - - 0.0.1 - * - ``style`` - - Styles - - Changes that do not affect the meaning of the code (white-space, - formatting, missing semi-colons, etc.) - - – - - 0.0.1 - * - ``test`` - - Tests - - Adding missing or correcting existing tests - - – - - 0.0.1 - -Use ``BREAKING CHANGE`` to trigger a ``major`` version change -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Adding ``BREAKING CHANGE`` to the footer of the extended description of the commit message will **always** trigger a ``major`` version change, no matter which type has been used. -This will be appended to the changelog and release notes as well. -To preserve good formatting of these notes, the following format is prescribed: - -* ``BREAKING CHANGE: .`` - -An example of that: - -.. code-block:: git - - ... - - BREAKING CHANGE: With the removal of all of the `.sls` files under - `template package`, this formula no longer supports the installation of - packages. - diff --git a/docs/README.rst b/docs/README.rst index b7cbb8e..5a730d0 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -37,7 +37,7 @@ Contributing to this repo **Commit message formatting is significant!!** -Please see :ref:`How to contribute ` for more details. +Please see `How to contribute `_ for more details. Available states ---------------- diff --git a/influxdb/_mapdata/_mapdata.jinja b/influxdb/_mapdata/_mapdata.jinja new file mode 100644 index 0000000..aa9649c --- /dev/null +++ b/influxdb/_mapdata/_mapdata.jinja @@ -0,0 +1,13 @@ +# yamllint disable rule:indentation rule:line-length +# {{ grains.get("osfinger", grains.os) }} +--- +{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #} +{{ salt["slsutil.serialize"]( + "yaml", + map, + default_flow_style=False, + allow_unicode=True, + ) + | regex_replace("^\s+'$", "'", multiline=True) + | trim +}} diff --git a/influxdb/_mapdata/init.sls b/influxdb/_mapdata/init.sls new file mode 100644 index 0000000..0bab698 --- /dev/null +++ b/influxdb/_mapdata/init.sls @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls +--- +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split("/")[0] %} +{%- from tplroot ~ "/map.jinja" import influxdb_settings with context %} + +{%- set _mapdata = { + "values": influxdb_settings, + } %} +{%- do salt["log.debug"]("### MAP.JINJA DUMP ###\n" ~ _mapdata | yaml(False)) %} + +{%- set output_dir = "/temp" if grains.os_family == "Windows" else "/tmp" %} +{%- set output_file = output_dir ~ "/salt_mapdata_dump.yaml" %} + +{{ tplroot }}-mapdata-dump: + file.managed: + - name: {{ output_file }} + - source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja + - template: jinja + - context: + map: {{ _mapdata | yaml }} diff --git a/kitchen.yml b/kitchen.yml index e411a53..87dc8ce 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -6,190 +6,264 @@ driver: name: docker use_sudo: false privileged: true - run_command: /lib/systemd/systemd + run_command: /usr/lib/systemd/systemd -# Make sure the platforms listed below match up with -# the `env.matrix` instances defined in `.travis.yml` -platforms: - ## SALT `develop` - - name: debian-10-develop-py3 - driver: - image: netmanagers/salt-develop-py3:debian-10 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: ubuntu-1804-develop-py3 - driver: - image: netmanagers/salt-develop-py3:ubuntu-18.04 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: centos-7-develop-py3 - driver: - image: netmanagers/salt-develop-py3:centos-7 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: fedora-30-develop-py3 - driver: - image: netmanagers/salt-develop-py3:fedora-30 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: opensuse-leap-15-develop-py3 - driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip - - systemctl enable sshd.service - run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python3 git develop - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: - # => SCP did not finish successfully (255): (Net::SCP::Error) - transport: - max_ssh_sessions: 1 - - name: amazonlinux-2-develop-py2 - driver: - image: netmanagers/salt-develop-py2:amazonlinux-2 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop - - name: arch-base-latest-develop-py2 - driver: - image: netmanagers/salt-develop-py2:arch-base-latest - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop - run_command: /usr/lib/systemd/systemd +provisioner: + name: salt_solo + log_level: debug + salt_install: none + require_chef: false + formula: influxdb + salt_copy_filter: + - .kitchen + - .git - ## SALT `2019.2` - - name: debian-9-2019-2-py3 +platforms: + ## SALT `tiamat` + - name: debian-11-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py3:debian-9 - - name: ubuntu-1804-2019-2-py3 + image: saltimages/salt-tiamat-py3:debian-11 + run_command: /lib/systemd/systemd + - name: debian-10-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py3:ubuntu-18.04 - - name: centos-7-2019-2-py3 + image: saltimages/salt-tiamat-py3:debian-10 + run_command: /lib/systemd/systemd + - name: debian-9-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py3:centos-7 - - name: fedora-30-2019-2-py3 + image: saltimages/salt-tiamat-py3:debian-9 + run_command: /lib/systemd/systemd + - name: ubuntu-2204-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py3:fedora-30 - - name: opensuse-leap-15-2019-2-py3 + image: saltimages/salt-tiamat-py3:ubuntu-22.04 + run_command: /lib/systemd/systemd + - name: ubuntu-2004-tiamat-py3 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip - - systemctl enable sshd.service - run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python3 git 2019.2 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: - # => SCP did not finish successfully (255): (Net::SCP::Error) - transport: - max_ssh_sessions: 1 - - name: amazonlinux-2-2019-2-py2 + image: saltimages/salt-tiamat-py3:ubuntu-20.04 + run_command: /lib/systemd/systemd + - name: ubuntu-1804-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:ubuntu-18.04 + run_command: /lib/systemd/systemd + - name: centos-stream8-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:centos-stream8 + - name: centos-7-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py2:amazonlinux-2 - - name: arch-base-latest-2019-2-py2 + image: saltimages/salt-tiamat-py3:centos-7 + - name: amazonlinux-2-tiamat-py3 driver: - image: netmanagers/salt-2019.2-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd + image: saltimages/salt-tiamat-py3:amazonlinux-2 + - name: oraclelinux-8-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:oraclelinux-8 + - name: oraclelinux-7-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:oraclelinux-7 + - name: almalinux-8-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:almalinux-8 + - name: rockylinux-8-tiamat-py3 + driver: + image: saltimages/salt-tiamat-py3:rockylinux-8 - ## SALT `2018.3` - - name: debian-9-2018-3-py2 + ## SALT `master` + - name: debian-11-master-py3 driver: - image: netmanagers/salt-2018.3-py2:debian-9 - - name: ubuntu-1604-2018-3-py2 + image: saltimages/salt-master-py3:debian-11 + run_command: /lib/systemd/systemd + - name: debian-10-master-py3 driver: - image: netmanagers/salt-2018.3-py2:ubuntu-16.04 - - name: centos-7-2018-3-py2 + image: saltimages/salt-master-py3:debian-10 + run_command: /lib/systemd/systemd + - name: debian-9-master-py3 driver: - image: netmanagers/salt-2018.3-py2:centos-7 - - name: fedora-29-2018-3-py2 + image: saltimages/salt-master-py3:debian-9 + run_command: /lib/systemd/systemd + - name: ubuntu-2204-master-py3 driver: - image: netmanagers/salt-2018.3-py2:fedora-29 - - name: opensuse-leap-15-2018-3-py2 + image: saltimages/salt-master-py3:ubuntu-22.04 + run_command: /lib/systemd/systemd + - name: ubuntu-2004-master-py3 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip - - systemctl enable sshd.service - run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python2 git 2018.3 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + image: saltimages/salt-master-py3:ubuntu-20.04 + run_command: /lib/systemd/systemd + - name: ubuntu-1804-master-py3 + driver: + image: saltimages/salt-master-py3:ubuntu-18.04 + run_command: /lib/systemd/systemd + - name: centos-stream8-master-py3 + driver: + image: saltimages/salt-master-py3:centos-stream8 + - name: centos-7-master-py3 + driver: + image: saltimages/salt-master-py3:centos-7 + - name: fedora-36-master-py3 + driver: + image: saltimages/salt-master-py3:fedora-36 + - name: fedora-35-master-py3 + driver: + image: saltimages/salt-master-py3:fedora-35 + - name: opensuse-leap-153-master-py3 + driver: + image: saltimages/salt-master-py3:opensuse-leap-15.3 + # Workaround to avoid intermittent failures on `opensuse-leap-15.3`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: opensuse-tmbl-latest-master-py3 + driver: + image: saltimages/salt-master-py3:opensuse-tumbleweed-latest + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-2018-3-py2 + - name: amazonlinux-2-master-py3 + driver: + image: saltimages/salt-master-py3:amazonlinux-2 + - name: oraclelinux-8-master-py3 + driver: + image: saltimages/salt-master-py3:oraclelinux-8 + - name: oraclelinux-7-master-py3 + driver: + image: saltimages/salt-master-py3:oraclelinux-7 + - name: arch-base-latest-master-py3 + driver: + image: saltimages/salt-master-py3:arch-base-latest + - name: gentoo-stage3-latest-master-py3 + driver: + image: saltimages/salt-master-py3:gentoo-stage3-latest + run_command: /sbin/init + - name: gentoo-stage3-systemd-master-py3 + driver: + image: saltimages/salt-master-py3:gentoo-stage3-systemd + - name: almalinux-8-master-py3 driver: - image: netmanagers/salt-2018.3-py2:amazonlinux-2 - - name: arch-base-latest-2018-3-py2 + image: saltimages/salt-master-py3:almalinux-8 + - name: rockylinux-8-master-py3 driver: - image: netmanagers/salt-2018.3-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd + image: saltimages/salt-master-py3:rockylinux-8 - ## SALT `2017.7` - - name: debian-8-2017-7-py2 + ## SALT `3004.1` + - name: debian-11-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:debian-11 + run_command: /lib/systemd/systemd + - name: debian-10-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:debian-10 + run_command: /lib/systemd/systemd + - name: debian-9-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:debian-9 + run_command: /lib/systemd/systemd + - name: ubuntu-2204-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:ubuntu-22.04 + run_command: /lib/systemd/systemd + - name: ubuntu-2004-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:ubuntu-20.04 + run_command: /lib/systemd/systemd + - name: ubuntu-1804-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:ubuntu-18.04 + run_command: /lib/systemd/systemd + - name: centos-stream8-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:centos-stream8 + - name: centos-7-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:centos-7 + - name: fedora-36-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:fedora-36 + - name: fedora-35-3004-1-py3 driver: - image: netmanagers/salt-2017.7-py2:debian-8 - - name: ubuntu-1604-2017-7-py2 + image: saltimages/salt-3004.1-py3:fedora-35 + - name: amazonlinux-2-3004-1-py3 driver: - image: netmanagers/salt-2017.7-py2:ubuntu-16.04 - - name: centos-6-2017-7-py2 + image: saltimages/salt-3004.1-py3:amazonlinux-2 + - name: oraclelinux-8-3004-1-py3 driver: - image: netmanagers/salt-2017.7-py2:centos-6 + image: saltimages/salt-3004.1-py3:oraclelinux-8 + - name: oraclelinux-7-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:oraclelinux-7 + - name: arch-base-latest-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:arch-base-latest + - name: gentoo-stage3-latest-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:gentoo-stage3-latest run_command: /sbin/init - - name: fedora-29-2017-7-py2 + - name: gentoo-stage3-systemd-3004-1-py3 driver: - image: netmanagers/salt-2017.7-py2:fedora-29 - - name: opensuse-leap-15-2017-7-py2 + image: saltimages/salt-3004.1-py3:gentoo-stage3-systemd + - name: almalinux-8-3004-1-py3 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip - - systemctl enable sshd.service - run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python2 git 2017.7 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + image: saltimages/salt-3004.1-py3:almalinux-8 + - name: rockylinux-8-3004-1-py3 + driver: + image: saltimages/salt-3004.1-py3:rockylinux-8 + + ## SALT `3004.0` + - name: opensuse-leap-153-3004-0-py3 + driver: + image: saltimages/salt-3004.0-py3:opensuse-leap-15.3 + # Workaround to avoid intermittent failures on `opensuse-leap-15.3`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-2017-7-py2 - driver: - image: netmanagers/salt-2017.7-py2:amazonlinux-2 - - name: arch-base-latest-2017-7-py2 + - name: opensuse-tmbl-latest-3004-0-py3 driver: - image: netmanagers/salt-2017.7-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd + image: saltimages/salt-3004.0-py3:opensuse-tumbleweed-latest + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 -provisioner: - name: salt_solo - log_level: debug - salt_install: none - require_chef: false - formula: influxdb - salt_copy_filter: - - .kitchen - - .git + ## SALT `3003.4` + - name: debian-10-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:debian-10 + run_command: /lib/systemd/systemd + - name: debian-9-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:debian-9 + run_command: /lib/systemd/systemd + - name: ubuntu-2004-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:ubuntu-20.04 + run_command: /lib/systemd/systemd + - name: ubuntu-1804-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:ubuntu-18.04 + run_command: /lib/systemd/systemd + - name: centos-stream8-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:centos-stream8 + - name: centos-7-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:centos-7 + - name: amazonlinux-2-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:amazonlinux-2 + - name: oraclelinux-8-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:oraclelinux-8 + - name: oraclelinux-7-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:oraclelinux-7 + - name: almalinux-8-3003-4-py3 + driver: + image: saltimages/salt-3003.4-py3:almalinux-8 verifier: # https://www.inspec.io/ name: inspec sudo: true - # cli, documentation, html, progress, json, json-min, json-rspec, junit reporter: + # cli, documentation, html, progress, json, json-min, json-rspec, junit - cli suites: @@ -198,6 +272,7 @@ suites: state_top: base: '*': + - influxdb._mapdata - influxdb pillars: top.sls: diff --git a/pre-commit_semantic-release.sh b/pre-commit_semantic-release.sh index 9d34d74..80f46e2 100755 --- a/pre-commit_semantic-release.sh +++ b/pre-commit_semantic-release.sh @@ -7,16 +7,16 @@ sed -i -e "s_^\(version:\).*_\1 ${1}_" FORMULA ############################################################################### -# (B) Use `m2r` to convert automatically produced `.md` docs to `.rst` +# (B) Use `m2r2` to convert automatically produced `.md` docs to `.rst` ############################################################################### -# Install `m2r` -sudo -H pip install m2r +# Install `m2r2` +pip3 install m2r2 # Copy and then convert the `.md` docs -cp *.md docs/ -cd docs/ -m2r --overwrite *.md +cp ./*.md docs/ +cd docs/ || exit +m2r2 --overwrite ./*.md # Change excess `H1` headings to `H2` in converted `CHANGELOG.rst` sed -i -e '/^=.*$/s/=/-/g' CHANGELOG.rst diff --git a/release.config.js b/release.config.js index afa0cb1..d65751b 100644 --- a/release.config.js +++ b/release.config.js @@ -1,5 +1,6 @@ module.exports = { branch: 'master', + repositoryUrl: 'https://github.com/saltstack-formulas/influxdb-formula', plugins: [ ['@semantic-release/commit-analyzer', { preset: 'angular', @@ -63,7 +64,7 @@ module.exports = { } if (typeof commit.hash === `string`) { - commit.hash = commit.hash.substring(0, 7) + commit.shortHash = commit.hash.substring(0, 7) } if (typeof commit.subject === `string`) { diff --git a/test/integration/default/inspec.yml b/test/integration/default/inspec.yml index 9ad2e37..c645c74 100644 --- a/test/integration/default/inspec.yml +++ b/test/integration/default/inspec.yml @@ -6,6 +6,9 @@ title: influxdb formula maintainer: SaltStack Formulas license: Apache-2.0 summary: Verify that the influxdb formula is setup and configured correctly +depends: + - name: share + path: test/integration/share supports: - platform-name: debian - platform-name: ubuntu @@ -14,5 +17,12 @@ supports: - platform-name: opensuse - platform-name: suse - platform-name: freebsd + - platform-name: openbsd - platform-name: amazon + - platform-name: oracle - platform-name: arch + - platform-name: gentoo + - platform-name: almalinux + - platform-name: rocky + - platform-name: mac_os_x + - platform: windows diff --git a/test/integration/share/README.md b/test/integration/share/README.md new file mode 100644 index 0000000..5c5785b --- /dev/null +++ b/test/integration/share/README.md @@ -0,0 +1,22 @@ +# InSpec Profile: `share` + +This shows the implementation of the `share` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). + +Its goal is to share the libraries between all profiles. + +## Libraries + +### `system` + +The `system` library provides easy access to system dependent information: + +- `system.platform`: based on `inspec.platform`, modify to values that are more consistent from a SaltStack perspective + - `system.platform[:family]` provide a family name for Arch and Gentoo + - `system.platform[:name]` append `linux` to both `amazon` and `oracle`; ensure Windows platforms are resolved as simply `windows` + - `system.platform[:release]` tweak Arch, Amazon Linux, Gentoo, openSUSE and Windows: + - `Arch` is always `base-latest` + - `Amazon Linux` release `2018` is resolved as `1` + - `Gentoo` release is trimmed to its major version number and then the init system is appended (i.e. `sysv` or `sysd`) + - `openSUSE` is resolved as `tumbleweed` if the `platform[:release]` is in date format + - `Windows` uses the widely-used release number (e.g. `8.1` or `2019-server`) in place of the actual system release version + - `system.platform[:finger]` is the concatenation of the name and the major release number (except for Ubuntu, which gives `ubuntu-20.04` for example) diff --git a/test/integration/share/inspec.yml b/test/integration/share/inspec.yml new file mode 100644 index 0000000..28a97b9 --- /dev/null +++ b/test/integration/share/inspec.yml @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: share +title: InSpec shared resources +maintainer: SaltStack Formulas +license: Apache-2.0 +summary: shared resources +supports: + - platform-name: debian + - platform-name: ubuntu + - platform-name: centos + - platform-name: fedora + - platform-name: opensuse + - platform-name: suse + - platform-name: freebsd + - platform-name: openbsd + - platform-name: amazon + - platform-name: oracle + - platform-name: arch + - platform-name: gentoo + - platform-name: almalinux + - platform-name: rocky + - platform-name: mac_os_x + - platform: windows diff --git a/test/integration/share/libraries/system.rb b/test/integration/share/libraries/system.rb new file mode 100644 index 0000000..64405bb --- /dev/null +++ b/test/integration/share/libraries/system.rb @@ -0,0 +1,138 @@ +# frozen_string_literal: true + +# system.rb -- InSpec resources for system values +# Author: Daniel Dehennin +# Copyright (C) 2020 Daniel Dehennin + +# rubocop:disable Metrics/ClassLength +class SystemResource < Inspec.resource(1) + name 'system' + + attr_reader :platform + + def initialize + super + @platform = build_platform + end + + private + + def build_platform + { + family: build_platform_family, + name: build_platform_name, + release: build_platform_release, + finger: build_platform_finger, + codename: build_platform_codename + } + end + + def build_platform_family + case inspec.platform[:name] + when 'arch', 'gentoo' + inspec.platform[:name] + else + inspec.platform[:family] + end + end + + def build_platform_name + case inspec.platform[:name] + when 'amazon', 'oracle', 'rocky' + "#{inspec.platform[:name]}linux" + when /^windows_/ + inspec.platform[:family] + else + inspec.platform[:name] + end + end + + # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity + def build_platform_release + case inspec.platform[:name] + when 'amazon' + # `2018` relase is named `1` in `kitchen.yml` + inspec.platform[:release].gsub(/2018.*/, '1') + when 'arch' + 'base-latest' + when 'gentoo' + "#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}" + when 'mac_os_x' + inspec.command('sw_vers -productVersion').stdout.to_s + when 'opensuse' + # rubocop:disable Style/NumericLiterals,Layout/LineLength + inspec.platform[:release].to_i > 20210101 ? 'tumbleweed' : inspec.platform[:release] + # rubocop:enable Style/NumericLiterals,Layout/LineLength + when 'windows_8.1_pro' + '8.1' + when 'windows_server_2022_datacenter' + '2022-server' + when 'windows_server_2019_datacenter' + '2019-server' + when 'windows_server_2016_datacenter' + '2016-server' + else + inspec.platform[:release] + end + end + # rubocop:enable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity + + def derive_gentoo_init_system + inspec.command('systemctl').exist? ? 'sysd' : 'sysv' + end + + def build_platform_finger + "#{build_platform_name}-#{build_finger_release}" + end + + def build_finger_release + case inspec.platform[:name] + when 'ubuntu' + build_platform_release.split('.').slice(0, 2).join('.') + else + build_platform_release.split('.')[0] + end + end + + # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity + def build_platform_codename + case build_platform_finger + when 'ubuntu-22.04' + 'jammy' + when 'ubuntu-20.04' + 'focal' + when 'ubuntu-18.04' + 'bionic' + when 'debian-11' + 'bullseye' + when 'debian-10' + 'buster' + when 'debian-9' + 'stretch' + when 'almalinux-8' + "AlmaLinux #{build_platform_release} (Arctic Sphynx)" + when 'amazonlinux-2' + 'Amazon Linux 2' + when 'arch-base-latest' + 'Arch Linux' + when 'centos-7' + 'CentOS Linux 7 (Core)' + when 'centos-8' + 'CentOS Stream 8' + when 'opensuse-tumbleweed' + 'openSUSE Tumbleweed' + when 'opensuse-15' + "openSUSE Leap #{build_platform_release}" + when 'oraclelinux-8', 'oraclelinux-7' + "Oracle Linux Server #{build_platform_release}" + when 'gentoo-2-sysd', 'gentoo-2-sysv' + 'Gentoo/Linux' + when 'rockylinux-8' + "Rocky Linux #{build_platform_release} (Green Obsidian)" + else + '' + end + end + # rubocop:enable Metrics/MethodLength,Metrics/CyclomaticComplexity +end +# rubocop:enable Metrics/ClassLength