Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

semantic-release #61

Merged
merged 30 commits into from
Jan 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
17b4331
feat: implementing semantic release
daks Aug 9, 2019
288f893
ci(kitchen): fix tests with a minimal coverage
daks Aug 9, 2019
3615785
ci(inspec): removing useless inspec tests
daks Aug 10, 2019
98c6d2c
ci(inspec): fix Debian tests
daks Aug 13, 2019
39ba77d
ci(kitchen+inspec): add Ubuntu test suite
daks Aug 13, 2019
e41117c
ci(kitchen+inspec): add fedora30 and fedora29 tests suites
daks Aug 13, 2019
d320ccd
ci(kitchen+inspec): add Centos test suite
daks Aug 13, 2019
58b1209
ci(kitchen+inspec): add initial support for opensuse
daks Aug 16, 2019
edb0d73
ci(kitchen+inspec): add Amazonlinux test suite
daks Aug 16, 2019
1755f76
feat(semantic-release): update for this formula
myii Jan 15, 2020
8e75c9d
test: fix existing tests
myii Oct 3, 2019
702e8c3
test(arch): test initial configuration
myii Oct 3, 2019
83ed92b
fix(salt-lint): fix all errors
myii Dec 8, 2019
08340c8
fix(golang_spec.rb): fix `rubocop` errors
myii Jan 13, 2020
1f72c40
fix(rubocop): add fixes using `rubocop -a --safe`
myii Oct 18, 2019
591d85a
fix(rubocop): fix remaining errors manually
myii Dec 7, 2019
89911dc
test(fedora): merge fedora test suites and pillars
myii Dec 7, 2019
593a6e5
refactor(pillar.amazonlinux): shorten suite name to `amazon`
myii Dec 7, 2019
033ff44
refactor(test_pillars): rename to make accessible to `yamllint`
myii Dec 8, 2019
4176716
fix(yamllint): fix all errors
myii Dec 8, 2019
281846e
fix(archlinux): fix test setup
myii Dec 8, 2019
a4d4d1d
fix(centos): fix tests
myii Dec 8, 2019
16c4213
fix(gem): fix `invalid option: --no-rdoc` & `invalid option: --no-ri`
myii Dec 8, 2019
a4e9311
fix(pips.sls): use `tplroot` instead of `slspath`
myii Jan 13, 2020
adf1523
test(pillar): use specific pillar for `debian`
myii Dec 8, 2019
c69cb5a
test(pillar): use single ubuntu pillar
myii Jan 15, 2020
eca4228
fix(node): ensure using on `debian`
myii Jan 13, 2020
0f992d9
fix(golang): ensure state runs
myii Jan 13, 2020
bd909bd
fix(golang): ensure using on `ubuntu`
myii Jan 15, 2020
48ae3c9
ci(pillars): use one retry to prevent excessive slow-down in Travis
myii Jan 13, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ coverage.xml
.kitchen
.kitchen.local.yml
kitchen.local.yml
junit-*.xml

# Translations
*.mo
Expand Down Expand Up @@ -102,3 +103,20 @@ ENV/

# mypy
.mypy_cache/

# Bundler
Gemfile.lock

