Skip to content

Commit

Permalink
feat(semantic-release): implement for this formula
Browse files Browse the repository at this point in the history
* Semi-automated using myii/ssf-formula#78
* Fix (or ignore) `yamllint` errors:

```bash
docker-formula$ yamllint -s .
./pillar.example
  5:1       warning  missing document start "---"  (document-start)
  10:8      warning  missing starting space in comment  (comments)
  12:11     error    empty value in block mapping  (empty-values)
  13:89     error    line too long (92 > 88 characters)  (line-length)
  14:26     warning  truthy value should be one of [false, true]  (truthy)
  28:1      error    trailing spaces  (trailing-spaces)
  32:11     error    empty value in block mapping  (empty-values)
  36:89     error    line too long (92 > 88 characters)  (line-length)
  37:26     warning  truthy value should be one of [false, true]  (truthy)
  58:4      warning  missing starting space in comment  (comments)
  59:4      warning  missing starting space in comment  (comments)
  61:4      warning  missing starting space in comment  (comments)
  62:4      warning  missing starting space in comment  (comments)
  63:21     warning  truthy value should be one of [false, true]  (truthy)
  64:1      error    trailing spaces  (trailing-spaces)
  65:89     error    line too long (93 > 88 characters)  (line-length)
  66:4      warning  missing starting space in comment  (comments)
  76:3      warning  comment not indented like content  (comments-indentation)
  77:6      warning  missing starting space in comment  (comments)
  78:6      warning  missing starting space in comment  (comments)
  79:23     warning  truthy value should be one of [false, true]  (truthy)
  87:20     warning  truthy value should be one of [false, true]  (truthy)
  88:20     warning  truthy value should be one of [false, true]  (truthy)
  92:12     warning  truthy value should be one of [false, true]  (truthy)
  111:8     warning  missing starting space in comment  (comments)
  119:4     error    syntax error: expected <block end>, but found '<block mapping start>'
  120:8     warning  missing starting space in comment  (comments)
  121:7     error    wrong indentation: expected 5 but found 6  (indentation)
  132:8     warning  missing starting space in comment  (comments)
  145:2     warning  missing starting space in comment  (comments)
  147:5     warning  comment not indented like content  (comments-indentation)
  148:6     warning  missing starting space in comment  (comments)
  149:6     warning  missing starting space in comment  (comments)
  150:6     warning  missing starting space in comment  (comments)
  154:6     warning  missing starting space in comment  (comments)
  155:6     warning  missing starting space in comment  (comments)
  157:2     warning  missing starting space in comment  (comments)
  159:6     warning  comment not indented like content  (comments-indentation)
  169:6     warning  comment not indented like content  (comments-indentation)
  174:1     error    too many blank lines (1 > 0)  (empty-lines)

./docker/defaults.yaml
  3:1       warning  missing document start "---"  (document-start)
  5:22      warning  truthy value should be one of [false, true]  (truthy)
  7:17      warning  truthy value should be one of [false, true]  (truthy)
  14:22     warning  truthy value should be one of [false, true]  (truthy)
  15:17     warning  truthy value should be one of [false, true]  (truthy)
  16:10     warning  truthy value should be one of [false, true]  (truthy)
  27:20     warning  truthy value should be one of [false, true]  (truthy)
  28:11     warning  truthy value should be one of [false, true]  (truthy)
  29:23     warning  truthy value should be one of [false, true]  (truthy)
  29:35     warning  missing starting space in comment  (comments)
  32:23     warning  truthy value should be one of [false, true]  (truthy)
  33:14     warning  truthy value should be one of [false, true]  (truthy)
  39:20     warning  truthy value should be one of [false, true]  (truthy)
  40:20     warning  truthy value should be one of [false, true]  (truthy)
  46:1      error    too many blank lines (1 > 0)  (empty-lines)

./docker/osfamilymap.yaml
  13:2      error    syntax error: found character '%' that cannot start any token
  50:89     error    line too long (164 > 88 characters)  (line-length)

./docker/codenamemap.yaml
  3:1       warning  missing document start "---"  (document-start)
  36:1      error    too many blank lines (1 > 0)  (empty-lines)

./docker/osmap.yaml
  1:1       error    too many blank lines (1 > 0)  (empty-lines)
  2:1       warning  missing document start "---"  (document-start)

(saltstack) imran@E6530:~/Salt/formulas/docker-formula$ yamllint -s .
./docker/osfamilymap.yaml
  13:2      error    syntax error: found character '%' that cannot start any token
  51:89     error    line too long (164 > 88 characters)  (line-length)
```
  • Loading branch information
myii committed Oct 16, 2019
1 parent 71ee3c4 commit ea6be11
Show file tree
Hide file tree
Showing 22 changed files with 832 additions and 220 deletions.
113 changes: 108 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,40 @@
.kitchen/
.ruby-version
junit*.xml

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a packager
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
Expand All @@ -15,5 +43,80 @@ htmlcov/
.cache
nosetests.xml
coverage.xml
*,cover
*.cover
.hypothesis/
.kitchen
.kitchen.local.yml
kitchen.local.yml
junit-*.xml

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# 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/
78 changes: 0 additions & 78 deletions .kitchen.yml

This file was deleted.

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`
15 changes: 15 additions & 0 deletions .salt-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
exclude_paths:
# Violation: [204] Lines should be no longer that 160 chars
- docker/repo.sls
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
110 changes: 96 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,104 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
## Machine config
dist: bionic
sudo: required
services:
- docker

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

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

services:
- docker
## 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)

before_install:
- bundle install
# 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
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
- yamllint -s .
# Install and run `rubocop`
- gem install rubocop
- rubocop -d
# Install and run `commitlint`
- npm install @commitlint/config-conventional -D
- npm install @commitlint/travis-cli -D
- 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:
matrix:
- INSTANCE: default-ubuntu-1804
- INSTANCE: default-debian-jessie
- INSTANCE: default-debian-stretch
- INSTANCE: version-1131-debian-jessie
- INSTANCE: version-1131-debian-stretch
## 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

script:
- bundle exec kitchen verify ${INSTANCE}
# 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
deploy:
provider: script
skip_cleanup: true
script:
# Run `semantic-release`
- npx semantic-release@15
37 changes: 37 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# -*- 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/
docker/osfamilymap.yaml
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: docker
os: Debian, Ubuntu, Raspbian, RedHat, Fedora, CentOS, Suse, openSUSE, Gentoo, Funtoo, Arch, Manjaro, Alpine, FreeBSD, OpenBSD, Solaris, SmartOS, Windows, MacOS
os_family: Debian, RedHat, Suse, Gentoo, Arch, Alpine, FreeBSD, OpenBSD, Solaris, Windows, MacOS
version: 0.41.0
release: 1
minimum_version: 2017.7
summary: docker formula
description: Formula for working with Docker
top_level_dir: docker
Loading

0 comments on commit ea6be11

Please sign in to comment.