Skip to content

Commit

Permalink
Merge pull request #110 from myii/feat/semantic-release
Browse files Browse the repository at this point in the history
feat(semantic-release): implement for this formula
  • Loading branch information
myii authored Apr 20, 2020
2 parents 53b02a5 + a1365ef commit eae5b9f
Show file tree
Hide file tree
Showing 34 changed files with 1,849 additions and 381 deletions.
123 changes: 122 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,123 @@
*.swp
# 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/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.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
.bundle/
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/
2 changes: 1 addition & 1 deletion .kitchen.docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ driver:
name: docker
hostname: salt-formula.ci.local
use_sudo: true
require_chef_omnibus: false
require_chef_omnibus: false
59 changes: 0 additions & 59 deletions .kitchen.yml

This file was deleted.

25 changes: 25 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
# General overrides used across formulas in the org
Layout/LineLength:
# Increase from default of `80`
# Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`)
Max: 88
Metrics/BlockLength:
ExcludedMethods:
- control
- describe
# Increase from default of `25`
Max: 30

# General settings across all cops in this formula
AllCops:
# Files to ignore completely
Exclude:
- test/integration/**/serverspec/*

# Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config`
Style/FormatStringToken:
Exclude:
- test/integration/tomcat_install/controls/yaml_dump_spec.rb
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
136 changes: 116 additions & 20 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,123 @@
language: ruby
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
## Machine config
os: 'linux'
arch: 'amd64'
dist: 'bionic'
version: '~> 1.0'

rvm:
- 2.2.6
## Language and cache config
language: 'ruby'
cache: 'bundler'

sudo: required
services:
## Services config
services:
- docker

env:
matrix:
- INSTANCE: install-ubuntu-1804
- INSTANCE: install-centos-7
- INSTANCE: install-debian-9
- INSTANCE: extend-ubuntu-1804
- INSTANCE: extend-centos-7
- INSTANCE: extend-debian-9
## Script to run for the test stage
script:
- bin/kitchen verify "${INSTANCE}"

# https://github.com/zuazo/kitchen-in-travis-native/issues/1#issuecomment-142455888
before_script: sudo iptables -L DOCKER || sudo iptables -N 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)

install:
# setup ci for test formula
- export BUNDLE_GEMFILE=$PWD/Gemfile
- 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, 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

script: bundle exec kitchen verify ${INSTANCE}
## 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=tomcat-install-debian-10-master-py3
- env: INSTANCE=tomcat-install-ubuntu-1804-master-py3
# - env: INSTANCE=tomcat-extend-ubuntu-1804-master-py3
# - env: INSTANCE=tomcat-install-centos-8-master-py3
- env: INSTANCE=tomcat-install-fedora-31-master-py3
- env: INSTANCE=tomcat-install-opensuse-leap-151-master-py3
# - env: INSTANCE=tomcat-install-amazonlinux-2-master-py3
# - env: INSTANCE=tomcat-install-arch-base-latest-master-py2
# - env: INSTANCE=tomcat-install-debian-10-3000-1-py3
# - env: INSTANCE=tomcat-install-ubuntu-1804-3000-1-py3
# - env: INSTANCE=tomcat-install-centos-8-3000-1-py3
# - env: INSTANCE=tomcat-install-fedora-31-3000-1-py3
# - env: INSTANCE=tomcat-install-opensuse-leap-151-3000-1-py3
- env: INSTANCE=tomcat-install-amazonlinux-2-3000-1-py3
# - env: INSTANCE=tomcat-install-arch-base-latest-3000-1-py2
# - env: INSTANCE=tomcat-install-debian-10-2019-2-py3
- env: INSTANCE=tomcat-install-debian-9-2019-2-py3
# - env: INSTANCE=tomcat-install-ubuntu-1804-2019-2-py3
# - env: INSTANCE=tomcat-install-ubuntu-1604-2019-2-py3
# - env: INSTANCE=tomcat-install-centos-8-2019-2-py3
- env: INSTANCE=tomcat-install-centos-7-2019-2-py3
# - env: INSTANCE=tomcat-install-fedora-31-2019-2-py3
# - env: INSTANCE=tomcat-install-opensuse-leap-151-2019-2-py3
# - env: INSTANCE=tomcat-install-amazonlinux-2-2019-2-py3
# - env: INSTANCE=tomcat-install-ubuntu-1804-2019-2-py2
# - env: INSTANCE=tomcat-install-amazonlinux-1-2019-2-py2
# - env: INSTANCE=tomcat-install-arch-base-latest-2019-2-py2
# - env: INSTANCE=tomcat-install-centos-7-2018-3-py3
# - env: INSTANCE=tomcat-install-fedora-30-2018-3-py3
# - env: INSTANCE=tomcat-install-debian-9-2018-3-py2
# - env: INSTANCE=tomcat-install-debian-8-2018-3-py2
# - env: INSTANCE=tomcat-install-ubuntu-1804-2018-3-py2
# - env: INSTANCE=tomcat-install-ubuntu-1604-2018-3-py2
# - env: INSTANCE=tomcat-install-centos-6-2018-3-py2
# - env: INSTANCE=tomcat-install-opensuse-leap-151-2018-3-py2
# - env: INSTANCE=tomcat-install-amazonlinux-1-2018-3-py2
# - env: INSTANCE=tomcat-install-arch-base-latest-2018-3-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 [email protected]'
Loading

0 comments on commit eae5b9f

Please sign in to comment.