1
1
# -*- coding: utf-8 -*-
2
2
# vim: ft=yaml
3
3
---
4
+ # # Machine config
4
5
dist : bionic
5
- stages :
6
- - test
7
- - lint
8
- - name : release
9
- if : branch = master AND type != pull_request
10
-
11
6
sudo : required
12
- cache : bundler
13
- language : ruby
14
-
15
7
services :
16
8
- docker
17
9
18
- # Make sure the instances listed below match up with
19
- # the `platforms` defined in `kitchen.yml`
20
- env :
21
- matrix :
22
- - INSTANCE : default-debian-10-develop-py3
23
- # - INSTANCE: default-ubuntu-1804-develop-py3
24
- # - INSTANCE: default-centos-7-develop-py3
25
- # - INSTANCE: default-fedora-30-develop-py3
26
- # - INSTANCE: default-opensuse-leap-15-develop-py3
27
- # - INSTANCE: default-amazonlinux-2-develop-py2
28
- # - INSTANCE: default-arch-base-latest-develop-py2
29
- # - INSTANCE: default-debian-9-2019-2-py3
30
- - INSTANCE : default-ubuntu-1804-2019-2-py3
31
- - INSTANCE : default-centos-7-2019-2-py3
32
- # - INSTANCE: default-fedora-30-2019-2-py3
33
- # - INSTANCE: default-opensuse-leap-15-2019-2-py3
34
- # - INSTANCE: default-amazonlinux-2-2019-2-py2
35
- - INSTANCE : default-arch-base-latest-2019-2-py2
36
- # - INSTANCE: default-debian-9-2018-3-py2
37
- # - INSTANCE: default-ubuntu-1604-2018-3-py2
38
- # - INSTANCE: default-centos-7-2018-3-py2
39
- - INSTANCE : default-fedora-29-2018-3-py2
40
- - INSTANCE : default-opensuse-leap-15-2018-3-py2
41
- # - INSTANCE: default-amazonlinux-2-2018-3-py2
42
- # - INSTANCE: default-arch-base-latest-2018-3-py2
43
- # - INSTANCE: default-debian-8-2017-7-py2
44
- # - INSTANCE: default-ubuntu-1604-2017-7-py2
45
- - INSTANCE : default-centos-6-2017-7-py2
46
- # - INSTANCE: default-fedora-29-2017-7-py2
47
- # - INSTANCE: default-opensuse-leap-15-2017-7-py2
48
- # - INSTANCE: default-amazonlinux-2-2017-7-py2
49
- # - INSTANCE: default-arch-base-latest-2017-7-py2
10
+ # # Language and cache config
11
+ language : ruby
12
+ cache : bundler
50
13
14
+ # # Script to run for the test stage
51
15
script :
52
- - bin/kitchen verify ${INSTANCE}
16
+ - bin/kitchen verify " ${INSTANCE}"
53
17
18
+ # # Stages and jobs matrix
19
+ stages :
20
+ - test
21
+ - name : release
22
+ if : branch = master AND type != pull_request
54
23
jobs :
24
+ allow_failures :
25
+ - env : Lint_rubocop
26
+ fast_finish : true
55
27
include :
56
- # Define the `lint` stage (runs `yamllint` and `commitlint`)
57
- - stage : lint
58
- language : node_js
28
+ # # Define the test stage that runs the linters (and testing matrix, if applicable)
29
+
30
+ # Run all of the linters in a single job (except `rubocop`)
31
+ - language : node_js
59
32
node_js : lts/*
33
+ env : Lint
34
+ name : ' Lint: salt-lint, yamllint & commitlint'
60
35
before_install : skip
61
36
script :
37
+ # Install and run `salt-lint`
38
+ - pip install --user salt-lint
39
+ - git ls-files | grep '\.sls$\|\.jinja$\|\.j2$\|\.tmpl$'
40
+ | xargs -I {} salt-lint {}
62
41
# Install and run `yamllint`
63
42
# Need at least `v1.17.0` for the `yaml-files` setting
64
43
- pip install --user yamllint>=1.17.0
@@ -67,10 +46,56 @@ jobs:
67
46
- npm install @commitlint/config-conventional -D
68
47
- npm install @commitlint/travis-cli -D
69
48
- commitlint-travis
70
- # Define the release stage that runs `semantic-release`
49
+ # Run the `rubocop` linter in a separate job that is allowed to fail
50
+ # Once these lint errors are fixed, this can be merged into a single job
51
+ - language : node_js
52
+ node_js : lts/*
53
+ env : Lint_rubocop
54
+ name : ' Lint: rubocop'
55
+ before_install : skip
56
+ script :
57
+ # Install and run `rubocop`
58
+ - gem install rubocop
59
+ - rubocop -d
60
+
61
+ # # Define the rest of the matrix based on Kitchen testing
62
+ # Make sure the instances listed below match up with
63
+ # the `platforms` defined in `kitchen.yml`
64
+ - env : INSTANCE=default-debian-10-develop-py3
65
+ # - env: INSTANCE=default-ubuntu-1804-develop-py3
66
+ # - env: INSTANCE=default-centos-7-develop-py3
67
+ # - env: INSTANCE=default-fedora-30-develop-py3
68
+ # - env: INSTANCE=default-opensuse-leap-15-develop-py3
69
+ # - env: INSTANCE=default-amazonlinux-2-develop-py2
70
+ # - env: INSTANCE=default-arch-base-latest-develop-py2
71
+ # - env: INSTANCE=default-debian-9-2019-2-py3
72
+ - env : INSTANCE=default-ubuntu-1804-2019-2-py3
73
+ - env : INSTANCE=default-centos-7-2019-2-py3
74
+ # - env: INSTANCE=default-fedora-30-2019-2-py3
75
+ # - env: INSTANCE=default-opensuse-leap-15-2019-2-py3
76
+ # - env: INSTANCE=default-amazonlinux-2-2019-2-py2
77
+ - env : INSTANCE=default-arch-base-latest-2019-2-py2
78
+ # - env: INSTANCE=default-debian-9-2018-3-py2
79
+ # - env: INSTANCE=default-ubuntu-1604-2018-3-py2
80
+ # - env: INSTANCE=default-centos-7-2018-3-py2
81
+ - env : INSTANCE=default-fedora-29-2018-3-py2
82
+ - env : INSTANCE=default-opensuse-leap-15-2018-3-py2
83
+ # - env: INSTANCE=default-amazonlinux-2-2018-3-py2
84
+ # - env: INSTANCE=default-arch-base-latest-2018-3-py2
85
+ # - env: INSTANCE=default-debian-8-2017-7-py2
86
+ # - env: INSTANCE=default-ubuntu-1604-2017-7-py2
87
+ - env : INSTANCE=default-centos-6-2017-7-py2
88
+ # - env: INSTANCE=default-fedora-29-2017-7-py2
89
+ # - env: INSTANCE=default-opensuse-leap-15-2017-7-py2
90
+ # - env: INSTANCE=default-amazonlinux-2-2017-7-py2
91
+ # - env: INSTANCE=default-arch-base-latest-2017-7-py2
92
+
93
+ # # Define the release stage that runs `semantic-release`
71
94
- stage : release
72
95
language : node_js
73
96
node_js : lts/*
97
+ env : Release
98
+ name : ' Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA'
74
99
before_install : skip
75
100
script :
76
101
# Update `AUTHORS.md`
0 commit comments