kettle-dev 1.2.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +232 -3
  4. data/CITATION.cff +6 -6
  5. data/CONTRIBUTING.md +64 -46
  6. data/FUNDING.md +1 -1
  7. data/LICENSE.md +12 -0
  8. data/README.md +448 -457
  9. data/certs/pboling.pem +27 -0
  10. data/exe/kettle-changelog +24 -13
  11. data/exe/kettle-check-eof +7 -0
  12. data/exe/kettle-check-eof.sh +118 -0
  13. data/exe/kettle-dev-setup +12 -63
  14. data/exe/kettle-gh-release +82 -0
  15. data/lib/kettle/dev/changelog_cli.rb +373 -62
  16. data/lib/kettle/dev/ci_monitor.rb +2 -2
  17. data/lib/kettle/dev/dvcs_cli.rb +1 -1
  18. data/lib/kettle/dev/gem_spec_reader.rb +100 -10
  19. data/lib/kettle/dev/git_adapter.rb +37 -1
  20. data/lib/kettle/dev/open_collective_config.rb +15 -3
  21. data/lib/kettle/dev/pre_release_cli.rb +4 -4
  22. data/lib/kettle/dev/rakelib/reek.rake +9 -6
  23. data/lib/kettle/dev/rakelib/spec_test.rake +25 -25
  24. data/lib/kettle/dev/rakelib/yard.rake +17 -17
  25. data/lib/kettle/dev/readme_backers.rb +4 -4
  26. data/lib/kettle/dev/release_cli.rb +27 -24
  27. data/lib/kettle/dev/tasks/ci_task.rb +4 -4
  28. data/lib/kettle/dev/version.rb +2 -87
  29. data/lib/kettle/dev.rb +31 -17
  30. data/sig/kettle/dev/source_merger.rbs +40 -56
  31. data/sig/kettle/dev/version.rbs +8 -0
  32. data.tar.gz.sig +0 -0
  33. metadata +63 -165
  34. metadata.gz.sig +0 -0
  35. data/.aiignore.example +0 -19
  36. data/.devcontainer/apt-install/devcontainer-feature.json +0 -9
  37. data/.devcontainer/apt-install/install.sh +0 -11
  38. data/.devcontainer/devcontainer.json +0 -28
  39. data/.env.local.example +0 -31
  40. data/.envrc +0 -47
  41. data/.envrc.example +0 -51
  42. data/.envrc.no-osc.example +0 -51
  43. data/.git-hooks/commit-msg +0 -54
  44. data/.git-hooks/commit-subjects-goalie.txt +0 -8
  45. data/.git-hooks/footer-template.erb.txt +0 -16
  46. data/.git-hooks/prepare-commit-msg +0 -8
  47. data/.github/.codecov.yml.example +0 -14
  48. data/.github/FUNDING.yml +0 -13
  49. data/.github/FUNDING.yml.no-osc.example +0 -13
  50. data/.github/dependabot.yml +0 -13
  51. data/.github/workflows/ancient.yml +0 -83
  52. data/.github/workflows/ancient.yml.example +0 -81
  53. data/.github/workflows/auto-assign.yml +0 -21
  54. data/.github/workflows/codeql-analysis.yml +0 -70
  55. data/.github/workflows/coverage.yml +0 -127
  56. data/.github/workflows/coverage.yml.example +0 -127
  57. data/.github/workflows/current.yml +0 -116
  58. data/.github/workflows/current.yml.example +0 -115
  59. data/.github/workflows/dep-heads.yml +0 -117
  60. data/.github/workflows/dependency-review.yml +0 -20
  61. data/.github/workflows/discord-notifier.yml.example +0 -39
  62. data/.github/workflows/heads.yml +0 -117
  63. data/.github/workflows/heads.yml.example +0 -116
  64. data/.github/workflows/jruby.yml +0 -82
  65. data/.github/workflows/jruby.yml.example +0 -72
  66. data/.github/workflows/legacy.yml +0 -76
  67. data/.github/workflows/license-eye.yml +0 -40
  68. data/.github/workflows/locked_deps.yml +0 -85
  69. data/.github/workflows/opencollective.yml +0 -40
  70. data/.github/workflows/style.yml +0 -67
  71. data/.github/workflows/supported.yml +0 -75
  72. data/.github/workflows/truffle.yml +0 -99
  73. data/.github/workflows/unlocked_deps.yml +0 -84
  74. data/.github/workflows/unsupported.yml +0 -76
  75. data/.gitignore +0 -50
  76. data/.gitlab-ci.yml.example +0 -134
  77. data/.idea/.gitignore +0 -45
  78. data/.junie/guidelines-rbs.md +0 -49
  79. data/.junie/guidelines.md +0 -141
  80. data/.junie/guidelines.md.example +0 -140
  81. data/.licenserc.yaml +0 -7
  82. data/.opencollective.yml +0 -3
  83. data/.opencollective.yml.example +0 -3
  84. data/.qlty/qlty.toml +0 -79
  85. data/.rspec +0 -9
  86. data/.rubocop.yml +0 -13
  87. data/.rubocop_rspec.yml +0 -33
  88. data/.simplecov +0 -16
  89. data/.simplecov.example +0 -11
  90. data/.tool-versions +0 -1
  91. data/.yardignore +0 -13
  92. data/.yardopts +0 -14
  93. data/Appraisal.root.gemfile +0 -10
  94. data/Appraisals +0 -151
  95. data/Appraisals.example +0 -102
  96. data/CHANGELOG.md.example +0 -47
  97. data/CONTRIBUTING.md.example +0 -227
  98. data/FUNDING.md.no-osc.example +0 -63
  99. data/Gemfile +0 -40
  100. data/Gemfile.example +0 -34
  101. data/LICENSE.txt +0 -21
  102. data/README.md.example +0 -570
  103. data/README.md.no-osc.example +0 -536
  104. data/REEK +0 -0
  105. data/Rakefile.example +0 -68
  106. data/bin/setup +0 -8
  107. data/gemfiles/modular/coverage.gemfile +0 -6
  108. data/gemfiles/modular/debug.gemfile +0 -13
  109. data/gemfiles/modular/documentation.gemfile +0 -14
  110. data/gemfiles/modular/erb/r2/v3.0.gemfile +0 -1
  111. data/gemfiles/modular/erb/r2.3/default.gemfile +0 -6
  112. data/gemfiles/modular/erb/r2.6/v2.2.gemfile +0 -3
  113. data/gemfiles/modular/erb/r3/v5.0.gemfile +0 -1
  114. data/gemfiles/modular/erb/r3.1/v4.0.gemfile +0 -2
  115. data/gemfiles/modular/erb/vHEAD.gemfile +0 -2
  116. data/gemfiles/modular/injected.gemfile +0 -60
  117. data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +0 -2
  118. data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +0 -3
  119. data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +0 -2
  120. data/gemfiles/modular/mutex_m/vHEAD.gemfile +0 -2
  121. data/gemfiles/modular/optional.gemfile +0 -8
  122. data/gemfiles/modular/optional.gemfile.example +0 -5
  123. data/gemfiles/modular/runtime_heads.gemfile +0 -10
  124. data/gemfiles/modular/runtime_heads.gemfile.example +0 -8
  125. data/gemfiles/modular/stringio/r2/v3.0.gemfile +0 -5
  126. data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +0 -4
  127. data/gemfiles/modular/stringio/r3/v3.0.gemfile +0 -5
  128. data/gemfiles/modular/stringio/vHEAD.gemfile +0 -2
  129. data/gemfiles/modular/style.gemfile +0 -25
  130. data/gemfiles/modular/style.gemfile.example +0 -25
  131. data/gemfiles/modular/templating.gemfile +0 -3
  132. data/gemfiles/modular/x_std_libs/r2/libs.gemfile +0 -3
  133. data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +0 -3
  134. data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +0 -3
  135. data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +0 -3
  136. data/gemfiles/modular/x_std_libs/r3/libs.gemfile +0 -3
  137. data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +0 -3
  138. data/gemfiles/modular/x_std_libs/vHEAD.gemfile +0 -3
  139. data/gemfiles/modular/x_std_libs.gemfile +0 -2
  140. data/kettle-dev.gemspec.example +0 -154
  141. data/lib/kettle/dev/modular_gemfiles.rb +0 -119
  142. data/lib/kettle/dev/prism_appraisals.rb +0 -351
  143. data/lib/kettle/dev/prism_gemfile.rb +0 -177
  144. data/lib/kettle/dev/prism_gemspec.rb +0 -284
  145. data/lib/kettle/dev/prism_utils.rb +0 -201
  146. data/lib/kettle/dev/rakelib/install.rake +0 -10
  147. data/lib/kettle/dev/rakelib/template.rake +0 -10
  148. data/lib/kettle/dev/setup_cli.rb +0 -403
  149. data/lib/kettle/dev/source_merger.rb +0 -655
  150. data/lib/kettle/dev/tasks/install_task.rb +0 -553
  151. data/lib/kettle/dev/tasks/template_task.rb +0 -975
  152. data/lib/kettle/dev/template_helpers.rb +0 -685
