Skip to content

Commit 97d74a3

Browse files
authored
Merge pull request #67 from dafyddj/ci/copier
chore: apply template `copier-ssf-ci` at v1.1.3
2 parents a93523c + 104862d commit 97d74a3

12 files changed

Lines changed: 547 additions & 493 deletions

.copier-answers.ssf-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2+
_commit: v1.1.6
3+
_src_path: https://github.com/dafyddj/copier-ssf-ci
4+
formula_name: vault

.github/renovate.json5

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
3+
enabledManagers: [
4+
'copier',
5+
'git-submodules',
6+
],
7+
extends: [
8+
'config:recommended',
9+
],
10+
automergeStrategy: 'merge-commit',
11+
'git-submodules': {
12+
'enabled': true
13+
},
14+
packageRules: [
15+
{
16+
matchFileNames: [
17+
'template/**'
18+
],
19+
semanticCommitType: 'fix',
20+
},
21+
{
22+
automerge: true,
23+
matchManagers: [
24+
'git-submodules'
25+
],
26+
},
27+
],
28+
}

.github/settings.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# These settings are synced to GitHub by https://probot.github.io/apps/settings/
3+
4+
repository:
5+
# See https://docs.github.com/en/rest/reference/repos#update-a-repository
6+
# for all available settings
7+
8+
allow_squash_merge: false

.github/workflows/kitchen.vagrant.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# vim: ft=yaml
33
---
44
name: 'Kitchen Vagrant (FreeBSD)'
5-
'on': ['push', 'pull_request']
5+
'on': # ['push', 'pull_request']
6+
disabled: {}
67

78
env:
89
KITCHEN_LOCAL_YAML: 'kitchen.vagrant.yml'

.gitlab-ci.yml

