Skip to content

Commit 251b24f

Browse files
committed
Initial commit
0 parents  commit 251b24f

39 files changed

Lines changed: 2084 additions & 0 deletions

‎.github/FUNDING.yml‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# These are supported funding model platforms
2+
3+
github: [pboling] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: galtzo # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: pboling # Replace with a single Ko-fi username
7+
tidelift: rubygems/rubocop-ruby3_1 # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: pboling # Replace with a single Liberapay username
10+
issuehunt: pboling # Replace with a single IssueHunt username
11+
otechie: # Replace with a single Otechie username
12+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

‎.github/dependabot.yml‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: bundler
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
time: "04:31"
8+
open-pull-requests-limit: 10
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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@v3
42+
43+
# Initializes the CodeQL tools for scanning.
44+
- name: Initialize CodeQL
45+
uses: github/codeql-action/init@v1
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@v1
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@v1

‎.github/workflows/coverage.yml‎

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
name: Code Coverage
2+
3+
env:
4+
CI_CODECOV: true
5+
COVER_ALL: true
6+
7+
on:
8+
push:
9+
branches:
10+
- 'main'
11+
- '*-maintenance'
12+
- '*-dev'
13+
- '*-stable'
14+
tags:
15+
- '!*' # Do not execute on tags
16+
pull_request:
17+
branches:
18+
- '*'
19+
# Allow manually triggering the workflow.
20+
workflow_dispatch:
21+
22+
# Cancels all previous workflow runs for the same branch that have not yet completed.
23+
concurrency:
24+
# The concurrency group contains the workflow name and the branch name.
25+
group: ${{ github.workflow }}-${{ github.ref }}
26+
cancel-in-progress: true
27+
28+
jobs:
29+
test:
30+
name: Specs with Coverage - Ruby ${{ matrix.ruby }} ${{matrix.gemfile}} ${{ matrix.name_extra || '' }}
31+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
32+
strategy:
33+
fail-fast: false
34+
matrix:
35+
experimental: [false]
36+
rubygems:
37+
- latest
38+
bundler:
39+
- latest
40+
ruby:
41+
- "3.1"
42+
43+
runs-on: ubuntu-latest
44+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
45+
steps:
46+
- uses: amancevice/setup-code-climate@v0
47+
name: CodeClimate Install
48+
if: matrix.ruby == '3.1' && github.event_name != 'pull_request' && always()
49+
with:
50+
cc_test_reporter_id: ${{ secrets.CC_TEST_REPORTER_ID }}
51+
52+
- name: Checkout
53+
uses: actions/checkout@v3
54+
55+
- name: Setup Ruby & Bundle
56+
uses: ruby/setup-ruby@v1
57+
with:
58+
ruby-version: ${{ matrix.ruby }}
59+
rubygems: ${{ matrix.rubygems }}
60+
bundler: ${{ matrix.bundler }}
61+
bundler-cache: true
62+
63+
- name: CodeClimate Pre-build Notification
64+
run: cc-test-reporter before-build
65+
if: matrix.ruby == '3.1' && github.event_name != 'pull_request' && always()
66+
continue-on-error: ${{ matrix.experimental != 'false' }}
67+
68+
- name: Run tests
69+
run: bundle exec rake test
70+
71+
- name: Code Coverage Summary Report
72+
uses: irongut/CodeCoverageSummary@v1.2.0
73+
with:
74+
filename: ./coverage/coverage.xml
75+
badge: true
76+
fail_below_min: true
77+
format: markdown
78+
hide_branch_rate: true
79+
hide_complexity: true
80+
indicators: true
81+
output: both
82+
thresholds: '95 97'
83+
continue-on-error: ${{ matrix.experimental != 'false' }}
84+
85+
- name: Add Coverage PR Comment
86+
uses: marocchino/sticky-pull-request-comment@v2
87+
if: matrix.ruby == '3.1' && github.event_name == 'pull_request' && always()
88+
with:
89+
recreate: true
90+
path: code-coverage-results.md
91+
continue-on-error: ${{ matrix.experimental != 'false' }}
92+
93+
- name: Coveralls
94+
uses: coverallsapp/github-action@master
95+
if: matrix.ruby == '3.1' && github.event_name != 'pull_request' && always()
96+
with:
97+
github-token: ${{ secrets.GITHUB_TOKEN }}
98+
continue-on-error: ${{ matrix.experimental != 'false' }}
99+
100+
# Using the codecov gem instead.
101+
# - name: CodeCov
102+
# uses: codecov/codecov-action@v2
103+
# if: matrix.ruby == '3.1' && github.event_name != 'pull_request' && always()
104+
# with:
105+
# files: ./coverage/coverage.xml
106+
# flags: unittests
107+
# name: codecov-upload
108+
# fail_ci_if_error: true
109+
# continue-on-error: ${{ matrix.experimental != 'false' }}

