diff --git a/.copier-answers.ssf-ci.yml b/.copier-answers.ssf-ci.yml index c3055c4..6b0d6e0 100644 --- a/.copier-answers.ssf-ci.yml +++ b/.copier-answers.ssf-ci.yml @@ -1,9 +1,10 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: v2.0.1 +_commit: v2.4.0 _src_path: https://github.com/dafyddj/copier-ssf-ci failure_permitted_ignored: [] failure_permitted_patterns: [] formula_name: openssh +release_using_gha: false renovate_extend_presets: - github>saltstack-formulas/.github - github>saltstack-formulas/.github:copier diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index af41298..180e437 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,4 @@ --- -# yamllint disable rule:comments name: Test & release 'on': @@ -20,30 +19,42 @@ jobs: should-run: ${{ steps.action.outputs.should-run }} steps: - id: action - uses: - # yamllint disable-line rule:line-length - techneg-it/should-workflow-run@dcbb88600d59ec2842778ef1e2d41f680f876329 # v1.0.0 + # yamllint disable-line rule:line-length + uses: techneg-it/should-workflow-run@eff19348eb884f57e05bc6f05ae48ece3af14714 # v1.0.1 pre-commit: name: Lint / `pre-commit` needs: should-run if: fromJSON(needs.should-run.outputs.should-run) - container: techneg/ci-pre-commit:v2.3.3 + container: techneg/ci-pre-commit:v2.4.28@sha256:3a5b362f2fdf60e3a6c614a919c67cc8ae5d34208e287d293fc30c150a919ac6 runs-on: ubuntu-latest timeout-minutes: 5 steps: + - run: | # Needed because of bug #2031 in `actions/checkout` + git config --global --add safe.directory "$GITHUB_WORKSPACE" - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + fetch-depth: 0 + fetch-tags: true + filter: tree:0 - name: Export `CI_CACHE_ID` from container run: echo "CI_CACHE_ID=$(cat /.ci_cache_id)" >> $GITHUB_ENV - - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 + - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: path: ~/.cache/pre-commit key: "${{ env.CI_CACHE_ID }}|\ ${{ hashFiles('.pre-commit-config.yaml') }}" + restore-keys: | + ${{ env.CI_CACHE_ID }}| + - name: Build cache + shell: bash + run: | + pre-commit gc + echo "Installing hook environments" + time pre-commit install-hooks - name: Run `pre-commit` run: | - git config --global --add safe.directory $(pwd) pre-commit run --all-files --color always --verbose - pre-commit run --color always --hook-stage manual commitlint-ci + pre-commit run --color always --hook-stage manual --verbose commitlint-ci results: name: Release / Collect results permissions: @@ -54,7 +65,8 @@ jobs: # yamllint disable-line rule:line-length - uses: poseidon/wait-for-status-checks@899c768d191b56eef585c18f8558da19e1f3e707 # v0.6.0 with: - ignore: Release / Collect results + ignore: > + Release / Collect results ignore_pattern: ^GitLab CI token: ${{ secrets.GITHUB_TOKEN }} - run: echo "::notice ::Workflow success!" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 08f255c..4fe0d05 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,15 +15,15 @@ stage_test: &stage_test 'test' # `image` # yamllint disable rule:line-length - image_commitlint: &image_commitlint 'techneg/ci-commitlint:v1.1.91@sha256:02574d0409adafb76d5a40a7d08202073e5377f4a7c4bfe9e198d1203ff94a8c' - image_dindruby: &image_dindruby 'techneg/ci-docker-python-ruby:v2.2.60@sha256:de98b8d1d3cf86639fe69bfc4f0416115d18300759c5ed2948ac56f973dd944f' - image_dindrubybionic: &image_dindrubybionic 'techneg/ci-docker-python-ruby:v2.2.60@sha256:de98b8d1d3cf86639fe69bfc4f0416115d18300759c5ed2948ac56f973dd944f' - image_precommit: &image_precommit 'techneg/ci-pre-commit:v2.4.25@sha256:ff5192e893c1079fbf70e3ce6bfc3773815041786a75659793158be930ba7803' + image_commitlint: &image_commitlint 'techneg/ci-commitlint:v1.1.94@sha256:3913ba70632c591b1accf8f65324008cfcbfb231e03a34908dd92022b3cd9fe4' + image_dindruby: &image_dindruby 'techneg/ci-docker-python-ruby:v2.2.63@sha256:d2dd81049d7c0c8e369c744d57824685ae089403c53b1c767d9cfe1c691d9327' + image_dindrubybionic: &image_dindrubybionic 'techneg/ci-docker-python-ruby:v2.2.63@sha256:d2dd81049d7c0c8e369c744d57824685ae089403c53b1c767d9cfe1c691d9327' + image_precommit: &image_precommit 'techneg/ci-pre-commit:v2.4.28@sha256:3a5b362f2fdf60e3a6c614a919c67cc8ae5d34208e287d293fc30c150a919ac6' image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest@sha256:fe69f9642c7edde46bbd78326d2c42c6e13fc73694efb142e92e206725479328' image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14@sha256:374f588420087517a3cc0235e11293bffd72d7a59da3d98d5e69f014ff2a7761' # `services` services_docker_dind: &services_docker_dind - - 'docker:28.2.2-dind@sha256:d4668861cabc1691635d98e827a81cfa834a416f8fe0f4efc609f9f806d86d82' + - 'docker:28.3.0-dind@sha256:d33eb93fe02683e984e6f8a93c0b3d85bb74f56ec83922bc39fb34ba23ab42bc' # yamllint enable rule:line-length # `variables` # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 @@ -184,42 +184,42 @@ rockylinux-8-master: {extends: '.test_instance_failure_permitted'} ubuntu-2404-master: {extends: '.test_instance_failure_permitted'} ubuntu-2204-master: {extends: '.test_instance_failure_permitted'} ubuntu-2004-master: {extends: '.test_instance_failure_permitted'} -almalinux-9-3007-3: {extends: '.test_instance'} -almalinux-8-3007-3: {extends: '.test_instance'} -amazonlinux-2023-3007-3: {extends: '.test_instance'} -amazonlinux-2-3007-3: {extends: '.test_instance_failure_permitted'} -centos-stream9-3007-3: {extends: '.test_instance'} -debian-12-3007-3: {extends: '.test_instance'} -debian-11-3007-3: {extends: '.test_instance'} -fedora-41-3007-3: {extends: '.test_instance_failure_permitted'} -fedora-40-3007-3: {extends: '.test_instance'} -opensuse-leap-156-3007-3: {extends: '.test_instance'} -opensuse-tmbl-latest-3007-3: {extends: '.test_instance'} -oraclelinux-9-3007-3: {extends: '.test_instance'} -oraclelinux-8-3007-3: {extends: '.test_instance'} -rockylinux-9-3007-3: {extends: '.test_instance'} -rockylinux-8-3007-3: {extends: '.test_instance'} -ubuntu-2404-3007-3: {extends: '.test_instance'} -ubuntu-2204-3007-3: {extends: '.test_instance'} -ubuntu-2004-3007-3: {extends: '.test_instance'} -almalinux-9-3006-11: {extends: '.test_instance'} -almalinux-8-3006-11: {extends: '.test_instance'} -amazonlinux-2023-3006-11: {extends: '.test_instance'} -amazonlinux-2-3006-11: {extends: '.test_instance_failure_permitted'} -centos-stream9-3006-11: {extends: '.test_instance'} -debian-12-3006-11: {extends: '.test_instance'} -debian-11-3006-11: {extends: '.test_instance'} -fedora-41-3006-11: {extends: '.test_instance_failure_permitted'} -fedora-40-3006-11: {extends: '.test_instance'} -opensuse-leap-156-3006-11: {extends: '.test_instance'} -opensuse-tmbl-latest-3006-11: {extends: '.test_instance'} -oraclelinux-9-3006-11: {extends: '.test_instance'} -oraclelinux-8-3006-11: {extends: '.test_instance'} -rockylinux-9-3006-11: {extends: '.test_instance'} -rockylinux-8-3006-11: {extends: '.test_instance'} -ubuntu-2404-3006-11: {extends: '.test_instance'} -ubuntu-2204-3006-11: {extends: '.test_instance'} -ubuntu-2004-3006-11: {extends: '.test_instance'} +almalinux-9-3007-5: {extends: '.test_instance'} +almalinux-8-3007-5: {extends: '.test_instance'} +amazonlinux-2023-3007-5: {extends: '.test_instance'} +amazonlinux-2-3007-5: {extends: '.test_instance_failure_permitted'} +centos-stream9-3007-5: {extends: '.test_instance'} +debian-12-3007-5: {extends: '.test_instance'} +debian-11-3007-5: {extends: '.test_instance'} +fedora-41-3007-5: {extends: '.test_instance_failure_permitted'} +fedora-40-3007-5: {extends: '.test_instance'} +opensuse-leap-156-3007-5: {extends: '.test_instance'} +opensuse-tmbl-latest-3007-5: {extends: '.test_instance'} +oraclelinux-9-3007-5: {extends: '.test_instance'} +oraclelinux-8-3007-5: {extends: '.test_instance'} +rockylinux-9-3007-5: {extends: '.test_instance'} +rockylinux-8-3007-5: {extends: '.test_instance'} +ubuntu-2404-3007-5: {extends: '.test_instance'} +ubuntu-2204-3007-5: {extends: '.test_instance'} +ubuntu-2004-3007-5: {extends: '.test_instance'} +almalinux-9-3006-13: {extends: '.test_instance'} +almalinux-8-3006-13: {extends: '.test_instance'} +amazonlinux-2023-3006-13: {extends: '.test_instance'} +amazonlinux-2-3006-13: {extends: '.test_instance_failure_permitted'} +centos-stream9-3006-13: {extends: '.test_instance'} +debian-12-3006-13: {extends: '.test_instance'} +debian-11-3006-13: {extends: '.test_instance'} +fedora-41-3006-13: {extends: '.test_instance_failure_permitted'} +fedora-40-3006-13: {extends: '.test_instance'} +opensuse-leap-156-3006-13: {extends: '.test_instance'} +opensuse-tmbl-latest-3006-13: {extends: '.test_instance'} +oraclelinux-9-3006-13: {extends: '.test_instance'} +oraclelinux-8-3006-13: {extends: '.test_instance'} +rockylinux-9-3006-13: {extends: '.test_instance'} +rockylinux-8-3006-13: {extends: '.test_instance'} +ubuntu-2404-3006-13: {extends: '.test_instance'} +ubuntu-2204-3006-13: {extends: '.test_instance'} +ubuntu-2004-3006-13: {extends: '.test_instance'} # yamllint enable rule:line-length ############################################################################### diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dfee234..4e9a729 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,7 +30,7 @@ repos: - id: commitlint - id: commitlint-ci - repo: https://github.com/rubocop-hq/rubocop - rev: v1.76.1 + rev: v1.77.0 hooks: - id: rubocop name: Check Ruby files with rubocop @@ -100,12 +100,12 @@ repos: )$ additional_dependencies: [pygments==2.16.1] - repo: https://github.com/renovatebot/pre-commit-hooks - rev: 40.48.11 + rev: 40.62.1 hooks: - id: renovate-config-validator name: Check Renovate config with renovate-config-validator - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.33.0 + rev: 0.33.1 hooks: - id: check-github-workflows name: Check GitHub workflows with check-jsonschema @@ -113,3 +113,8 @@ repos: - id: check-gitlab-ci name: Check GitLab CI config with check-jsonschema args: [--verbose] + - repo: https://github.com/standard/standard + rev: v17.1.2 + hooks: + - id: standard + name: Check JavaScript files using standardJS diff --git a/.yamllint b/.yamllint index b408788..20e95e6 100644 --- a/.yamllint +++ b/.yamllint @@ -5,6 +5,8 @@ extends: 'default' rules: + comments: + min-spaces-from-content: 1 empty-values: forbid-in-block-mappings: true forbid-in-flow-mappings: true @@ -12,6 +14,7 @@ rules: # Increase from default of `80` # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) max: 88 + allow-non-breakable-inline-mappings: true octal-values: forbid-implicit-octal: true forbid-explicit-octal: true diff --git a/Gemfile b/Gemfile index 7889b52..4d608b1 100644 --- a/Gemfile +++ b/Gemfile @@ -15,10 +15,10 @@ gem 'inspec', git: 'https://gitlab.com/saltstack-formulas/infrastructure/inspec' gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker', branch: 'ssf' # rubocop:enable Layout/LineLength -gem 'kitchen-inspec', '2.6.2' +gem 'kitchen-inspec', '3.0.0' gem 'kitchen-salt', '0.7.2' # Avoid the error 'pkeys are immutable on OpenSSL 3.0' gem 'net-ssh', '>= 7.0.0' -gem 'test-kitchen', '3.6.0' +gem 'test-kitchen', '3.7.0' diff --git a/Gemfile.lock b/Gemfile.lock index 45db21d..748a026 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -324,6 +324,7 @@ GEM ms_rest_azure (~> 0.12.0) base64 (0.2.0) bcrypt_pbkdf (1.1.1) + bcrypt_pbkdf (1.1.1-x64-mingw-ucrt) benchmark (0.4.0) bigdecimal (3.1.9) bson (4.15.0) @@ -410,6 +411,9 @@ GEM faraday_middleware (1.0.0) faraday (~> 1.0) ffi (1.16.3) + ffi (1.16.3-x64-mingw-ucrt) + ffi-win32-extensions (1.0.4) + ffi fuzzyurl (0.9.0) google-apis-admin_directory_v1 (0.46.0) google-apis-core (>= 0.11.0, < 2.a) @@ -459,9 +463,9 @@ GEM json (2.12.0) jwt (2.10.1) base64 - kitchen-inspec (2.6.2) + kitchen-inspec (3.0.0) hashie (>= 3.4, <= 5.0) - inspec (>= 2.2.64, < 6.0) + inspec (>= 2.2.64, < 7.0) test-kitchen (>= 2.7, < 4) kitchen-salt (0.7.2) hashie (>= 3.5) @@ -492,6 +496,11 @@ GEM ffi (>= 1.15.5) mixlib-shellout (3.3.9) chef-utils + mixlib-shellout (3.3.9-x64-mingw-ucrt) + chef-utils + ffi-win32-extensions (~> 1.0.3) + win32-process (~> 0.9) + wmi-lite (~> 1.0) mixlib-versioning (1.2.12) mongo (2.13.2) bson (>= 4.8.2, < 5.0.0) @@ -515,6 +524,8 @@ GEM nokogiri (1.18.8) mini_portile2 (~> 2.8.2) racc (~> 1.4) + nokogiri (1.18.8-x64-mingw-ucrt) + racc (~> 1.4) nori (2.7.0) bigdecimal options (2.3.2) @@ -606,7 +617,7 @@ GEM unicode-display_width (>= 1.5, < 3.0) unicode_utils (~> 1.4) strings-ansi (0.2.0) - test-kitchen (3.6.0) + test-kitchen (3.7.0) bcrypt_pbkdf (~> 1.0) chef-utils (>= 16.4.35) ed25519 (~> 1.2) @@ -759,6 +770,8 @@ GEM uber (0.1.0) unicode-display_width (2.6.0) unicode_utils (1.4.0) + win32-process (0.10.0) + ffi (>= 1.0.0) winrm (2.3.8) builder (>= 2.1.2) erubi (~> 1.8) @@ -779,17 +792,19 @@ GEM rubyzip (~> 2.0) winrm (~> 2.0) wisper (2.0.1) + wmi-lite (1.0.7) PLATFORMS ruby + x64-mingw-ucrt DEPENDENCIES inspec! kitchen-docker! - kitchen-inspec (= 2.6.2) + kitchen-inspec (= 3.0.0) kitchen-salt (= 0.7.2) net-ssh (>= 7.0.0) - test-kitchen (= 3.6.0) + test-kitchen (= 3.7.0) BUNDLED WITH 2.3.7 diff --git a/commitlint.config.js b/commitlint.config.js index 1016083..fc3c51f 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,14 +1,14 @@ module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - 'body-max-line-length': [2, 'always', 120], - 'footer-max-line-length': [2, 'always', 120], - 'header-max-length': [2, 'always', 72], - }, - ignores: [ - (commit) => commit.startsWith("chore(copier):"), - (commit) => commit.startsWith("chore(deps):"), - (commit) => commit.startsWith("ci(pre-commit.ci):"), - (commit) => commit.startsWith("[CI merge]") - ], -}; + extends: ['@commitlint/config-conventional'], + rules: { + 'body-max-line-length': [2, 'always', 120], + 'footer-max-line-length': [2, 'always', 120], + 'header-max-length': [2, 'always', 72] + }, + ignores: [ + (commit) => commit.startsWith('chore(copier):'), + (commit) => commit.startsWith('chore(deps):'), + (commit) => commit.startsWith('ci(pre-commit.ci):'), + (commit) => commit.startsWith('[CI merge]') + ] +} diff --git a/kitchen.yml b/kitchen.yml index 5e32cff..64e0ff5 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -91,143 +91,143 @@ platforms: driver: image: saltimages/salt-master-py3:rockylinux-8 - ## SALT `3007.3` - - name: debian-12-3007-3 + ## SALT `3007.5` + - name: debian-12-3007-5 driver: - image: saltimages/salt-3007.3-py3:debian-12 + image: saltimages/salt-3007.5-py3:debian-12 run_command: /lib/systemd/systemd - - name: debian-11-3007-3 + - name: debian-11-3007-5 driver: - image: saltimages/salt-3007.3-py3:debian-11 + image: saltimages/salt-3007.5-py3:debian-11 run_command: /lib/systemd/systemd - - name: ubuntu-2404-3007-3 + - name: ubuntu-2404-3007-5 driver: - image: saltimages/salt-3007.3-py3:ubuntu-24.04 + image: saltimages/salt-3007.5-py3:ubuntu-24.04 run_command: /lib/systemd/systemd - - name: ubuntu-2204-3007-3 + - name: ubuntu-2204-3007-5 driver: - image: saltimages/salt-3007.3-py3:ubuntu-22.04 + image: saltimages/salt-3007.5-py3:ubuntu-22.04 run_command: /lib/systemd/systemd - - name: ubuntu-2004-3007-3 + - name: ubuntu-2004-3007-5 driver: - image: saltimages/salt-3007.3-py3:ubuntu-20.04 + image: saltimages/salt-3007.5-py3:ubuntu-20.04 run_command: /lib/systemd/systemd - - name: centos-stream9-3007-3 + - name: centos-stream9-3007-5 driver: - image: saltimages/salt-3007.3-py3:centos-stream9 - - name: opensuse-leap-156-3007-3 + image: saltimages/salt-3007.5-py3:centos-stream9 + - name: opensuse-leap-156-3007-5 driver: - image: saltimages/salt-3007.3-py3:opensuse-leap-15.6 + image: saltimages/salt-3007.5-py3:opensuse-leap-15.6 # Workaround to avoid intermittent failures on `opensuse-leap-15.6`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: opensuse-tmbl-latest-3007-3 + - name: opensuse-tmbl-latest-3007-5 driver: - image: saltimages/salt-3007.3-py3:opensuse-tumbleweed-latest + image: saltimages/salt-3007.5-py3:opensuse-tumbleweed-latest # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: fedora-41-3007-3 + - name: fedora-41-3007-5 driver: - image: saltimages/salt-3007.3-py3:fedora-41 - - name: fedora-40-3007-3 + image: saltimages/salt-3007.5-py3:fedora-41 + - name: fedora-40-3007-5 driver: - image: saltimages/salt-3007.3-py3:fedora-40 - - name: amazonlinux-2023-3007-3 + image: saltimages/salt-3007.5-py3:fedora-40 + - name: amazonlinux-2023-3007-5 driver: - image: saltimages/salt-3007.3-py3:amazonlinux-2023 - - name: amazonlinux-2-3007-3 + image: saltimages/salt-3007.5-py3:amazonlinux-2023 + - name: amazonlinux-2-3007-5 driver: - image: saltimages/salt-3007.3-py3:amazonlinux-2 - - name: oraclelinux-9-3007-3 + image: saltimages/salt-3007.5-py3:amazonlinux-2 + - name: oraclelinux-9-3007-5 driver: - image: saltimages/salt-3007.3-py3:oraclelinux-9 - - name: oraclelinux-8-3007-3 + image: saltimages/salt-3007.5-py3:oraclelinux-9 + - name: oraclelinux-8-3007-5 driver: - image: saltimages/salt-3007.3-py3:oraclelinux-8 - - name: almalinux-9-3007-3 + image: saltimages/salt-3007.5-py3:oraclelinux-8 + - name: almalinux-9-3007-5 driver: - image: saltimages/salt-3007.3-py3:almalinux-9 - - name: almalinux-8-3007-3 + image: saltimages/salt-3007.5-py3:almalinux-9 + - name: almalinux-8-3007-5 driver: - image: saltimages/salt-3007.3-py3:almalinux-8 - - name: rockylinux-9-3007-3 + image: saltimages/salt-3007.5-py3:almalinux-8 + - name: rockylinux-9-3007-5 driver: - image: saltimages/salt-3007.3-py3:rockylinux-9 - - name: rockylinux-8-3007-3 + image: saltimages/salt-3007.5-py3:rockylinux-9 + - name: rockylinux-8-3007-5 driver: - image: saltimages/salt-3007.3-py3:rockylinux-8 + image: saltimages/salt-3007.5-py3:rockylinux-8 - ## SALT `3006.11` - - name: debian-12-3006-11 + ## SALT `3006.13` + - name: debian-12-3006-13 driver: - image: saltimages/salt-3006.11-py3:debian-12 + image: saltimages/salt-3006.13-py3:debian-12 run_command: /lib/systemd/systemd - - name: debian-11-3006-11 + - name: debian-11-3006-13 driver: - image: saltimages/salt-3006.11-py3:debian-11 + image: saltimages/salt-3006.13-py3:debian-11 run_command: /lib/systemd/systemd - - name: ubuntu-2404-3006-11 + - name: ubuntu-2404-3006-13 driver: - image: saltimages/salt-3006.11-py3:ubuntu-24.04 + image: saltimages/salt-3006.13-py3:ubuntu-24.04 run_command: /lib/systemd/systemd - - name: ubuntu-2204-3006-11 + - name: ubuntu-2204-3006-13 driver: - image: saltimages/salt-3006.11-py3:ubuntu-22.04 + image: saltimages/salt-3006.13-py3:ubuntu-22.04 run_command: /lib/systemd/systemd - - name: ubuntu-2004-3006-11 + - name: ubuntu-2004-3006-13 driver: - image: saltimages/salt-3006.11-py3:ubuntu-20.04 + image: saltimages/salt-3006.13-py3:ubuntu-20.04 run_command: /lib/systemd/systemd - - name: centos-stream9-3006-11 + - name: centos-stream9-3006-13 driver: - image: saltimages/salt-3006.11-py3:centos-stream9 - - name: opensuse-tmbl-latest-3006-11 + image: saltimages/salt-3006.13-py3:centos-stream9 + - name: opensuse-tmbl-latest-3006-13 driver: - image: saltimages/salt-3006.11-py3:opensuse-tumbleweed-latest + image: saltimages/salt-3006.13-py3:opensuse-tumbleweed-latest # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: opensuse-leap-156-3006-11 + - name: opensuse-leap-156-3006-13 driver: - image: saltimages/salt-3006.11-py3:opensuse-leap-15.6 + image: saltimages/salt-3006.13-py3:opensuse-leap-15.6 # Workaround to avoid intermittent failures on `opensuse-leap-15.6`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: fedora-41-3006-11 + - name: fedora-41-3006-13 driver: - image: saltimages/salt-3006.11-py3:fedora-41 - - name: fedora-40-3006-11 + image: saltimages/salt-3006.13-py3:fedora-41 + - name: fedora-40-3006-13 driver: - image: saltimages/salt-3006.11-py3:fedora-40 - - name: amazonlinux-2023-3006-11 + image: saltimages/salt-3006.13-py3:fedora-40 + - name: amazonlinux-2023-3006-13 driver: - image: saltimages/salt-3006.11-py3:amazonlinux-2023 - - name: amazonlinux-2-3006-11 + image: saltimages/salt-3006.13-py3:amazonlinux-2023 + - name: amazonlinux-2-3006-13 driver: - image: saltimages/salt-3006.11-py3:amazonlinux-2 - - name: oraclelinux-9-3006-11 + image: saltimages/salt-3006.13-py3:amazonlinux-2 + - name: oraclelinux-9-3006-13 driver: - image: saltimages/salt-3006.11-py3:oraclelinux-9 - - name: oraclelinux-8-3006-11 + image: saltimages/salt-3006.13-py3:oraclelinux-9 + - name: oraclelinux-8-3006-13 driver: - image: saltimages/salt-3006.11-py3:oraclelinux-8 - - name: almalinux-9-3006-11 + image: saltimages/salt-3006.13-py3:oraclelinux-8 + - name: almalinux-9-3006-13 driver: - image: saltimages/salt-3006.11-py3:almalinux-9 - - name: almalinux-8-3006-11 + image: saltimages/salt-3006.13-py3:almalinux-9 + - name: almalinux-8-3006-13 driver: - image: saltimages/salt-3006.11-py3:almalinux-8 - - name: rockylinux-9-3006-11 + image: saltimages/salt-3006.13-py3:almalinux-8 + - name: rockylinux-9-3006-13 driver: - image: saltimages/salt-3006.11-py3:rockylinux-9 - - name: rockylinux-8-3006-11 + image: saltimages/salt-3006.13-py3:rockylinux-9 + - name: rockylinux-8-3006-13 driver: - image: saltimages/salt-3006.11-py3:rockylinux-8 + image: saltimages/salt-3006.13-py3:rockylinux-8 ########################################################## # This file is managed as part of a Copier template. # diff --git a/release-rules.js b/release-rules.js index c63c850..1093d1f 100644 --- a/release-rules.js +++ b/release-rules.js @@ -3,16 +3,16 @@ // // NOTE: Any changes here must be reflected in `CONTRIBUTING.md`. module.exports = [ - {breaking: true, release: 'major'}, + { breaking: true, release: 'major' }, // {type: 'build', release: 'patch'}, // {type: 'chore', release: 'patch'}, // {type: 'ci', release: 'patch'}, - {type: 'docs', release: 'patch'}, - {type: 'feat', release: 'minor'}, - {type: 'fix', release: 'patch'}, - {type: 'perf', release: 'patch'}, - {type: 'refactor', release: 'patch'}, - {type: 'revert', release: 'patch'}, - {type: 'style', release: 'patch'}, - {type: 'test', release: 'patch'}, -]; + { type: 'docs', release: 'patch' }, + { type: 'feat', release: 'minor' }, + { type: 'fix', release: 'patch' }, + { type: 'perf', release: 'patch' }, + { type: 'refactor', release: 'patch' }, + { type: 'revert', release: 'patch' }, + { type: 'style', release: 'patch' }, + { type: 'test', release: 'patch' } +] diff --git a/release.config.js b/release.config.js index c1ed11b..3b26f4b 100644 --- a/release.config.js +++ b/release.config.js @@ -2,22 +2,23 @@ module.exports = { branch: 'master', repositoryUrl: 'https://github.com/saltstack-formulas/openssh-formula', plugins: [ - ['@semantic-release/commit-analyzer', { - preset: 'angular', - releaseRules: './release-rules.js', - }], - '@semantic-release/release-notes-generator', - ['@semantic-release/changelog', { - changelogFile: 'CHANGELOG.md', - changelogTitle: '# Changelog', - }], - ['@semantic-release/exec', { - prepareCmd: 'sh ./pre-commit_semantic-release.sh ${nextRelease.version}', - }], - ['@semantic-release/git', { - assets: ['*.md', 'docs/*.rst', 'FORMULA'], - }], - '@semantic-release/github', + ['@semantic-release/commit-analyzer', { + preset: 'angular', + releaseRules: './release-rules.js' + }], + '@semantic-release/release-notes-generator', + ['@semantic-release/changelog', { + changelogFile: 'CHANGELOG.md', + changelogTitle: '# Changelog' + }], + ['@semantic-release/exec', { + // eslint-disable-next-line no-template-curly-in-string + prepareCmd: 'sh ./pre-commit_semantic-release.sh ${nextRelease.version}' + }], + ['@semantic-release/git', { + assets: ['*.md', 'docs/*.rst', 'FORMULA'] + }], + '@semantic-release/github' ], generateNotes: { preset: 'angular', @@ -26,82 +27,82 @@ module.exports = { // Bug: https://github.com/conventional-changelog/conventional-changelog/issues/317 // Fix: https://github.com/conventional-changelog/conventional-changelog/pull/410 transform: (commit, context) => { - const issues = [] + const issues = [] - commit.notes.forEach(note => { - note.title = `BREAKING CHANGES` - }) + commit.notes.forEach(note => { + note.title = 'BREAKING CHANGES' + }) - // NOTE: Any changes here must be reflected in `CONTRIBUTING.md`. - if (commit.type === `feat`) { - commit.type = `Features` - } else if (commit.type === `fix`) { - commit.type = `Bug Fixes` - } else if (commit.type === `perf`) { - commit.type = `Performance Improvements` - } else if (commit.type === `revert`) { - commit.type = `Reverts` - } else if (commit.type === `docs`) { - commit.type = `Documentation` - } else if (commit.type === `style`) { - commit.type = `Styles` - } else if (commit.type === `refactor`) { - commit.type = `Code Refactoring` - } else if (commit.type === `test`) { - commit.type = `Tests` - } else if (commit.type === `build`) { - commit.type = `Build System` + // NOTE: Any changes here must be reflected in `CONTRIBUTING.md`. + if (commit.type === 'feat') { + commit.type = 'Features' + } else if (commit.type === 'fix') { + commit.type = 'Bug Fixes' + } else if (commit.type === 'perf') { + commit.type = 'Performance Improvements' + } else if (commit.type === 'revert') { + commit.type = 'Reverts' + } else if (commit.type === 'docs') { + commit.type = 'Documentation' + } else if (commit.type === 'style') { + commit.type = 'Styles' + } else if (commit.type === 'refactor') { + commit.type = 'Code Refactoring' + } else if (commit.type === 'test') { + commit.type = 'Tests' + } else if (commit.type === 'build') { + commit.type = 'Build System' // } else if (commit.type === `chore`) { // commit.type = `Maintenance` - } else if (commit.type === `ci`) { - commit.type = `Continuous Integration` - } else { - return + } else if (commit.type === 'ci') { + commit.type = 'Continuous Integration' + } else { + return + } + + if (commit.scope === '*') { + commit.scope = '' + } + + if (typeof commit.hash === 'string') { + commit.shortHash = commit.hash.substring(0, 7) + } + + if (typeof commit.subject === 'string') { + let url = context.repository + ? `${context.host}/${context.owner}/${context.repository}` + : context.repoUrl + if (url) { + url = `${url}/issues/` + // Issue URLs. + commit.subject = commit.subject.replace(/#([0-9]+)/g, (_, issue) => { + issues.push(issue) + return `[#${issue}](${url}${issue})` + }) } - - if (commit.scope === `*`) { - commit.scope = `` - } - - if (typeof commit.hash === `string`) { - commit.shortHash = commit.hash.substring(0, 7) - } - - if (typeof commit.subject === `string`) { - let url = context.repository - ? `${context.host}/${context.owner}/${context.repository}` - : context.repoUrl - if (url) { - url = `${url}/issues/` - // Issue URLs. - commit.subject = commit.subject.replace(/#([0-9]+)/g, (_, issue) => { - issues.push(issue) - return `[#${issue}](${url}${issue})` - }) - } - if (context.host) { - // User URLs. - commit.subject = commit.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g, (_, username) => { - if (username.includes('/')) { - return `@${username}` - } - - return `[@${username}](${context.host}/${username})` - }) - } - } - - // remove references that already appear in the subject - commit.references = commit.references.filter(reference => { - if (issues.indexOf(reference.issue) === -1) { - return true + if (context.host) { + // User URLs. + commit.subject = commit.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g, (_, username) => { + if (username.includes('/')) { + return `@${username}` } - return false - }) + return `[@${username}](${context.host}/${username})` + }) + } + } - return commit - }, - }, - }, -}; + // remove references that already appear in the subject + commit.references = commit.references.filter(reference => { + if (issues.indexOf(reference.issue) === -1) { + return true + } + + return false + }) + + return commit + } + } + } +}