Lines changed: 70 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@
1313
stage_release: &stage_release 'release'
1414
stage_test: &stage_test 'test'
1515
# `image`
16-
image_commitlint: &image_commitlint 'myii/ssf-commitlint:11'
17-
image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3'
18-
image_precommit: &image_precommit
19-
name: 'myii/ssf-pre-commit:2.9.2'
20-
entrypoint: ['/bin/bash', '-c']
21-
image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest'
22-
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14'
16+
# yamllint disable rule:line-length
17+
image_commitlint: &image_commitlint 'techneg/ci-commitlint:v1.1.86@sha256:8c5ba8332790247b0bdd0e0f7a87fee169aa5405197a9cca4e79be30e45b0269'
18+
image_dindruby: &image_dindruby 'techneg/ci-docker-python-ruby:v2.2.55@sha256:1e4685e62a274c227c9cb08c80750e9961834777b53bb9e7c5faf6c0d8a07d1e'
19+
image_dindrubybionic: &image_dindrubybionic 'techneg/ci-docker-python-ruby:v2.2.55@sha256:1e4685e62a274c227c9cb08c80750e9961834777b53bb9e7c5faf6c0d8a07d1e'
20+
image_precommit: &image_precommit 'techneg/ci-pre-commit:v2.4.20@sha256:16ef5422c57c3ac998e15993e49ef76a6ff116b1faeecf61bb53309510f2a0b9'
21+
image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest@sha256:fe69f9642c7edde46bbd78326d2c42c6e13fc73694efb142e92e206725479328'
22+
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14@sha256:374f588420087517a3cc0235e11293bffd72d7a59da3d98d5e69f014ff2a7761'
2323
# `services`
2424
services_docker_dind: &services_docker_dind
25-
- 'docker:dind'
25+
- 'docker:dind@sha256:3a861ec98623bd6014610291123751dc19e0c6d474ac3b38767771791ac0eb5e'
26+
# yamllint enable rule:line-length
2627
# `variables`
2728
# https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3
2829
# https://bundler.io/v1.16/bundle_config.html
@@ -131,89 +132,67 @@ rubocop:
131132
# Make sure the instances listed below match up with
132133
# the `platforms` defined in `kitchen.yml`
133134
# yamllint disable rule:line-length
134-
# prod-server-debian-11-tiamat-py3: {extends: '.test_instance'}
135-
# prod-server-debian-10-tiamat-py3: {extends: '.test_instance'}
136-
# prod-server-debian-9-tiamat-py3: {extends: '.test_instance'}
137-
# prod-server-ubuntu-2204-tiamat-py3: {extends: '.test_instance_failure_permitted'}
138-
# prod-server-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
139-
# prod-server-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
140-
# prod-server-centos-stream8-tiamat-py3: {extends: '.test_instance_failure_permitted'}
141-
# prod-server-centos-7-tiamat-py3: {extends: '.test_instance'}
142-
# prod-server-amazonlinux-2-tiamat-py3: {extends: '.test_instance'}
143-
# prod-server-oraclelinux-8-tiamat-py3: {extends: '.test_instance'}
144-
# prod-server-oraclelinux-7-tiamat-py3: {extends: '.test_instance'}
145-
# prod-server-almalinux-8-tiamat-py3: {extends: '.test_instance'}
146-
# prod-server-rockylinux-8-tiamat-py3: {extends: '.test_instance'}
147-
# prod-server-debian-11-master-py3: {extends: '.test_instance'}
148-
debian-11-master-py3: {extends: '.test_instance'}
149-
# prod-server-debian-10-master-py3: {extends: '.test_instance'}
150-
debian-10-master-py3: {extends: '.test_instance'}
151-
# prod-server-debian-9-master-py3: {extends: '.test_instance'}
152-
debian-9-master-py3: {extends: '.test_instance'}
153-
# prod-server-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
154-
ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
155-
# prod-server-ubuntu-2004-master-py3: {extends: '.test_instance'}
156-
ubuntu-2004-master-py3: {extends: '.test_instance'}
157-
# prod-server-ubuntu-1804-master-py3: {extends: '.test_instance'}
158-
ubuntu-1804-master-py3: {extends: '.test_instance'}
159-
# prod-server-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
160-
centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
161-
# prod-server-centos-7-master-py3: {extends: '.test_instance'}
162-
centos-7-master-py3: {extends: '.test_instance'}
163-
# prod-server-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
164-
# fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
165-
# prod-server-fedora-35-master-py3: {extends: '.test_instance'}
166-
# fedora-35-master-py3: {extends: '.test_instance'}
167-
# prod-server-opensuse-leap-153-master-py3: {extends: '.test_instance'}
168-
opensuse-leap-153-master-py3: {extends: '.test_instance'}
169-
# prod-server-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
170-
opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
171-
# prod-server-amazonlinux-2-master-py3: {extends: '.test_instance'}
172-
amazonlinux-2-master-py3: {extends: '.test_instance'}
173-
# prod-server-oraclelinux-8-master-py3: {extends: '.test_instance'}
174-
oraclelinux-8-master-py3: {extends: '.test_instance'}
175-
# prod-server-oraclelinux-7-master-py3: {extends: '.test_instance'}
176-
oraclelinux-7-master-py3: {extends: '.test_instance'}
177-
# prod-server-arch-base-latest-master-py3: {extends: '.test_instance'}
178-
arch-base-latest-master-py3: {extends: '.test_instance'}
179-
# prod-server-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
180-
# gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
181-
# prod-server-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
182-
# gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
183-
# prod-server-almalinux-8-master-py3: {extends: '.test_instance'}
184-
almalinux-8-master-py3: {extends: '.test_instance'}
185-
# prod-server-rockylinux-8-master-py3: {extends: '.test_instance'}
186-
rockylinux-8-master-py3: {extends: '.test_instance'}
187-
# prod-server-debian-11-3004-1-py3: {extends: '.test_instance'}
188-
# prod-server-debian-10-3004-1-py3: {extends: '.test_instance'}
189-
# prod-server-debian-9-3004-1-py3: {extends: '.test_instance'}
190-
# prod-server-ubuntu-2204-3004-1-py3: {extends: '.test_instance_failure_permitted'}
191-
# prod-server-ubuntu-2004-3004-1-py3: {extends: '.test_instance'}
192-
# prod-server-ubuntu-1804-3004-1-py3: {extends: '.test_instance'}
193-
# prod-server-centos-stream8-3004-1-py3: {extends: '.test_instance_failure_permitted'}
194-
# prod-server-centos-7-3004-1-py3: {extends: '.test_instance'}
195-
# prod-server-fedora-36-3004-1-py3: {extends: '.test_instance_failure_permitted'}
196-
# prod-server-fedora-35-3004-1-py3: {extends: '.test_instance'}
197-
# prod-server-amazonlinux-2-3004-1-py3: {extends: '.test_instance'}
198-
# prod-server-oraclelinux-8-3004-1-py3: {extends: '.test_instance'}
199-
# prod-server-oraclelinux-7-3004-1-py3: {extends: '.test_instance'}
200-
# prod-server-arch-base-latest-3004-1-py3: {extends: '.test_instance'}
201-
# prod-server-gentoo-stage3-latest-3004-1-py3: {extends: '.test_instance'}
202-
# prod-server-gentoo-stage3-systemd-3004-1-py3: {extends: '.test_instance'}
203-
# prod-server-almalinux-8-3004-1-py3: {extends: '.test_instance'}
204-
# prod-server-rockylinux-8-3004-1-py3: {extends: '.test_instance'}
205-
# prod-server-opensuse-leap-153-3004-0-py3: {extends: '.test_instance'}
206-
# prod-server-opensuse-tmbl-latest-3004-0-py3: {extends: '.test_instance_failure_permitted'}
207-
# prod-server-debian-10-3003-4-py3: {extends: '.test_instance'}
208-
# prod-server-debian-9-3003-4-py3: {extends: '.test_instance'}
209-
# prod-server-ubuntu-2004-3003-4-py3: {extends: '.test_instance'}
210-
# prod-server-ubuntu-1804-3003-4-py3: {extends: '.test_instance'}
211-
# prod-server-centos-stream8-3003-4-py3: {extends: '.test_instance_failure_permitted'}
212-
# prod-server-centos-7-3003-4-py3: {extends: '.test_instance'}
213-
# prod-server-amazonlinux-2-3003-4-py3: {extends: '.test_instance'}
214-
# prod-server-oraclelinux-8-3003-4-py3: {extends: '.test_instance'}
215-
# prod-server-oraclelinux-7-3003-4-py3: {extends: '.test_instance'}
216-
# prod-server-almalinux-8-3003-4-py3: {extends: '.test_instance'}
135+
# Fedora 41+ will permit failure until this PR is merged into kitchen-docker
136+
# https://github.com/test-kitchen/kitchen-docker/pull/427 is merged
137+
# OpenSUSE master branch will fail until zypperpkg module is back in salt core
138+
# https://github.com/saltstack/great-module-migration/issues/14
139+
#
140+
# default-debian-12-master-py3: {extends: '.test_instance'}
141+
# default-debian-11-master-py3: {extends: '.test_instance'}
142+
# default-ubuntu-2404-master-py3: {extends: '.test_instance'}
143+
# default-ubuntu-2204-master-py3: {extends: '.test_instance'}
144+
# default-ubuntu-2004-master-py3: {extends: '.test_instance'}
145+
# default-centos-stream9-master-py3: {extends: '.test_instance'}
146+
# default-opensuse-leap-156-master-py3: {extends: '.test_instance_failure_permitted'}
147+
# default-opensuse-leap-155-master-py3: {extends: '.test_instance'}
148+
# default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance'}
149+
# default-amazonlinux-2023-master-py3: {extends: '.test_instance'}
150+
# default-fedora-41-master-py3: {extends: '.test_instance_failure_permitted'}
151+
# default-fedora-40-master-py3: {extends: '.test_instance'}
152+
# default-oraclelinux-9-master-py3: {extends: '.test_instance'}
153+
# default-oraclelinux-8-master-py3: {extends: '.test_instance'}
154+
# default-almalinux-9-master-py3: {extends: '.test_instance'}
155+
# default-almalinux-8-master-py3: {extends: '.test_instance'}
156+
# default-rockylinux-9-master-py3: {extends: '.test_instance'}
157+
# default-rockylinux-8-master-py3: {extends: '.test_instance'}
158+
debian-12-3007-1-py3: {extends: '.test_instance'}
159+
debian-11-3007-1-py3: {extends: '.test_instance'}
160+
ubuntu-2404-3007-1-py3: {extends: '.test_instance'}
161+
ubuntu-2204-3007-1-py3: {extends: '.test_instance'}
162+
ubuntu-2004-3007-1-py3: {extends: '.test_instance'}
163+
centos-stream9-3007-1-py3: {extends: '.test_instance'}
164+
# default-opensuse-leap-156-3007-1-py3: {extends: '.test_instance'}
165+
# default-opensuse-leap-155-3007-1-py3: {extends: '.test_instance'}
166+
# default-opensuse-tmbl-latest-3007-1-py3: {extends: '.test_instance'}
167+
# default-fedora-41-3007-1-py3: {extends: '.test_instance_failure_permitted'}
168+
# default-fedora-40-3007-1-py3: {extends: '.test_instance'}
169+
# default-amazonlinux-2-3007-1-py3: {extends: '.test_instance_failure_permitted'}
170+
# default-amazonlinux-2023-3007-1-py3: {extends: '.test_instance'}
171+
# default-oraclelinux-9-3007-1-py3: {extends: '.test_instance'}
172+
# default-oraclelinux-8-3007-1-py3: {extends: '.test_instance'}
173+
# default-almalinux-9-3007-1-py3: {extends: '.test_instance'}
174+
# default-almalinux-8-3007-1-py3: {extends: '.test_instance'}
175+
# default-rockylinux-9-3007-1-py3: {extends: '.test_instance'}
176+
# default-rockylinux-8-3007-1-py3: {extends: '.test_instance'}
177+
debian-12-3006-10-py3: {extends: '.test_instance'}
178+
debian-11-3006-10-py3: {extends: '.test_instance'}
179+
ubuntu-2404-3006-10-py3: {extends: '.test_instance'}
180+
ubuntu-2204-3006-10-py3: {extends: '.test_instance'}
181+
ubuntu-2004-3006-10-py3: {extends: '.test_instance'}
182+
centos-stream9-3006-10-py3: {extends: '.test_instance'}
183+
# default-opensuse-leap-156-3006-10-py3: {extends: '.test_instance'}
184+
# default-opensuse-leap-155-3006-10-py3: {extends: '.test_instance'}
185+
# default-opensuse-tmbl-latest-3006-10-py3: {extends: '.test_instance'}
186+
# default-fedora-41-3006-10-py3: {extends: '.test_instance_failure_permitted'}
187+
# default-fedora-40-3006-10-py3: {extends: '.test_instance'}
188+
# default-amazonlinux-2-3006-10-py3: {extends: '.test_instance_failure_permitted'}
189+
# default-amazonlinux-2023-3006-10-py3: {extends: '.test_instance'}
190+
# default-oraclelinux-9-3006-10-py3: {extends: '.test_instance'}
191+
# default-oraclelinux-8-3006-10-py3: {extends: '.test_instance'}
192+
# default-almalinux-9-3006-10-py3: {extends: '.test_instance'}
193+
# default-almalinux-8-3006-10-py3: {extends: '.test_instance'}
194+
# default-rockylinux-9-3006-10-py3: {extends: '.test_instance'}
195+
# default-rockylinux-8-3006-10-py3: {extends: '.test_instance'}
217196
# yamllint enable rule:line-length
218197

