ci: merge travis matrix, add `salt-lint` & `rubocop` to `lint` jobtags/v0.5.1
@@ -0,0 +1,10 @@ | |||
# -*- 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` |
@@ -0,0 +1,13 @@ | |||
# -*- 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 |
@@ -1,20 +1,32 @@ | |||
# -*- coding: utf-8 -*- | |||
# vim: ft=yaml | |||
--- | |||
## Machine config | |||
dist: bionic | |||
## Stages and jobs matrix | |||
stages: | |||
- lint | |||
- test | |||
- name: release | |||
if: branch = master AND type != pull_request | |||
jobs: | |||
allow_failures: | |||
- env: Lint_rubocop | |||
fast_finish: true | |||
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/* | |||
env: Lint | |||
name: 'Lint: salt-lint, yamllint & 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 {} | |||
# Install and run `yamllint` | |||
# Need at least `v1.17.0` for the `yaml-files` setting | |||
- pip install --user yamllint>=1.17.0 | |||
@@ -23,10 +35,24 @@ jobs: | |||
- npm install @commitlint/config-conventional -D | |||
- npm install @commitlint/travis-cli -D | |||
- 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 | |||
language: node_js | |||
node_js: lts/* | |||
env: Release | |||
name: 'Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA' | |||
before_install: skip | |||
script: | |||
# Update `AUTHORS.md` |
@@ -17,6 +17,7 @@ yaml-files: | |||
# Default settings | |||
- '*.yaml' | |||
- '*.yml' | |||
- .salt-lint | |||
- .yamllint | |||
# SaltStack Formulas additional settings | |||
- '*.example' |
@@ -1,6 +1,7 @@ | |||
source "https://rubygems.org" | |||
# frozen_string_literal: true | |||
source 'https://rubygems.org' | |||
gem 'kitchen-docker', '>= 2.9' | |||
gem 'kitchen-salt', '>= 0.6.0' | |||
gem 'kitchen-inspec', '>= 1.1' | |||
gem 'kitchen-salt', '>= 0.6.0' |
@@ -8,22 +8,25 @@ | |||
# 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.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ | |||
load(bundle_binstub) | |||
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 | |||
require "rubygems" | |||
require "bundler/setup" | |||
require 'rubygems' | |||
require 'bundler/setup' | |||
load Gem.bin_path("test-kitchen", "kitchen") | |||
load Gem.bin_path('test-kitchen', 'kitchen') |