@@ -1,8 +0,0 @@
1
- 🔖 Prepare release v
2
- 🔒️ Checksums for v
3
-
4
- # Lines beginning with # are ignored.
5
- # This file is read by .git-hooks/prepare-commit-msg in each project.
6
- # Each line of this file will be matched against the commit subject using `starts_with?`.
7
- # If any `starts_with?` match the project script bin/prepare-commit-msg will run.
8
- # 🔒️ Checksums for v is the standard commit message by stone_checksums.
@@ -1,16 +0,0 @@
1
- ⚡️ A message from a fellow meat-based-AI ⚡️
2
- - [❤️] Finely-crafted open-source tools like <%= @gem_name %> (& many more) require time and effort.
3
- - [❤️] Though I adore my work, it lacks financial sustainability.
4
- - [❤️] Please, help me continue enhancing your tools by becoming a sponsor:
5
- - [💲] https://liberapay.com/pboling/donate
6
- - [💲] https://github.com/sponsors/pboling
7
-
8
- <% if ENV["GIT_HOOK_FOOTER_APPEND_DEBUG"] == "true" %>
9
- @pwd = <%= @pwd %>
10
- @gemspecs = <%= @gemspecs %>
11
- @spec = <%= @spec %>
12
- @gemspec_path = <%= @gemspec_path %>
13
- @gem_name <%= @gem_name %>
14
- @spec_name <%= @spec_name %>
15
- @content <%= @content %>
16
- <% end %>
@@ -1,8 +0,0 @@
1
- #!/bin/sh
2
-
3
- # Fail on error and unset variables
4
- set -eu
5
-
6
- # We are not using direnv exec here because mise and direnv can result in conflicting PATH settings:
7
- # See: https://mise.jdx.dev/direnv.html
8
- exec "kettle-commit-msg" "$@"
@@ -1,14 +0,0 @@
1
- codecov:
2
- bot: "autobolt"
3
- max_report_age: 24
4
- disable_default_path_fixes: no
5
- require_ci_to_pass: yes
6
- notify:
7
- after_n_builds: 2
8
- wait_for_ci: yes
9
- coverage:
10
- status:
11
- project:
12
- default:
13
- target: 100%
14
- threshold: 1%
data/.github/FUNDING.yml DELETED
@@ -1,13 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- buy_me_a_coffee: pboling
4
- community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
5
- github: [pboling] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
6
- issuehunt: pboling # Replace with a single IssueHunt username
7
- ko_fi: pboling # Replace with a single Ko-fi username
8
- liberapay: pboling # Replace with a single Liberapay username
9
- open_collective: kettle-rb
10
- patreon: galtzo # Replace with a single Patreon username
11
- polar: pboling
12
- thanks_dev: u/gh/pboling
13
- tidelift: rubygems/kettle-dev
@@ -1,13 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- buy_me_a_coffee: pboling
4
- community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
5
- github: [pboling] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
6
- issuehunt: pboling # Replace with a single IssueHunt username
7
- ko_fi: pboling # Replace with a single Ko-fi username
8
- liberapay: pboling # Replace with a single Liberapay username
9
- open_collective: # Replace with a single Open Collective slug e.g., orgs/cloud-foundry
10
- patreon: galtzo # Replace with a single Patreon username
11
- polar: pboling
12
- thanks_dev: u/gh/pboling
13
- tidelift: rubygems/kettle-dev
@@ -1,13 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: "weekly"
7
- open-pull-requests-limit: 5
8
- ignore:
9
- - dependency-name: "rubocop-lts"
10
- - package-ecosystem: "github-actions"
11
- directory: "/"
12
- schedule:
13
- interval: "weekly"
@@ -1,83 +0,0 @@
1
- name: MRI 2.3, 2.4, 2.5 (EOL)
2
-
3
- permissions:
4
- contents: read
5
-
6
- on:
7
- push:
8
- branches:
9
- - 'main'
10
- - '*-stable'
11
- tags:
12
- - '!*' # Do not execute on tags
13
- pull_request:
14
- branches:
15
- - '*'
16
- # Allow manually triggering the workflow.
17
- workflow_dispatch:
18
-
19
- # Cancels all previous workflow runs for the same branch that have not yet completed.
20
- concurrency:
21
- # The concurrency group contains the workflow name and the branch name.
22
- group: "${{ github.workflow }}-${{ github.ref }}"
23
- cancel-in-progress: true
24
-
25
- jobs:
26
- test:
27
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
28
- name: Specs ${{ matrix.ruby }} ${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
29
- runs-on: ubuntu-22.04
30
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
33
- strategy:
34
- fail-fast: false
35
- matrix:
36
- include:
37
- # Ruby 2.3
38
- - ruby: "ruby-2.3"
39
- appraisal: "ruby-2-3"
40
- exec_cmd: "rake test"
41
- gemfile: "Appraisal.root"
42
- rubygems: "3.3.27"
43
- bundler: "2.3.27"
44
-
45
- # Ruby 2.4 testing is disabled because when vcr is required, any version, it raises
46
- # NoMethodError: undefined method `delete_prefix' for "CONTENT_LENGTH":String
47
- # # Ruby 2.4
48
- # - ruby: "ruby-2.4"
49
- # appraisal: "ruby-2-4"
50
- # exec_cmd: "rake test"
51
- # gemfile: "Appraisal.root"
52
- # rubygems: "3.3.27"
53
- # bundler: "2.3.27"
54
-
55
- # Ruby 2.5
56
- - ruby: "ruby-2.5"
57
- appraisal: "ruby-2-5"
58
- exec_cmd: "rake test"
59
- gemfile: "Appraisal.root"
60
- rubygems: "3.3.27"
61
- bundler: "2.3.27"
62
-
63
- steps:
64
- - name: Checkout
65
- uses: actions/checkout@v6
66
-
67
- - name: Setup Ruby & RubyGems
68
- uses: ruby/setup-ruby@v1
69
- with:
70
- ruby-version: ${{ matrix.ruby }}
71
- rubygems: ${{ matrix.rubygems }}
72
- bundler: ${{ matrix.bundler }}
73
- bundler-cache: false
74
-
75
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
76
- # We need to do this first to get appraisal installed.
77
- # NOTE: This does not use the primary Gemfile at all.
78
- - name: Install Root Appraisal
79
- run: bundle
80
- - name: Appraisal for ${{ matrix.appraisal }}
81
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
82
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
83
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,81 +0,0 @@
1
- name: MRI 2.3, 2.4, 2.5 (EOL)
2
-
3
- permissions:
4
- contents: read
5
-
6
- on:
7
- push:
8
- branches:
9
- - 'main'
10
- - '*-stable'
11
- tags:
12
- - '!*' # Do not execute on tags
13
- pull_request:
14
- branches:
15
- - '*'
16
- # Allow manually triggering the workflow.
17
- workflow_dispatch:
18
-
19
- # Cancels all previous workflow runs for the same branch that have not yet completed.
20
- concurrency:
21
- # The concurrency group contains the workflow name and the branch name.
22
- group: "${{ github.workflow }}-${{ github.ref }}"
23
- cancel-in-progress: true
24
-
25
- jobs:
26
- test:
27
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
28
- name: Specs ${{ matrix.ruby }} ${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
29
- runs-on: ubuntu-22.04
30
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
33
- strategy:
34
- fail-fast: false
35
- matrix:
36
- include:
37
- # Ruby 2.3
38
- - ruby: "ruby-2.3"
39
- appraisal: "ruby-2-3"
40
- exec_cmd: "rake test"
41
- gemfile: "Appraisal.root"
42
- rubygems: "3.3.27"
43
- bundler: "2.3.27"
44
-
45
- # Ruby 2.4
46
- - ruby: "ruby-2.4"
47
- appraisal: "ruby-2-4"
48
- exec_cmd: "rake test"
49
- gemfile: "Appraisal.root"
50
- rubygems: "3.3.27"
51
- bundler: "2.3.27"
52
-
53
- # Ruby 2.5
54
- - ruby: "ruby-2.5"
55
- appraisal: "ruby-2-5"
56
- exec_cmd: "rake test"
57
- gemfile: "Appraisal.root"
58
- rubygems: "3.3.27"
59
- bundler: "2.3.27"
60
-
61
- steps:
62
- - name: Checkout
63
- uses: actions/checkout@v6
64
-
65
- - name: Setup Ruby & RubyGems
66
- uses: ruby/setup-ruby@v1
67
- with:
68
- ruby-version: ${{ matrix.ruby }}
69
- rubygems: ${{ matrix.rubygems }}
70
- bundler: ${{ matrix.bundler }}
71
- bundler-cache: false
72
-
73
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
74
- # We need to do this first to get appraisal installed.
75
- # NOTE: This does not use the primary Gemfile at all.
76
- - name: Install Root Appraisal
77
- run: bundle
78
- - name: Appraisal for ${{ matrix.appraisal }}
79
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
80
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
81
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,21 +0,0 @@
1
- name: Auto Assign
2
- on:
3
- issues:
4
- types: [opened]
5
- pull_request:
6
- types: [opened]
7
- jobs:
8
- run:
9
- runs-on: ubuntu-latest
10
- permissions:
11
- issues: write
12
- pull-requests: write
13
- steps:
14
- - name: 'Auto-assign issue'
15
- uses: pozil/auto-assign-issue@v2
16
- with:
17
- repo-token: ${{ secrets.GITHUB_TOKEN }}
18
- assignees: pboling
19
- abortIfPreviousAssignees: true
20
- allowSelfAssign: true
21
- numOfAssignee: 1
@@ -1,70 +0,0 @@
1
- # For most projects, this workflow file will not need changing; you simply need
2
- # to commit it to your repository.
3
- #
4
- # You may wish to alter this file to override the set of languages analyzed,
5
- # or to provide custom queries or build logic.
6
- #
7
- # ******** NOTE ********
8
- # We have attempted to detect the languages in your repository. Please check
9
- # the `language` matrix defined below to confirm you have the correct set of
10
- # supported CodeQL languages.
11
- #
12
- name: "CodeQL"
13
-
14
- on:
15
- push:
16
- branches: [ main, '*-stable' ]
17
- pull_request:
18
- # The branches below must be a subset of the branches above
19
- branches: [ main, '*-stable' ]
20
- schedule:
21
- - cron: '35 1 * * 5'
22
-
23
- jobs:
24
- analyze:
25
- name: Analyze
26
- runs-on: ubuntu-latest
27
- permissions:
28
- actions: read
29
- contents: read
30
- security-events: write
31
-
32
- strategy:
33
- fail-fast: false
34
- matrix:
35
- language: [ 'ruby' ]
36
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
- # Learn more about CodeQL language support at https://git.io/codeql-language-support
38
-
39
- steps:
40
- - name: Checkout repository
41
- uses: actions/checkout@v6
42
-
43
- # Initializes the CodeQL tools for scanning.
44
- - name: Initialize CodeQL
45
- uses: github/codeql-action/init@v4
46
- with:
47
- languages: ${{ matrix.language }}
48
- # If you wish to specify custom queries, you can do so here or in a config file.
49
- # By default, queries listed here will override any specified in a config file.
50
- # Prefix the list here with "+" to use these queries and those in the config file.
51
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
52
-
53
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
- # If this step fails, then you should remove it and run the build manually (see below)
55
- - name: Autobuild
56
- uses: github/codeql-action/autobuild@v4
57
-
58
- # ℹ️ Command-line programs to run using the OS shell.
59
- # 📚 https://git.io/JvXDl
60
-
61
- # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
62
- # and modify them (or add more) to build your code if your project
63
- # uses a compiled language
64
-
65
- #- run: |
66
- # make bootstrap
67
- # make release
68
-
69
- - name: Perform CodeQL Analysis
70
- uses: github/codeql-action/analyze@v4
@@ -1,127 +0,0 @@
1
- name: Test Coverage
2
-
3
- permissions:
4
- contents: read
5
- pull-requests: write
6
- id-token: write
7
-
8
- env:
9
- K_SOUP_COV_MIN_BRANCH: 76
10
- K_SOUP_COV_MIN_LINE: 92
11
- K_SOUP_COV_MIN_HARD: true
12
- K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
13
- K_SOUP_COV_DO: true
14
- K_SOUP_COV_MULTI_FORMATTERS: true
15
- K_SOUP_COV_COMMAND_NAME: "Test Coverage"
16
-
17
- on:
18
- push:
19
- branches:
20
- - 'main'
21
- - '*-stable'
22
- tags:
23
- - '!*' # Do not execute on tags
24
- pull_request:
25
- branches:
26
- - '*'
27
- # Allow manually triggering the workflow.
28
- workflow_dispatch:
29
-
30
- # Cancels all previous workflow runs for the same branch that have not yet completed.
31
- concurrency:
32
- # The concurrency group contains the workflow name and the branch name.
33
- group: "${{ github.workflow }}-${{ github.ref }}"
34
- cancel-in-progress: true
35
-
36
- jobs:
37
- coverage:
38
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
39
- name: Code Coverage on ${{ matrix.ruby }}@current
40
- runs-on: ubuntu-latest
41
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
42
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
43
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
44
- strategy:
45
- fail-fast: false
46
- matrix:
47
- include:
48
- # Coverage
49
- - ruby: "ruby"
50
- appraisal: "coverage"
51
- exec_cmd: "rake test"
52
- gemfile: "Appraisal.root"
53
- rubygems: latest
54
- bundler: latest
55
-
56
- steps:
57
- - name: Checkout
58
- uses: actions/checkout@v6
59
-
60
- - name: Setup Ruby & RubyGems
61
- uses: ruby/setup-ruby@v1
62
- with:
63
- ruby-version: "${{ matrix.ruby }}"
64
- rubygems: "${{ matrix.rubygems }}"
65
- bundler: "${{ matrix.bundler }}"
66
- bundler-cache: false
67
-
68
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
69
- # We need to do this first to get appraisal installed.
70
- # NOTE: This does not use the primary Gemfile at all.
71
- - name: Install Root Appraisal
72
- run: bundle
73
- - name: Appraisal for ${{ matrix.appraisal }}
74
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
75
- - name: Tests for ${{ matrix.ruby }}@current via ${{ matrix.exec_cmd }}
76
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
77
-
78
- # Do SaaS coverage uploads first
79
- - name: Upload coverage to Coveralls
80
- if: ${{ !env.ACT }}
81
- uses: coverallsapp/github-action@master
82
- with:
83
- github-token: ${{ secrets.GITHUB_TOKEN }}
84
- continue-on-error: ${{ matrix.experimental != 'false' }}
85
-
86
- - name: Upload coverage to QLTY
87
- if: ${{ !env.ACT }}
88
- uses: qltysh/qlty-action/coverage@main
89
- with:
90
- token: ${{secrets.QLTY_COVERAGE_TOKEN}}
91
- files: coverage/.resultset.json
92
- continue-on-error: ${{ matrix.experimental != 'false' }}
93
-
94
- # Build will fail here if coverage upload fails
95
- # which will hopefully be noticed for the lack of code coverage comments
96
- - name: Upload coverage to CodeCov
97
- if: ${{ !env.ACT }}
98
- uses: codecov/codecov-action@v5
99
- with:
100
- use_oidc: true
101
- fail_ci_if_error: false # optional (default = false)
102
- files: coverage/lcov.info,coverage/coverage.xml
103
- verbose: true # optional (default = false)
104
-
105
- # Then PR comments
106
- - name: Code Coverage Summary Report
107
- if: ${{ !env.ACT && github.event_name == 'pull_request' }}
108
- uses: irongut/CodeCoverageSummary@v1.3.0
109
- with:
110
- filename: ./coverage/coverage.xml
111
- badge: true
112
- fail_below_min: true
113
- format: markdown
114
- hide_branch_rate: false
115
- hide_complexity: true
116
- indicators: true
117
- output: both
118
- thresholds: '92 76'
119
- continue-on-error: ${{ matrix.experimental != 'false' }}
120
-
121
- - name: Add Coverage PR Comment
122
- uses: marocchino/sticky-pull-request-comment@v2
123
- if: ${{ !env.ACT && github.event_name == 'pull_request' }}
124
- with:
125
- recreate: true
126
- path: code-coverage-results.md
127
- continue-on-error: ${{ matrix.experimental != 'false' }}
@@ -1,127 +0,0 @@
1
- name: Test Coverage
2
-
3
- permissions:
4
- contents: read
5
- pull-requests: write
6
- id-token: write
7
-
8
- env:
9
- K_SOUP_COV_MIN_BRANCH: 100
10
- K_SOUP_COV_MIN_LINE: 100
11
- K_SOUP_COV_MIN_HARD: true
12
- K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
13
- K_SOUP_COV_DO: true
14
- K_SOUP_COV_MULTI_FORMATTERS: true
15
- K_SOUP_COV_COMMAND_NAME: "Test Coverage"
16
-
17
- on:
18
- push:
19
- branches:
20
- - 'main'
21
- - '*-stable'
22
- tags:
23
- - '!*' # Do not execute on tags
24
- pull_request:
25
- branches:
26
- - '*'
27
- # Allow manually triggering the workflow.
28
- workflow_dispatch:
29
-
30
- # Cancels all previous workflow runs for the same branch that have not yet completed.
31
- concurrency:
32
- # The concurrency group contains the workflow name and the branch name.
33
- group: "${{ github.workflow }}-${{ github.ref }}"
34
- cancel-in-progress: true
35
-
36
- jobs:
37
- coverage:
38
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
39
- name: Code Coverage on ${{ matrix.ruby }}@current
40
- runs-on: ubuntu-latest
41
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
42
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
43
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
44
- strategy:
45
- fail-fast: false
46
- matrix:
47
- include:
48
- # Coverage
49
- - ruby: "ruby"
50
- appraisal: "coverage"
51
- exec_cmd: "rake test"
52
- gemfile: "Appraisal.root"
53
- rubygems: latest
54
- bundler: latest
55
-
56
- steps:
57
- - name: Checkout
58
- uses: actions/checkout@v6
59
-
60
- - name: Setup Ruby & RubyGems
61
- uses: ruby/setup-ruby@v1
62
- with:
63
- ruby-version: "${{ matrix.ruby }}"
64
- rubygems: "${{ matrix.rubygems }}"
65
- bundler: "${{ matrix.bundler }}"
66
- bundler-cache: false
67
-
68
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
69
- # We need to do this first to get appraisal installed.
70
- # NOTE: This does not use the primary Gemfile at all.
71
- - name: Install Root Appraisal
72
- run: bundle
73
- - name: Appraisal for ${{ matrix.appraisal }}
74
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
75
- - name: Tests for ${{ matrix.ruby }}@current via ${{ matrix.exec_cmd }}
76
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
77
-
78
- # Do SaaS coverage uploads first
79
- - name: Upload coverage to Coveralls
80
- if: ${{ !env.ACT }}
81
- uses: coverallsapp/github-action@master
82
- with:
83
- github-token: ${{ secrets.GITHUB_TOKEN }}
84
- continue-on-error: ${{ matrix.experimental != 'false' }}
85
-
86
- - name: Upload coverage to QLTY
87
- if: ${{ !env.ACT }}
88
- uses: qltysh/qlty-action/coverage@main
89
- with:
90
- token: ${{secrets.QLTY_COVERAGE_TOKEN}}
91
- files: coverage/.resultset.json
92
- continue-on-error: ${{ matrix.experimental != 'false' }}
93
-
94
- # Build will fail here if coverage upload fails
95
- # which will hopefully be noticed for the lack of code coverage comments
96
- - name: Upload coverage to CodeCov
97
- if: ${{ !env.ACT }}
98
- uses: codecov/codecov-action@v5
99
- with:
100
- use_oidc: true
101
- fail_ci_if_error: false # optional (default = false)
102
- files: coverage/lcov.info,coverage/coverage.xml
103
- verbose: true # optional (default = false)
104
-
105
- # Then PR comments
106
- - name: Code Coverage Summary Report
107
- if: ${{ !env.ACT && github.event_name == 'pull_request' }}
108
- uses: irongut/CodeCoverageSummary@v1.3.0
109
- with:
110
- filename: ./coverage/coverage.xml
111
- badge: true
112
- fail_below_min: true
113
- format: markdown
114
- hide_branch_rate: false
115
- hide_complexity: true
116
- indicators: true
117
- output: both
118
- thresholds: '100 100'
119
- continue-on-error: ${{ matrix.experimental != 'false' }}
120
-
121
- - name: Add Coverage PR Comment
122
- uses: marocchino/sticky-pull-request-comment@v2
123
- if: ${{ !env.ACT && github.event_name == 'pull_request' }}
124
- with:
125
- recreate: true
126
- path: code-coverage-results.md
127
- continue-on-error: ${{ matrix.experimental != 'false' }}