219198
###############################################################################

.pre-commit-config.yaml

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ci:
1515
autoupdate_schedule: quarterly
1616
skip: []
1717
submodules: false
18-
default_stages: [commit]
18+
default_stages: [pre-commit]
1919
repos:
2020
- repo: https://github.com/dafyddj/commitlint-pre-commit-hook
2121
rev: v2.3.0
@@ -24,46 +24,64 @@ repos:
2424
name: Check commit message using commitlint
2525
description: Lint commit message against @commitlint/config-conventional rules
2626
stages: [commit-msg]
27-
additional_dependencies: ['@commitlint/config-conventional@8.3.4']
28-
- id: commitlint-travis
29-
stages: [manual]
30-
additional_dependencies: ['@commitlint/config-conventional@8.3.4']
31-
always_run: true
27+
additional_dependencies: ['@commitlint/config-conventional@17.1.0']
3228
- repo: https://github.com/rubocop-hq/rubocop
33-
rev: v1.30.1
29+
rev: v1.57.0
3430
hooks:
3531
- id: rubocop
3632
name: Check Ruby files with rubocop
3733
args: [--debug]
38-
always_run: true
39-
pass_filenames: false
4034
- repo: https://github.com/shellcheck-py/shellcheck-py
41-
rev: v0.8.0.4
35+
rev: v0.9.0.6
4236
hooks:
4337
- id: shellcheck
4438
name: Check shell scripts with shellcheck
4539
files: ^.*\.(sh|bash|ksh)$
4640
types: []
4741
- repo: https://github.com/adrienverge/yamllint
48-
rev: v1.26.3
42+
rev: v1.32.0
4943
hooks:
5044
- id: yamllint
5145
name: Check YAML syntax with yamllint
52-
args: [--strict, '.']
53-
always_run: true
54-
pass_filenames: false
46+
args: [--strict]
47+
types: [file]
48+
# Files to include
49+
# 1. Obvious YAML files
50+
# 2. `pillar.example` and similar files
51+
# 3. SLS files under directory `test/` which are pillar files
52+
# Files to exclude
53+
# 1. SLS files under directory `test/` which are state files
54+
# 2. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
55+
# 3. YAML files heavily reliant on Jinja
56+
# 4. `.copier-answers.yml` and its variants which are auto-generated
57+
files: |
58+
(?x)^(
59+
.*\.yaml|
60+
.*\.yml|
61+
\.salt-lint|
62+
\.yamllint|
63+
.*\.example|
64+
test/.*\.sls
65+
)$
66+
exclude: |
67+
(?x)^(
68+
\.copier-answers(\..+)?\.ya?ml|
69+
kitchen.vagrant.yml|
70+
test/.*/states/.*\.sls
71+
)$
5572
- repo: https://github.com/warpnet/salt-lint
56-
rev: v0.8.0
73+
rev: v0.9.2
5774
hooks:
5875
- id: salt-lint
5976
name: Check Salt files using salt-lint
6077
files: ^.*\.(sls|jinja|j2|tmpl|tst)$
6178
- repo: https://github.com/myint/rstcheck
62-
rev: 3f929574
79+
rev: v6.2.0
6380
hooks:
6481
- id: rstcheck
6582
name: Check reST files using rstcheck
6683
exclude: 'docs/CHANGELOG.rst'
84+
additional_dependencies: [sphinx==7.2.6]
6785
- repo: https://github.com/saltstack-formulas/mirrors-rst-lint
6886
rev: v1.3.2
6987
hooks:
@@ -73,5 +91,18 @@ repos:
7391
(?x)^(
7492
docs/CHANGELOG.rst|
7593
docs/TOFS_pattern.rst|
94+
docs/CONTRIBUTING_DOCS.rst|
95+
docs/index.rst|
7696
)$
77-
additional_dependencies: [pygments==2.9.0]
97+
additional_dependencies: [pygments==2.16.1]
98+
- repo: https://github.com/renovatebot/pre-commit-hooks
99+
rev: 40.5.0
100+
hooks:
101+
- id: renovate-config-validator
102+
name: Check Renovate config with renovate-config-validator
103+
- repo: https://github.com/python-jsonschema/check-jsonschema
104+
rev: 0.33.0
105+
hooks:
106+
- id: check-gitlab-ci
107+
name: Check GitLab CI config with check-jsonschema
108+
args: ["--verbose"]