‎.github/workflows/heads.yml‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Heads
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- '*-maintenance'
8+
- '*-dev'
9+
- '*-stable'
10+
tags:
11+
- '!*' # Do not execute on tags
12+
pull_request:
13+
branches:
14+
- '*'
15+
# Allow manually triggering the workflow.
16+
workflow_dispatch:
17+
18+
# Cancels all previous workflow runs for the same branch that have not yet completed.
19+
concurrency:
20+
# The concurrency group contains the workflow name and the branch name.
21+
group: ${{ github.workflow }}-${{ github.ref }}
22+
cancel-in-progress: true
23+
24+
jobs:
25+
test:
26+
name: Specs - Ruby ${{ matrix.ruby }} ${{matrix.gemfile}} ${{ matrix.name_extra || '' }}
27+
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
28+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
29+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
experimental: [true]
34+
gemfile:
35+
- ruby
36+
rubygems:
37+
- latest
38+
bundler:
39+
- latest
40+
ruby:
41+
- jruby-head
42+
- ruby-head
43+
include:
44+
# Includes a new variable experimental with a value of false
45+
# for the matrix legs matching rubygems: latest, which is all of them.
46+
# This is here for parity with the unsupported.yml
47+
# This is a hack. Combined with continue-on-error it should allow us
48+
# to have a workflow with allowed failure.
49+
# This is the "supported" build matrix, so only the "head" builds are experimental here.
50+
- rubygems: latest
51+
experimental: true
52+
53+
runs-on: ubuntu-latest
54+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
55+
steps:
56+
- name: Checkout
57+
uses: actions/checkout@v3
58+
- name: Setup Ruby & Bundle
59+
uses: ruby/setup-ruby@v1
60+
with:
61+
ruby-version: ${{ matrix.ruby }}
62+
rubygems: ${{ matrix.rubygems }}
63+
bundler: ${{ matrix.bundler }}
64+
bundler-cache: true
65+
- name: Run tests
66+
run: bundle exec rake test

‎.github/workflows/style.yml‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Code Style Checks
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- '*-maintenance'
8+
- '*-dev'
9+
- '*-stable'
10+
tags:
11+
- '!*' # Do not execute on tags
12+
pull_request:
13+
branches:
14+
- '*'
15+
16+
jobs:
17+
rubocop:
18+
name: Rubocop
19+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
experimental: [false]
24+
rubygems:
25+
- latest
26+
bundler:
27+
- latest
28+
ruby:
29+
- "3.1"
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v3
34+
- name: Setup Ruby & Bundle
35+
uses: ruby/setup-ruby@v1
36+
with:
37+
ruby-version: ${{ matrix.ruby }}
38+
rubygems: ${{ matrix.rubygems }}
39+
bundler: ${{ matrix.bundler }}
40+
bundler-cache: true
41+
- name: Run Rubocop
42+
run: bundle exec rubocop -DESP

‎.github/workflows/supported.yml‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Official Support
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- '*-maintenance'
8+
- '*-dev'
9+
- '*-stable'
10+
tags:
11+
- '!*' # Do not execute on tags
12+
pull_request:
13+
branches:
14+
- '*'
15+
# Allow manually triggering the workflow.
16+
workflow_dispatch:
17+
18+
# Cancels all previous workflow runs for the same branch that have not yet completed.
19+
concurrency:
20+
# The concurrency group contains the workflow name and the branch name.
21+
group: ${{ github.workflow }}-${{ github.ref }}
22+
cancel-in-progress: true
23+
24+
jobs:
25+
test:
26+
name: Specs - Ruby ${{ matrix.ruby }} ${{matrix.gemfile}} ${{ matrix.name_extra || '' }}
27+
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
28+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
29+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
experimental: [false]
34+
gemfile:
35+
- ruby
36+
- rails
37+
rubygems:
38+
- latest
39+
bundler:
40+
- latest
41+
ruby:
42+
- "3.1"
43+
44+
runs-on: ubuntu-latest
45+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
46+
steps:
47+
- name: Checkout
48+
uses: actions/checkout@v3
49+
- name: Setup Ruby & Bundle
50+
uses: ruby/setup-ruby@v1
51+
with:
52+
ruby-version: ${{ matrix.ruby }}
53+
rubygems: ${{ matrix.rubygems }}
54+
bundler: ${{ matrix.bundler }}
55+
bundler-cache: true
56+
- name: Run tests
57+
run: bundle exec rake test

‎.gitignore‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/.bundle/
2+
/.yardoc
3+
/_yardoc/
4+
/coverage/
5+
/doc/
6+
/pkg/
7+
/spec/reports/
8+
/tmp/
9+
10+
# rspec failure tracking
11+
.rspec_status
12+
13+
# Gemfile Lock files
14+
Gemfile.lock

‎.rspec‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
--format documentation
2+
--color
3+
--require spec_helper

0 commit comments

Comments
 (0)