* Automated using https://github.com/myii/ssf-formula/pull/370tags/v1.2.1
name: 'myii/ssf-pre-commit:2.9.2' | name: 'myii/ssf-pre-commit:2.9.2' | ||||
entrypoint: ['/bin/bash', '-c'] | entrypoint: ['/bin/bash', '-c'] | ||||
image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest' | image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest' | ||||
# yamllint disable-line rule:line-length | |||||
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release-pandoc:15.14' | |||||
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' | |||||
# `services` | # `services` | ||||
services_docker_dind: &services_docker_dind | services_docker_dind: &services_docker_dind | ||||
- 'docker:dind' | - 'docker:dind' | ||||
############################################################################### | ############################################################################### | ||||
# `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed) | # `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed) | ||||
############################################################################### | ############################################################################### | ||||
# commitlint: | |||||
# allow_failure: true | |||||
# stage: *stage_lint | |||||
# image: *image_commitlint | |||||
# script: | |||||
# # Add `upstream` remote to get access to `upstream/master` | |||||
# - 'git remote add upstream | |||||
# https://gitlab.com/saltstack-formulas/apache-formula.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: | |||||
# allow_failure: true | |||||
# 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' | |||||
# | |||||
# # Use a separate job for `rubocop` other than the one potentially run by `pre-commit` | |||||
# # - The `pre-commit` check will only be available for formulas that pass the default | |||||
# # `rubocop` check -- and must continue to do so | |||||
# # - This job is allowed to fail, so can be used for all formulas | |||||
# # - Furthermore, this job uses all of the latest `rubocop` features & cops, | |||||
# # which will help when upgrading the `rubocop` linter used in `pre-commit` | |||||
# rubocop: | |||||
# allow_failure: true | |||||
# stage: *stage_lint | |||||
# image: *image_rubocop | |||||
# script: | |||||
# - 'rubocop -d -P -S --enable-pending-cops' | |||||
commitlint: | |||||
stage: *stage_lint | |||||
image: *image_commitlint | |||||
script: | |||||
# Add `upstream` remote to get access to `upstream/master` | |||||
- 'git remote add upstream | |||||
https://gitlab.com/saltstack-formulas/apache-formula.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' | |||||
# Use a separate job for `rubocop` other than the one potentially run by `pre-commit` | |||||
# - The `pre-commit` check will only be available for formulas that pass the default | |||||
# `rubocop` check -- and must continue to do so | |||||
# - This job is allowed to fail, so can be used for all formulas | |||||
# - Furthermore, this job uses all of the latest `rubocop` features & cops, | |||||
# which will help when upgrading the `rubocop` linter used in `pre-commit` | |||||
rubocop: | |||||
allow_failure: true | |||||
stage: *stage_lint | |||||
image: *image_rubocop | |||||
script: | |||||
- 'rubocop -d -P -S --enable-pending-cops' | |||||
############################################################################### | ############################################################################### | ||||
# Define `test` template | # Define `test` template | ||||
- 'bundle config set path "${BUNDLE_CACHE_PATH}"' | - 'bundle config set path "${BUNDLE_CACHE_PATH}"' | ||||
- 'bundle config set without "${BUNDLE_WITHOUT}"' | - 'bundle config set without "${BUNDLE_WITHOUT}"' | ||||
- 'bundle install' | - 'bundle install' | ||||
# - 'bundle update --all' | |||||
script: | script: | ||||
# Alternative value to consider: `${CI_JOB_NAME}` | # Alternative value to consider: `${CI_JOB_NAME}` | ||||
- 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' | - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' |
services: | services: | ||||
- docker | - docker | ||||
## Use the latest gems for this `master` run | |||||
## https://docs.travis-ci.com/user/job-lifecycle/ | |||||
before_install: bundle update | |||||
## Script to run for the test stage | ## Script to run for the test stage | ||||
script: | script: | ||||
- bin/kitchen verify "${INSTANCE}" | - bin/kitchen verify "${INSTANCE}" | ||||
# if: 'branch = master AND type != pull_request' | # if: 'branch = master AND type != pull_request' | ||||
jobs: | jobs: | ||||
include: | include: | ||||
## Define the test stage that runs the linters (and testing matrix, if applicable) | |||||
# 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 | |||||
# Run `pre-commit` linters in a single job | |||||
- language: 'python' | |||||
env: 'Lint_pre-commit' | |||||
name: 'Lint: pre-commit' | |||||
before_install: 'skip' | |||||
cache: | |||||
directories: | |||||
- $HOME/.cache/pre-commit | |||||
script: | |||||
# Install and run `pre-commit` | |||||
- pip install pre-commit==2.7.1 | |||||
- pre-commit run --all-files --color always --verbose | |||||
- pre-commit run --color always --hook-stage manual --verbose commitlint-travis | |||||
## Define the rest of the matrix based on Kitchen testing | ## Define the rest of the matrix based on Kitchen testing | ||||
# Make sure the instances listed below match up with | # Make sure the instances listed below match up with | ||||
# Run `semantic-release` | # Run `semantic-release` | ||||
script: 'npx semantic-release@15.14' | script: 'npx semantic-release@15.14' | ||||
# yamllint disable rule:line-length | |||||
# Notification options: `always`, `never` or `change` | # Notification options: `always`, `never` or `change` | ||||
notifications: | notifications: | ||||
webhooks: | webhooks: | ||||
if: 'repo = saltstack-formulas/apache-formula OR repo = myii/apache-formula' | |||||
if: 'repo = saltstack-formulas/apache-formula' | |||||
urls: | urls: | ||||
- https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=master%2F2021-W37a&ignore_pull_requests=true | |||||
- https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=saltstack-formulas%2Fapache-formula&ignore_pull_requests=true | |||||
on_success: always # default: always | on_success: always # default: always | ||||
on_failure: always # default: always | on_failure: always # default: always | ||||
on_start: never # default: never | |||||
on_start: always # default: never | |||||
on_cancel: always # default: always | on_cancel: always # default: always | ||||
on_error: always # default: always | on_error: always # default: always | ||||
# yamllint enable rule:line-length |
GIT | GIT | ||||
remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec | remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec | ||||
revision: 9a3c06719f3a209f34212151883fda40787a1626 | |||||
revision: 223002687f2cfa303b13457825665de6c5514c52 | |||||
branch: ssf | branch: ssf | ||||
specs: | specs: | ||||
inspec (4.46.4) | |||||
inspec (4.46.13) | |||||
faraday_middleware (>= 0.12.2, < 1.1) | faraday_middleware (>= 0.12.2, < 1.1) | ||||
inspec-core (= 4.46.4) | |||||
inspec-core (= 4.46.13) | |||||
mongo (= 2.13.2) | mongo (= 2.13.2) | ||||
train (~> 3.0) | train (~> 3.0) | ||||
train-aws (~> 0.2) | train-aws (~> 0.2) | ||||
train-habitat (~> 0.1) | train-habitat (~> 0.1) | ||||
train-winrm (~> 0.2) | train-winrm (~> 0.2) | ||||
inspec-core (4.46.4) | |||||
inspec-core (4.46.13) | |||||
addressable (~> 2.4) | addressable (~> 2.4) | ||||
chef-telemetry (~> 1.0, >= 1.0.8) | chef-telemetry (~> 1.0, >= 1.0.8) | ||||
faraday (>= 0.9.0, < 1.5) | faraday (>= 0.9.0, < 1.5) | ||||
addressable (2.8.0) | addressable (2.8.0) | ||||
public_suffix (>= 2.0.2, < 5.0) | public_suffix (>= 2.0.2, < 5.0) | ||||
aws-eventstream (1.2.0) | aws-eventstream (1.2.0) | ||||
aws-partitions (1.501.0) | |||||
aws-partitions (1.507.0) | |||||
aws-sdk-alexaforbusiness (1.50.0) | aws-sdk-alexaforbusiness (1.50.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-configservice (1.66.0) | aws-sdk-configservice (1.66.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-core (3.121.0) | |||||
aws-sdk-core (3.121.1) | |||||
aws-eventstream (~> 1, >= 1.0.2) | aws-eventstream (~> 1, >= 1.0.2) | ||||
aws-partitions (~> 1, >= 1.239.0) | aws-partitions (~> 1, >= 1.239.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-dynamodb (1.63.0) | aws-sdk-dynamodb (1.63.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-ec2 (1.262.0) | |||||
aws-sdk-ec2 (1.265.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-ecr (1.46.0) | |||||
aws-sdk-ecr (1.47.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-ecrpublic (1.6.0) | aws-sdk-ecrpublic (1.6.0) | ||||
aws-sdk-elasticloadbalancing (1.34.0) | aws-sdk-elasticloadbalancing (1.34.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-elasticloadbalancingv2 (1.67.0) | |||||
aws-sdk-elasticloadbalancingv2 (1.68.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-elasticsearchservice (1.55.0) | |||||
aws-sdk-elasticsearchservice (1.56.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-eventbridge (1.24.0) | aws-sdk-eventbridge (1.24.0) | ||||
aws-sdk-guardduty (1.48.0) | aws-sdk-guardduty (1.48.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-iam (1.60.0) | |||||
aws-sdk-iam (1.61.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-kafka (1.40.0) | |||||
aws-sdk-kafka (1.41.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-kinesis (1.35.0) | aws-sdk-kinesis (1.35.0) | ||||
aws-sdk-route53resolver (1.30.0) | aws-sdk-route53resolver (1.30.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-s3 (1.102.0) | |||||
aws-sdk-s3 (1.103.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sdk-kms (~> 1) | aws-sdk-kms (~> 1) | ||||
aws-sigv4 (~> 1.4) | aws-sigv4 (~> 1.4) | ||||
aws-sdk-sqs (1.44.0) | aws-sdk-sqs (1.44.0) | ||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-ssm (1.117.0) | |||||
aws-sdk-ssm (1.118.0) | |||||
aws-sdk-core (~> 3, >= 3.120.0) | aws-sdk-core (~> 3, >= 3.120.0) | ||||
aws-sigv4 (~> 1.1) | aws-sigv4 (~> 1.1) | ||||
aws-sdk-states (1.39.0) | aws-sdk-states (1.39.0) | ||||
bcrypt_pbkdf (1.1.0) | bcrypt_pbkdf (1.1.0) | ||||
bson (4.12.1) | bson (4.12.1) | ||||
builder (3.2.4) | builder (3.2.4) | ||||
chef-config (17.4.38) | |||||
chef-config (17.5.22) | |||||
addressable | addressable | ||||
chef-utils (= 17.4.38) | |||||
chef-utils (= 17.5.22) | |||||
fuzzyurl | fuzzyurl | ||||
mixlib-config (>= 2.2.12, < 4.0) | mixlib-config (>= 2.2.12, < 4.0) | ||||
mixlib-shellout (>= 2.0, < 4.0) | mixlib-shellout (>= 2.0, < 4.0) | ||||
chef-telemetry (1.1.1) | chef-telemetry (1.1.1) | ||||
chef-config | chef-config | ||||
concurrent-ruby (~> 1.0) | concurrent-ruby (~> 1.0) | ||||
chef-utils (17.4.38) | |||||
chef-utils (17.5.22) | |||||
concurrent-ruby | concurrent-ruby | ||||
coderay (1.1.3) | coderay (1.1.3) | ||||
concurrent-ruby (1.1.9) | concurrent-ruby (1.1.9) | ||||
uber (0.1.0) | uber (0.1.0) | ||||
unf (0.1.4) | unf (0.1.4) | ||||
unf_ext | unf_ext | ||||
unf_ext (0.0.7.7) | |||||
unicode-display_width (2.0.0) | |||||
unf_ext (0.0.8) | |||||
unicode-display_width (2.1.0) | |||||
unicode_utils (1.4.0) | unicode_utils (1.4.0) | ||||
winrm (2.3.6) | winrm (2.3.6) | ||||
builder (>= 2.1.2) | builder (>= 2.1.2) |
privileged: true | privileged: true | ||||
run_command: /usr/lib/systemd/systemd | run_command: /usr/lib/systemd/systemd | ||||
# Using the commit title as a comment to guarantee change for new commit/push: | |||||
# ci: test for upstream Salt regressions in '`'master'`' instances (2021-W37a) | |||||
provisioner: | provisioner: | ||||
name: salt_solo | name: salt_solo | ||||
log_level: debug | log_level: debug | ||||
verifier: | verifier: | ||||
inspec_tests: | inspec_tests: | ||||
- path: test/integration/modules | - path: test/integration/modules | ||||
- name: all | |||||
provisioner: | |||||
state_top: | |||||
base: | |||||
'*': | |||||
- apache._mapdata | |||||
- apache | |||||
# - apache.certificates | |||||
# - apache.certificates.install | |||||
- apache.config | |||||
- apache.config.certificates | |||||
- apache.config.certificates.install | |||||
- apache.config.debian_full | |||||
- apache.config.file | |||||
- apache.config.flags | |||||
- apache.config.logrotate | |||||
- apache.config.manage_security | |||||
- apache.config.modules | |||||
- apache.config.modules.install | |||||
- apache.config.modules.mod_actions | |||||
- apache.config.modules.mod_cgi | |||||
- apache.config.modules.mod_dav_svn | |||||
# - apache.config.modules.mod_fastcgi | |||||
- apache.config.modules.mod_fcgid | |||||
- apache.config.modules.mod_geoip | |||||
- apache.config.modules.mod_headers | |||||
# - apache.config.modules.mod_logio | |||||
- apache.config.modules.mod_mpm | |||||
# - apache.config.modules.mod_pagespeed # works but then breaks 2nd time | |||||
- apache.config.modules.mod_perl2 | |||||
# - apache.config.modules.mod_php5 | |||||
- apache.config.modules.mod_proxy | |||||
- apache.config.modules.mod_proxy_ajp | |||||
- apache.config.modules.mod_proxy_fcgi | |||||
- apache.config.modules.mod_proxy_http | |||||
- apache.config.modules.mod_remoteip | |||||
- apache.config.modules.mod_rewrite | |||||
- apache.config.modules.mod_security | |||||
- apache.config.modules.mod_security.rules | |||||
- apache.config.modules.mod_socache_shmcb | |||||
- apache.config.modules.mod_ssl | |||||
- apache.config.modules.mod_status | |||||
- apache.config.modules.mod_suexec | |||||
- apache.config.modules.mod_upload_progress | |||||
- apache.config.modules.mod_vhost_alias | |||||
- apache.config.modules.mod_wsgi | |||||
- apache.config.modules.mod_xsendfile | |||||
# - apache.config.modules.server_status | |||||
- apache.config.no_default_vhost | |||||
- apache.config.own_default_vhost | |||||
- apache.config.register_site | |||||
- apache.config.vhosts | |||||
- apache.config.vhosts.standard | |||||
- apache.modules | |||||
- apache.package | |||||
- apache.package.install | |||||
- apache.service | |||||
- apache.service.running | |||||
# - apache.vhosts | |||||
# - apache.vhosts.standard | |||||
# ### Need these handled separately | |||||
# # - apache.vhosts.clean | |||||
# # - apache.vhosts.cleanup | |||||
# # - apache.certificates.clean | |||||
# - apache.service.clean | |||||
# # - apache.config.vhosts.clean # this is a symlink! | |||||
# - apache.config.vhosts.cleanup | |||||
# - apache.config.modules.clean | |||||
# - apache.config.certificates.clean | |||||
# - apache.config.clean | |||||
# - apache.package.clean | |||||
# - apache.clean | |||||
pillars: | |||||
top.sls: | |||||
base: | |||||
'*': | |||||
- apache | |||||
pillars_from_files: | |||||
apache.sls: pillar.example | |||||
verifier: {} |
# Return back to the main directory | # Return back to the main directory | ||||
cd .. | cd .. | ||||
############################################################################### | |||||
# (C) Make all adjustments related to the Antora-based documentation | |||||
# This needs to run after the conversion to `.rst` since it uses | |||||
# those files to convert to `.adoc` | |||||
############################################################################### | |||||
# Update `docs/antora.yml` with `${nextRelease.version}` | |||||
sed -i -e "/^\(version: '\).*\('\)$/s//\1${1}\2/" docs/antora.yml | |||||
# Convert the files from `.rst` to `.adoc` using `pandoc` | |||||
FROM=rst && FN=CHANGELOG && pandoc -t asciidoc -f ${FROM} -o docs/modules/ROOT/pages/${FN}.adoc docs/${FN}.${FROM} | |||||
FROM=rst && FN=AUTHORS && pandoc -t asciidoc -f ${FROM} -o docs/modules/ROOT/pages/${FN}.adoc docs/${FN}.${FROM} | |||||
FROM=rst && FN=README && pandoc -t asciidoc -f ${FROM} -o docs/modules/ROOT/pages/${FN}.adoc docs/${FN}.${FROM} | |||||
# Adjust `CHANGELOG.adoc` | |||||
ADOC="docs/modules/ROOT/pages/CHANGELOG.adoc" | |||||
# Fix links to avoid issue with `...` in URL | |||||
# Also ensure each of these links opens in a new tab | |||||
sed -i -e '/^\(=== \)\(https.*\)\(\[.*\)\(]\)/s//\1link:++\2++\3^\4/' "${ADOC}" | |||||
# Open other standard links in new tabs | |||||
sed -i -e '/^\((https.*\)\(]\)/s//\1^\2/' "${ADOC}" | |||||
sed -i -e '/^\(https.*\)\(]\)/s//\1^\2/' "${ADOC}" | |||||
# And other non-standard links | |||||
# shellcheck disable=SC2016 | |||||
sed -i -e '\_^\((https.*/commit/\)\(.......\)\()\)$_s__\1\2[\2^]\3_' "${ADOC}" | |||||
# Fix headings throughout file | |||||
sed -i -e '/^=/s///' "${ADOC}" | |||||
# Fix `[skip ci]` on line by itself | |||||
sed -i -e '/^\[skip ci]$/s// &/' "${ADOC}" | |||||
# Fix what looks like Asciidoctor variables, i.e. in curly braces `{...}` | |||||
sed -i -e '/{\w\+}/s//\\&/' "${ADOC}" | |||||
# Add `:sectnums!:` directly after the title (the blank line in-between is necessary) | |||||
sed -i -e '2 i \\n:sectnums!:' "${ADOC}" | |||||
# Adjust `AUTHORS.adoc` | |||||
ADOC="docs/modules/ROOT/pages/AUTHORS.adoc" | |||||
# Fix the heading | |||||
sed -i -e '/^=/s///' "${ADOC}" | |||||
# Run three times to get all four lines joined | |||||
# (most entries only need two joins but that's dealt with below) | |||||
sed -i -e '/^|:raw-html-m2r/N;s/\n/ /' "${ADOC}" | |||||
sed -i -e '/^|:raw-html-m2r/N;s/\n/ /' "${ADOC}" | |||||
sed -i -e '/^|:raw-html-m2r/N;s/\n/ /' "${ADOC}" | |||||
# Add blank line in-between | |||||
sed -i -e '/^|:raw-html-m2r/{G;}' "${ADOC}" | |||||
# Clear up any double-blank lines introduced | |||||
sed -i -e '/^$/N;/\n$/D' "${ADOC}" | |||||
# Split the lines again on the table delimeter | |||||
sed -i -e '/^|:raw-html-m2r/s/ |/\n|/g' "${ADOC}" | |||||
# Fix the `raw-html-m2r` to link to the GitHub avatar images correctly | |||||
sed -i -e "/^\(|\):raw-html-m2r.*src='\(.*\)' width='\(.*\)' height='\(.*\)' alt='\(.*\)'.*/s//\1image::\2[\5,\3,\4]/" "${ADOC}" | |||||
# Reduce the table boundary markers | |||||
sed -i -e '/^|===.*/s//|===/' "${ADOC}" | |||||
# Reduce the table boundary markers | |||||
sed -i -e '/^|Avatar |Contributor |Contributions/s//^.^|Avatar\n<.^|Contributor\n^.^|Contributions\n/' "${ADOC}" | |||||
# Fix the table heading | |||||
sed -i -e '/^\[cols=".*/s//.List of contributors\n[format="psv", separator="|", options="header", cols="^.<30a,<.<40a,^.<40d", width="100"]/' "${ADOC}" | |||||
# Open links in new tab | |||||
sed -i -e '/^\(|https.*\)\(]\)/s//\1^\2/' "${ADOC}" | |||||
# Likewise for footer links | |||||
sed -i -e '/\(\[forked version\)\(]\)/s//\1^\2/' "${ADOC}" | |||||
sed -i -e '/\(\[.*maintainer\)\(]\)/s//\1^\2/' "${ADOC}" | |||||
# Adjust `README.adoc` | |||||
ADOC="docs/modules/ROOT/pages/README.adoc" | |||||
# Fix headings throughout file | |||||
sed -i -e '/^=/s///' "${ADOC}" | |||||
# Delete the `[[readme]]` line | |||||
sed -i -e '/^\[\[readme]]$/d' "${ADOC}" | |||||
# Remove the `Table of Contents` line and the blank line after it | |||||
sed -i -e '/^\*Table of Contents\*$/,+1d' "${ADOC}" | |||||
# Fix the link to `CONTRIBUTING.adoc` (to the Antora-based version) | |||||
# shellcheck disable=SC2016 | |||||
sed -i -e '/^Please see `How to contribute <CONTRIBUTING>` for more details.$/s//Please see\nxref:main::CONTRIBUTING.adoc[How to contribute]\nfor more details./' "${ADOC}" | |||||
# Fix the link to `CONTRIBUTING.adoc` (to the Antora-based version) -- based on `.github` repo | |||||
sed -i -e '\_https://github.com/saltstack-formulas/.github/blob/master/CONTRIBUTING.rst_s__xref:main::CONTRIBUTING.adoc_' "${ADOC}" | |||||
# Fix the link to `map.jinja.adoc` (to the Antora-based version) | |||||
sed -i -e '/^\* link:map.jinja.rst/s//* xref:main::map.jinja.adoc/' "${ADOC}" | |||||
# Fix link: `#_special_notes` | |||||
sed -i -e '/#special-notes/s//#_special_notes/' "${ADOC}" | |||||
# Fix `sourceCode` | |||||
sed -i -e '/^\(\[source,\)sourceCode,/s//\1/' "${ADOC}" | |||||
# Fix source `jinja2` | |||||
sed -i -e '/^\(\[source,jinja\)2/s//\1/' "${ADOC}" | |||||
# Fix source `sls` | |||||
sed -i -e '/^\(\[source,\)sls/s//\1yaml/' "${ADOC}" |
prepareCmd: 'sh ./pre-commit_semantic-release.sh ${nextRelease.version}', | prepareCmd: 'sh ./pre-commit_semantic-release.sh ${nextRelease.version}', | ||||
}], | }], | ||||
['@semantic-release/git', { | ['@semantic-release/git', { | ||||
assets: ['*.md', 'docs/*.rst', 'FORMULA', 'docs/antora.yml', 'docs/modules/ROOT/pages/*.adoc'], | |||||
assets: ['*.md', 'docs/*.rst', 'FORMULA'], | |||||
}], | }], | ||||
'@semantic-release/github', | '@semantic-release/github', | ||||
], | ], |