.rstcheck.cfg

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
[rstcheck]
22
report=info
33
ignore_language=rst
4-
ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$)
4+
# salt['config.get']('roles') is misidentified as a Markdown link.
5+
# Ignore for now, but perhaps try to submit a fix upstream in rstcheck
6+
ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$|\(rst\) Link is formatted in Markdown style\.)

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Layout/LineLength:
77
# Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`)
88
Max: 88
99
Metrics/BlockLength:
10-
IgnoredMethods:
10+
AllowedMethods:
1111
- control
1212
- describe
1313
# Increase from default of `25`

.yamllint

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,6 @@
44
# Extend the `default` configuration provided by `yamllint`
55
extends: 'default'
66

7-
# Files to ignore completely
8-
# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally
9-
# 2. All YAML files under directory `.cache/`, introduced during the CI run
10-
# 3. All YAML files under directory `.git/`
11-
# 4. All YAML files under directory `node_modules/`, introduced during the CI run
12-
# 5. Any SLS files under directory `test/`, which are actually state files
13-
# 6. Any YAML files under directory `.kitchen/`, introduced during local testing
14-
# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
15-
ignore: |
16-
.bundle/
17-
.cache/
18-
.git/
19-
node_modules/
20-
test/**/states/**/*.sls
21-
.kitchen/
22-
kitchen.vagrant.yml
23-
24-
yaml-files:
25-
# Default settings
26-
- '*.yaml'
27-
- '*.yml'
28-
- .salt-lint
29-
- .yamllint
30-
# SaltStack Formulas additional settings
31-
- '*.example'
32-
- test/**/*.sls
33-
347
rules:
358
empty-values:
369
forbid-in-block-mappings: true

0 commit comments

Comments
 (0)