ci: merge travis matrix, add `salt-lint` & `rubocop` to `lint` jobtags/v0.5.1
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
--- | |||||
# General overrides used across formulas in the org | |||||
Metrics/LineLength: | |||||
# Increase from default of `80` | |||||
# Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) | |||||
Max: 88 | |||||
# Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config` |
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
--- | |||||
exclude_paths: [] | |||||
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 | |||||
# Skipping `207` and `208` because `210` is sufficient, at least for the time-being | |||||
# I.e. Allows 3-digit unquoted codes to still be used, such as `644` and `755` | |||||
- 207 # File modes should always be encapsulated in quotation marks | |||||
- 208 # File modes should always contain a leading zero | |||||
tags: [] | |||||
verbosity: 1 |
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# vim: ft=yaml | # vim: ft=yaml | ||||
--- | --- | ||||
## Machine config | |||||
dist: bionic | dist: bionic | ||||
## Stages and jobs matrix | |||||
stages: | stages: | ||||
- lint | |||||
- test | |||||
- name: release | - name: release | ||||
if: branch = master AND type != pull_request | if: branch = master AND type != pull_request | ||||
jobs: | jobs: | ||||
allow_failures: | |||||
- env: Lint_rubocop | |||||
fast_finish: true | |||||
include: | include: | ||||
# Define the `lint` stage (runs `yamllint` and `commitlint`) | |||||
- stage: lint | |||||
language: node_js | |||||
## Define the test stage that runs the linters (and testing matrix, if applicable) | |||||
# Run all of the linters in a single job (except `rubocop`) | |||||
- language: node_js | |||||
node_js: lts/* | node_js: lts/* | ||||
env: Lint | |||||
name: 'Lint: salt-lint, yamllint & commitlint' | |||||
before_install: skip | before_install: skip | ||||
script: | script: | ||||
# Install and run `salt-lint` | |||||
- pip install --user salt-lint | |||||
- git ls-files | grep '\.sls$\|\.jinja$\|\.j2$\|\.tmpl$' | |||||
| xargs -I {} salt-lint {} | |||||
# Install and run `yamllint` | # Install and run `yamllint` | ||||
# Need at least `v1.17.0` for the `yaml-files` setting | # Need at least `v1.17.0` for the `yaml-files` setting | ||||
- pip install --user yamllint>=1.17.0 | - pip install --user yamllint>=1.17.0 | ||||
- npm install @commitlint/config-conventional -D | - npm install @commitlint/config-conventional -D | ||||
- npm install @commitlint/travis-cli -D | - npm install @commitlint/travis-cli -D | ||||
- commitlint-travis | - commitlint-travis | ||||
# Define the release stage that runs `semantic-release` | |||||
# Run the `rubocop` linter in a separate job that is allowed to fail | |||||
# Once these lint errors are fixed, this can be merged into a single job | |||||
- language: node_js | |||||
node_js: lts/* | |||||
env: Lint_rubocop | |||||
name: 'Lint: rubocop' | |||||
before_install: skip | |||||
script: | |||||
# Install and run `rubocop` | |||||
- gem install rubocop | |||||
- rubocop -d | |||||
## Define the release stage that runs `semantic-release` | |||||
- stage: release | - stage: release | ||||
language: node_js | language: node_js | ||||
node_js: lts/* | node_js: lts/* | ||||
env: Release | |||||
name: 'Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA' | |||||
before_install: skip | before_install: skip | ||||
script: | script: | ||||
# Update `AUTHORS.md` | # Update `AUTHORS.md` |
# Default settings | # Default settings | ||||
- '*.yaml' | - '*.yaml' | ||||
- '*.yml' | - '*.yml' | ||||
- .salt-lint | |||||
- .yamllint | - .yamllint | ||||
# SaltStack Formulas additional settings | # SaltStack Formulas additional settings | ||||
- '*.example' | - '*.example' |
source "https://rubygems.org" | |||||
# frozen_string_literal: true | |||||
source 'https://rubygems.org' | |||||
gem 'kitchen-docker', '>= 2.9' | gem 'kitchen-docker', '>= 2.9' | ||||
gem 'kitchen-salt', '>= 0.6.0' | |||||
gem 'kitchen-inspec', '>= 1.1' | gem 'kitchen-inspec', '>= 1.1' | ||||
gem 'kitchen-salt', '>= 0.6.0' |
# this file is here to facilitate running it. | # this file is here to facilitate running it. | ||||
# | # | ||||
require "pathname" | |||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", | |||||
Pathname.new(__FILE__).realpath) | |||||
require 'pathname' | |||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', | |||||
Pathname.new(__FILE__).realpath) | |||||
bundle_binstub = File.expand_path("../bundle", __FILE__) | |||||
bundle_binstub = File.expand_path('bundle', __dir__) | |||||
if File.file?(bundle_binstub) | if File.file?(bundle_binstub) | ||||
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ | if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ | ||||
load(bundle_binstub) | load(bundle_binstub) | ||||
else | else | ||||
abort("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.") | |||||
abort( | |||||
'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 | end | ||||
end | end | ||||
require "rubygems" | |||||
require "bundler/setup" | |||||
require 'rubygems' | |||||
require 'bundler/setup' | |||||
load Gem.bin_path("test-kitchen", "kitchen") | |||||
load Gem.bin_path('test-kitchen', 'kitchen') |