# copied `.md` files used for conversion to `.rst` using `m2r`
docs/*.md

# Vim
*.sw?

## Collected when centralising formulas (check and sort)
# `collectd-formula`
.pytest_cache/
/.idea/
Dockerfile.*_*
ignore/
tmp/
10 changes: 10 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -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`
14 changes: 14 additions & 0 deletions .salt-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# 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
# 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
125 changes: 110 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,116 @@
sudo: required
cache: bundler
language: ruby
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
## Machine config
os: 'linux'
arch: 'amd64'
dist: 'bionic'
version: '~> 1.0'

## Language and cache config
language: 'ruby'
cache: 'bundler'

## Services config
services:
- docker

before_install:
- bundle install
## Script to run for the test stage
script:
- bin/kitchen verify "${INSTANCE}"

env:
matrix:
- INSTANCE: deb-debian-9
- INSTANCE: ubu16-ubuntu-1604
- INSTANCE: ubu18-ubuntu-1804
- INSTANCE: rpm-centos-7
- INSTANCE: fed-fedora
- INSTANCE: sus-opensuse-leap-salt-minion
## Stages and jobs matrix
stages:
- test
- name: 'release'
if: 'branch = master AND type != pull_request'
jobs:
include:
## Define the test stage that runs the linters (and testing matrix, if applicable)

script:
- bundle exec kitchen verify ${INSTANCE}
# Run all of the linters in a single job
- 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 -- '*.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
- yamllint -s .
# Install and run `rubocop`
- gem install rubocop
- rubocop -d
# Run `shellcheck` (already pre-installed in Travis)
- shellcheck --version
- git ls-files -- '*.sh' '*.bash' '*.ksh'
| xargs shellcheck
# Install and run `commitlint`
- npm i -D @commitlint/config-conventional
@commitlint/travis-cli
- 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=debian-debian-10-master-py3
# - env: INSTANCE=ubuntu-ubuntu-1804-master-py3
# - env: INSTANCE=centos-centos-8-master-py3
# - env: INSTANCE=fedora-fedora-31-master-py3
# - env: INSTANCE=suse-opensuse-leap-151-master-py3
# - env: INSTANCE=amazon-amazonlinux-2-master-py2
# - env: INSTANCE=arch-arch-base-latest-master-py2
# - env: INSTANCE=debian-debian-10-2019-2-py3
# - env: INSTANCE=debian-debian-9-2019-2-py3
- env: INSTANCE=ubuntu-ubuntu-1804-2019-2-py3
# - env: INSTANCE=centos-centos-8-2019-2-py3
# - env: INSTANCE=fedora-fedora-31-2019-2-py3
- env: INSTANCE=suse-opensuse-leap-151-2019-2-py3
# - env: INSTANCE=centos-centos-7-2019-2-py2
- env: INSTANCE=amazon-amazonlinux-2-2019-2-py2
# - env: INSTANCE=arch-arch-base-latest-2019-2-py2
- env: INSTANCE=fedora-fedora-30-2018-3-py3
# - env: INSTANCE=debian-debian-9-2018-3-py2
# - env: INSTANCE=ubuntu-ubuntu-1604-2018-3-py2
- env: INSTANCE=centos-centos-7-2018-3-py2
# - env: INSTANCE=suse-opensuse-leap-151-2018-3-py2
# - env: INSTANCE=amazon-amazonlinux-2-2018-3-py2
# - env: INSTANCE=arch-arch-base-latest-2018-3-py2
# - env: INSTANCE=debian-debian-8-2017-7-py2
# - env: INSTANCE=ubuntu-ubuntu-1604-2017-7-py2
# - env: INSTANCE=centos-centos-6-2017-7-py2
# - env: INSTANCE=fedora-fedora-30-2017-7-py2
# - env: INSTANCE=suse-opensuse-leap-151-2017-7-py2
# - env: INSTANCE=amazon-amazonlinux-2-2017-7-py2
- env: INSTANCE=arch-arch-base-latest-2017-7-py2

## 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`
- export MAINTAINER_TOKEN=${GH_TOKEN}
- go get github.com/myii/maintainer
- maintainer contributor

# Install all dependencies required for `semantic-release`
- npm i -D @semantic-release/changelog@3
@semantic-release/exec@3
@semantic-release/git@7
deploy:
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'
36 changes: 36 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
# Extend the `default` configuration provided by `yamllint`
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
ignore: |
node_modules/
test/**/states/**/*.sls
.kitchen/

yaml-files:
# Default settings
- '*.yaml'
- '*.yml'
- .salt-lint
- .yamllint
# SaltStack Formulas additional settings
- '*.example'
- test/**/*.sls

rules:
empty-values:
forbid-in-block-mappings: true
forbid-in-flow-mappings: true
line-length:
# Increase from default of `80`
# Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`)
max: 88
octal-values:
forbid-implicit-octal: true
forbid-explicit-octal: true
9 changes: 9 additions & 0 deletions FORMULA
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: packages
os: Debian, Ubuntu, Raspbian, RedHat, Fedora, CentOS, Suse, openSUSE
os_family: Debian, RedHat, Suse
version: 3.2.1
release: 1
minimum_version: 2017.7
summary: packages formula
description: Formula to install packages
top_level_dir: packages
14 changes: 9 additions & 5 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
source "https://rubygems.org"
# frozen_string_literal: true

gem "test-kitchen"
gem "kitchen-docker"
gem "kitchen-salt"
gem "kitchen-inspec"
source 'https://rubygems.org'

gem 'kitchen-docker', '>= 2.9'
gem 'kitchen-inspec', '>= 1.1'
gem 'kitchen-salt', '>= 0.6.0'
# Latest versions of `train` cause failure when running `kitchen verify`
# Downgrading to `3.2.0` until this is fixed upstream
# https://github.com/inspec/train/pull/544#issuecomment-566055052
gem 'train', '3.2.0'
32 changes: 32 additions & 0 deletions bin/kitchen
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env ruby
# frozen_string_literal: true

#
# This file was generated by Bundler.
#
# The application 'kitchen' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
Pathname.new(__FILE__).realpath)

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.'
)
end
end

require 'rubygems'
require 'bundler/setup'

load Gem.bin_path('test-kitchen', 'kitchen')
3 changes: 3 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
};
Loading