* Automated using https://github.com/myii/ssf-formula/pull/275tags/v1.7.1
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
--- | |||||
############################################################################### | |||||
# Define all YAML node anchors | |||||
############################################################################### | |||||
.node_anchors: | |||||
# `only` (also used for `except` where applicable) | |||||
only_branch_master_parent_repo: &only_branch_master_parent_repo | |||||
- 'master@saltstack-formulas/salt-formula' | |||||
# `stage` | |||||
stage_lint: &stage_lint 'lint' | |||||
stage_release: &stage_release 'release' | |||||
stage_test: &stage_test 'test' | |||||
# `image` | |||||
image_commitlint: &image_commitlint 'myii/ssf-commitlint:11' | |||||
image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3' | |||||
image_precommit: &image_precommit | |||||
name: 'myii/ssf-pre-commit:2.9.2' | |||||
entrypoint: ['/bin/bash', '-c'] | |||||
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' | |||||
# `services` | |||||
services_docker_dind: &services_docker_dind | |||||
- 'docker:dind' | |||||
# `variables` | |||||
# https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 | |||||
# https://bundler.io/v1.16/bundle_config.html | |||||
variables_bundler: &variables_bundler | |||||
BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' | |||||
BUNDLE_WITHOUT: 'production' | |||||
# `cache` | |||||
cache_bundler: &cache_bundler | |||||
key: '${CI_JOB_STAGE}' | |||||
paths: | |||||
- '${BUNDLE_CACHE_PATH}' | |||||
############################################################################### | |||||
# Define stages and global variables | |||||
############################################################################### | |||||
stages: | |||||
- *stage_lint | |||||
- *stage_test | |||||
- *stage_release | |||||
variables: | |||||
DOCKER_DRIVER: 'overlay2' | |||||
############################################################################### | |||||
# `lint` stage: `commitlint` & `pre-commit` | |||||
############################################################################### | |||||
commitlint: | |||||
stage: *stage_lint | |||||
image: *image_commitlint | |||||
script: | |||||
# Add `upstream` remote to get access to `upstream/master` | |||||
- 'git remote add upstream ${CI_PROJECT_URL}.git' | |||||
- 'git fetch --all' | |||||
# Set default commit hashes for `--from` and `--to` | |||||
- 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"' | |||||
- 'export COMMITLINT_TO="${CI_COMMIT_SHA}"' | |||||
# `coqbot` adds a merge commit to test PRs on top of the latest commit in | |||||
# the repo; amend this merge commit message to avoid failure | |||||
- | | |||||
if [ "${GITLAB_USER_LOGIN}" = "coqbot" ] \ | |||||
&& [ "${CI_COMMIT_BRANCH}" != "master" ]; then | |||||
git commit --amend -m \ | |||||
'chore: reword coqbot merge commit message for commitlint' | |||||
export COMMITLINT_TO=HEAD | |||||
fi | |||||
# Run `commitlint` | |||||
- 'commitlint --from "${COMMITLINT_FROM}" | |||||
--to "${COMMITLINT_TO}" | |||||
--verbose' | |||||
pre-commit: | |||||
stage: *stage_lint | |||||
image: *image_precommit | |||||
# https://pre-commit.com/#gitlab-ci-example | |||||
variables: | |||||
PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' | |||||
cache: | |||||
key: '${CI_JOB_NAME}' | |||||
paths: | |||||
- '${PRE_COMMIT_HOME}' | |||||
script: | |||||
- 'pre-commit run --all-files --color always --verbose' | |||||
############################################################################### | |||||
# Define `test` template | |||||
############################################################################### | |||||
.test_instance: | |||||
stage: *stage_test | |||||
image: *image_dindruby | |||||
services: *services_docker_dind | |||||
variables: *variables_bundler | |||||
cache: *cache_bundler | |||||
before_script: | |||||
# TODO: This should work from the env vars above automatically | |||||
- 'bundle config set path "${BUNDLE_CACHE_PATH}"' | |||||
- 'bundle config set without "${BUNDLE_WITHOUT}"' | |||||
- 'bundle install' | |||||
script: | |||||
# Alternative value to consider: `${CI_JOB_NAME}` | |||||
- 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' | |||||
############################################################################### | |||||
# `test` stage: each instance below uses the `test` template above | |||||
############################################################################### | |||||
## 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` | |||||
v3001-py3-debian-10-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-debian-9-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-ubuntu-2004-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-ubuntu-1804-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-centos-8-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-centos-7-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-fedora-32-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-fedora-31-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-opensuse-leap-152-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-amazonlinux-2-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-oraclelinux-8-3001-py3: {extends: '.test_instance'} | |||||
# v3001-py3-oraclelinux-7-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-gentoo-stage3-latest-3001-py3: {extends: '.test_instance'} | |||||
v3001-py3-gentoo-stage3-systemd-3001-py3: {extends: '.test_instance'} | |||||
# v3000-py3-debian-10-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-debian-9-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-ubuntu-1804-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-centos-8-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-centos-7-3000-3-py3: {extends: '.test_instance'} | |||||
v3000-py3-opensuse-leap-152-3000-3-py3: {extends: '.test_instance'} | |||||
v3000-py3-amazonlinux-2-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-oraclelinux-8-3000-3-py3: {extends: '.test_instance'} | |||||
v3000-py3-oraclelinux-7-3000-3-py3: {extends: '.test_instance'} | |||||
v3000-py2-ubuntu-1804-3000-3-py2: {extends: '.test_instance'} | |||||
# v3000-py2-ubuntu-1604-3000-3-py2: {extends: '.test_instance'} | |||||
# v3000-py3-gentoo-stage3-latest-3000-3-py3: {extends: '.test_instance'} | |||||
# v3000-py3-gentoo-stage3-systemd-3000-3-py3: {extends: '.test_instance'} | |||||
############################################################################### | |||||
# `release` stage: `semantic-release` | |||||
############################################################################### | |||||
semantic-release: | |||||
only: *only_branch_master_parent_repo | |||||
stage: *stage_release | |||||
image: *image_semanticrelease | |||||
variables: | |||||
MAINTAINER_TOKEN: '${GH_TOKEN}' | |||||
script: | |||||
# Update `AUTHORS.md` | |||||
- '${HOME}/go/bin/maintainer contributor' | |||||
# Run `semantic-release` | |||||
- 'semantic-release' |
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# vim: ft=yaml | # vim: ft=yaml | ||||
--- | --- | ||||
################################################################################ | |||||
# NOTE: This file is UNMAINTAINED; it is provided for references purposes only. | |||||
# No guarantees are tendered that this structure will work after 2020. | |||||
################################################################################ | |||||
# * https://en.wikipedia.org/wiki/Travis_CI: | |||||
# - "... free open-source plans were removed in [sic] the end of 2020" | |||||
# - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing | |||||
# - https://ropensci.org/technotes/2020/11/19/moving-away-travis/ | |||||
################################################################################ | |||||
## Machine config | ## Machine config | ||||
os: 'linux' | os: 'linux' | ||||
arch: 'amd64' | arch: 'amd64' | ||||
## Stages and jobs matrix | ## Stages and jobs matrix | ||||
stages: | stages: | ||||
- test | - test | ||||
- name: 'release' | |||||
if: 'branch = master AND type != pull_request' | |||||
# # As part of the switch away from Travis CI, ensure that the `release` stage | |||||
# # is not run inadvertently | |||||
# - name: 'release' | |||||
# if: 'branch = master AND type != pull_request' | |||||
jobs: | jobs: | ||||
include: | include: | ||||
## Define the test stage that runs the linters (and testing matrix, if applicable) | ## Define the test stage that runs the linters (and testing matrix, if applicable) | ||||
# - env: INSTANCE=v3000-py3-ubuntu-1804-3000-3-py3 | # - env: INSTANCE=v3000-py3-ubuntu-1804-3000-3-py3 | ||||
# - env: INSTANCE=v3000-py3-centos-8-3000-3-py3 | # - env: INSTANCE=v3000-py3-centos-8-3000-3-py3 | ||||
# - env: INSTANCE=v3000-py3-centos-7-3000-3-py3 | # - env: INSTANCE=v3000-py3-centos-7-3000-3-py3 | ||||
- env: INSTANCE=v3000-py3-fedora-31-3000-3-py3 | |||||
- env: INSTANCE=v3000-py3-opensuse-leap-152-3000-3-py3 | - env: INSTANCE=v3000-py3-opensuse-leap-152-3000-3-py3 | ||||
- env: INSTANCE=v3000-py3-amazonlinux-2-3000-3-py3 | - env: INSTANCE=v3000-py3-amazonlinux-2-3000-3-py3 | ||||
# - env: INSTANCE=v3000-py3-oraclelinux-8-3000-3-py3 | # - env: INSTANCE=v3000-py3-oraclelinux-8-3000-3-py3 | ||||
# - env: INSTANCE=v3000-py2-ubuntu-1604-3000-3-py2 | # - env: INSTANCE=v3000-py2-ubuntu-1604-3000-3-py2 | ||||
# - env: INSTANCE=v3000-py3-gentoo-stage3-latest-3000-3-py3 | # - env: INSTANCE=v3000-py3-gentoo-stage3-latest-3000-3-py3 | ||||
# - env: INSTANCE=v3000-py3-gentoo-stage3-systemd-3000-3-py3 | # - env: INSTANCE=v3000-py3-gentoo-stage3-systemd-3000-3-py3 | ||||
# - env: INSTANCE=v201902-py3-debian-10-2019-2-py3 | |||||
- env: INSTANCE=v201902-py3-debian-9-2019-2-py3 | |||||
# - env: INSTANCE=v201902-py3-ubuntu-1804-2019-2-py3 | |||||
- env: INSTANCE=v201902-py3-ubuntu-1604-2019-2-py3 | |||||
# - env: INSTANCE=v201902-py3-centos-8-2019-2-py3 | |||||
- env: INSTANCE=v201902-py3-centos-7-2019-2-py3 | |||||
# - env: INSTANCE=v201902-py3-fedora-31-2019-2-py3 | |||||
# - env: INSTANCE=v201902-py3-opensuse-leap-152-2019-2-py3 | |||||
# - env: INSTANCE=v201902-py3-amazonlinux-2-2019-2-py3 | |||||
- env: INSTANCE=v201902-py2-centos-6-2019-2-py2 | |||||
# - env: INSTANCE=v201902-py2-amazonlinux-1-2019-2-py2 | |||||
## Define the release stage that runs `semantic-release` | ## Define the release stage that runs `semantic-release` | ||||
- stage: 'release' | - stage: 'release' |
# 3. Any YAML files under directory `.kitchen/`, introduced during local testing | # 3. Any YAML files under directory `.kitchen/`, introduced during local testing | ||||
# 4. All YAML files heavily reliant on Jinja; these can be tackled in a subsequent PR | # 4. All YAML files heavily reliant on Jinja; these can be tackled in a subsequent PR | ||||
ignore: | | ignore: | | ||||
.cache/ | |||||
node_modules/ | node_modules/ | ||||
test/**/states/**/*.sls | test/**/states/**/*.sls | ||||
.kitchen/ | .kitchen/ |
/docs/AUTHORS.rst @saltstack-formulas/ssf | /docs/AUTHORS.rst @saltstack-formulas/ssf | ||||
/docs/CHANGELOG.rst @saltstack-formulas/ssf | /docs/CHANGELOG.rst @saltstack-formulas/ssf | ||||
/docs/TOFS_pattern.rst @saltstack-formulas/ssf | /docs/TOFS_pattern.rst @saltstack-formulas/ssf | ||||
/salt/libsaltcli.jinja @saltstack-formulas/ssf | |||||
/salt/libtofs.jinja @saltstack-formulas/ssf | |||||
/*/libsaltcli.jinja @saltstack-formulas/ssf | |||||
/*/libtofs.jinja @saltstack-formulas/ssf | |||||
/test/integration/**/inspec.yml @saltstack-formulas/ssf | /test/integration/**/inspec.yml @saltstack-formulas/ssf | ||||
/test/integration/**/README.md @saltstack-formulas/ssf | /test/integration/**/README.md @saltstack-formulas/ssf | ||||
/.gitignore @saltstack-formulas/ssf | /.gitignore @saltstack-formulas/ssf | ||||
/.cirrus.yml @saltstack-formulas/ssf | /.cirrus.yml @saltstack-formulas/ssf | ||||
/.gitlab-ci.yml @saltstack-formulas/ssf | |||||
/.pre-commit-config.yaml @saltstack-formulas/ssf | /.pre-commit-config.yaml @saltstack-formulas/ssf | ||||
/.rstcheck.cfg @saltstack-formulas/ssf | /.rstcheck.cfg @saltstack-formulas/ssf | ||||
/.rubocop.yml @saltstack-formulas/ssf | /.rubocop.yml @saltstack-formulas/ssf |
- name: centos-7-3000-3-py3 | - name: centos-7-3000-3-py3 | ||||
driver: | driver: | ||||
image: saltimages/salt-3000.3-py3:centos-7 | image: saltimages/salt-3000.3-py3:centos-7 | ||||
- name: fedora-31-3000-3-py3 | |||||
driver: | |||||
image: saltimages/salt-3000.3-py3:fedora-31 | |||||
- name: opensuse-leap-152-3000-3-py3 | - name: opensuse-leap-152-3000-3-py3 | ||||
driver: | driver: | ||||
image: saltimages/salt-3000.3-py3:opensuse-leap-15.2 | image: saltimages/salt-3000.3-py3:opensuse-leap-15.2 | ||||
- ubuntu-1804-3000-3-py3 | - ubuntu-1804-3000-3-py3 | ||||
- centos-8-3000-3-py3 | - centos-8-3000-3-py3 | ||||
- centos-7-3000-3-py3 | - centos-7-3000-3-py3 | ||||
- fedora-31-3000-3-py3 | |||||
- opensuse-leap-152-3000-3-py3 | - opensuse-leap-152-3000-3-py3 | ||||
- amazonlinux-2-3000-3-py3 | - amazonlinux-2-3000-3-py3 | ||||
- oraclelinux-8-3000-3-py3 | - oraclelinux-8-3000-3-py3 | ||||
verifier: | verifier: | ||||
inspec_tests: | inspec_tests: | ||||
- path: test/integration/v3000-py2 | - path: test/integration/v3000-py2 | ||||
- name: v201902-py3 | |||||
includes: | |||||
- debian-10-2019-2-py3 | |||||
- debian-9-2019-2-py3 | |||||
- ubuntu-1804-2019-2-py3 | |||||
- ubuntu-1604-2019-2-py3 | |||||
- centos-8-2019-2-py3 | |||||
- centos-7-2019-2-py3 | |||||
- fedora-31-2019-2-py3 | |||||
- opensuse-leap-152-2019-2-py3 | |||||
- amazonlinux-2-2019-2-py3 | |||||
provisioner: | |||||
state_top: | |||||
base: | |||||
'*': | |||||
- salt.pkgrepo | |||||
- salt.master | |||||
- salt.minion | |||||
pillars: | |||||
top.sls: | |||||
base: | |||||
'*': | |||||
- salt | |||||
- v201902-py3 | |||||
pillars_from_files: | |||||
salt.sls: test/salt/pillar/salt.sls | |||||
v201902-py3.sls: test/salt/pillar/v201902-py3.sls | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/v201902-py3 | |||||
- name: v201902-py2 | |||||
includes: | |||||
- centos-6-2019-2-py2 | |||||
- amazonlinux-1-2019-2-py2 | |||||
provisioner: | |||||
state_top: | |||||
base: | |||||
'*': | |||||
- salt.pkgrepo | |||||
- salt.master | |||||
- salt.minion | |||||
pillars: | |||||
top.sls: | |||||
base: | |||||
'*': | |||||
- salt | |||||
- v201902-py2 | |||||
pillars_from_files: | |||||
salt.sls: test/salt/pillar/salt.sls | |||||
v201902-py2.sls: test/salt/pillar/v201902-py2.sls | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/v201902-py2 |
############################################################################### | ############################################################################### | ||||
# Install `m2r` | # Install `m2r` | ||||
sudo -H pip install m2r | |||||
pip3 install m2r | |||||
# Copy and then convert the `.md` docs | # Copy and then convert the `.md` docs | ||||
cp ./*.md docs/ | cp ./*.md docs/ |
module.exports = { | module.exports = { | ||||
branch: 'master', | branch: 'master', | ||||
repositoryUrl: 'https://github.com/saltstack-formulas/salt-formula', | |||||
plugins: [ | plugins: [ | ||||
['@semantic-release/commit-analyzer', { | ['@semantic-release/commit-analyzer', { | ||||
preset: 'angular', | preset: 'angular', |