Skip to content

Commit baac61d

Browse files
committed
Initial commit.
0 parents  commit baac61d

37 files changed

+1478
-0
lines changed

.circleci/config.yml

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
version: 2.1
2+
3+
orbs:
4+
slack: circleci/[email protected]
5+
6+
base_container: &base_container
7+
image: buildpack-deps:buster
8+
9+
build_container: &build_container
10+
resource_class: arm.medium
11+
docker:
12+
- <<: *base_container
13+
14+
slack_context: &slack_context
15+
context:
16+
- slack
17+
18+
only_main: &only_main
19+
filters:
20+
branches:
21+
only:
22+
- main
23+
24+
only_dependabot: &only_dependabot
25+
filters:
26+
branches:
27+
only:
28+
- /^dependabot.*/
29+
30+
only_main_and_dependabot: &only_main_and_dependabot
31+
filters:
32+
branches:
33+
only:
34+
- main
35+
- /^dependabot.*/
36+
37+
commands:
38+
notify:
39+
steps:
40+
- when:
41+
condition:
42+
matches:
43+
pattern: "^dependabot.*"
44+
value: << pipeline.git.branch >>
45+
steps:
46+
- slack/notify:
47+
event: fail
48+
channel: builds-dependabot
49+
template: SLACK_FAILURE_NOTIFICATION
50+
- slack/notify:
51+
event: pass
52+
channel: builds-dependabot
53+
template: SLACK_SUCCESS_NOTIFICATION
54+
- when:
55+
condition:
56+
matches:
57+
pattern: "^(?!dependabot).*"
58+
value: << pipeline.git.branch >>
59+
steps:
60+
- slack/notify:
61+
event: fail
62+
channel: dev
63+
template: SLACK_FAILURE_NOTIFICATION
64+
- slack/notify:
65+
event: pass
66+
channel: builds
67+
template: SLACK_SUCCESS_NOTIFICATION
68+
69+
configure_build_tools:
70+
steps:
71+
- run: ./scripts/ci/common/install-slack-deps.sh
72+
- restore_cache:
73+
keys:
74+
- asdf-dependencies-{{ arch }}-v2-{{ checksum ".tool-versions" }}
75+
- asdf-dependencies-{{ arch }}-v2-
76+
- run: ./scripts/ci/common/install-asdf.sh
77+
- run: ./scripts/ci/common/configure-asdf.sh
78+
- run: ./scripts/ci/common/install-asdf-dependencies.sh
79+
- save_cache:
80+
key: asdf-dependencies-{{ arch }}-v2-{{ checksum ".tool-versions" }}
81+
paths:
82+
- ~/.asdf
83+
84+
configure_secrets_tools:
85+
steps:
86+
- run: ./scripts/ci/common/install-git-crypt.sh
87+
- run: ./scripts/ci/common/install-gpg-key.sh
88+
- run: ./scripts/ci/common/configure-git.sh
89+
90+
configure_rubygems:
91+
steps:
92+
- run: ./scripts/ci/common/configure-rubygems.sh
93+
94+
configure_tools:
95+
steps:
96+
- configure_build_tools
97+
- configure_secrets_tools
98+
- configure_rubygems
99+
100+
jobs:
101+
build:
102+
<<: *build_container
103+
steps:
104+
- checkout
105+
- configure_tools
106+
- run: ./scripts/ci/steps/build.sh
107+
- notify
108+
109+
test:
110+
<<: *build_container
111+
steps:
112+
- checkout
113+
- configure_tools
114+
- run: ./scripts/ci/steps/test.sh
115+
- notify
116+
117+
prerelease:
118+
<<: *build_container
119+
steps:
120+
- checkout
121+
- configure_tools
122+
- run: ./scripts/ci/steps/prerelease.sh
123+
- notify
124+
125+
release:
126+
<<: *build_container
127+
steps:
128+
- checkout
129+
- configure_tools
130+
- run: ./scripts/ci/steps/release.sh
131+
- notify
132+
133+
merge_pull_request:
134+
<<: *build_container
135+
steps:
136+
- checkout
137+
- configure_tools
138+
- run: ./scripts/ci/steps/merge-pull-request.sh
139+
- notify
140+
141+
workflows:
142+
version: 2
143+
pipeline:
144+
jobs:
145+
- build:
146+
<<: *only_main_and_dependabot
147+
<<: *slack_context
148+
- test:
149+
<<: *only_main_and_dependabot
150+
<<: *slack_context
151+
requires:
152+
- build
153+
- merge_pull_request:
154+
<<: *only_dependabot
155+
<<: *slack_context
156+
requires:
157+
- test
158+
- prerelease:
159+
<<: *only_main
160+
<<: *slack_context
161+
requires:
162+
- test
163+
- slack/on-hold:
164+
<<: *only_main
165+
<<: *slack_context
166+
requires:
167+
- prerelease
168+
channel: release
169+
template: SLACK_ON_HOLD_NOTIFICATION
170+
- hold:
171+
<<: *only_main
172+
type: approval
173+
requires:
174+
- prerelease
175+
- slack/on-hold
176+
- release:
177+
<<: *only_main
178+
<<: *slack_context
179+
requires:
180+
- hold

.circleci/gpg.private.enc

3.92 KB
Binary file not shown.

.envrc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
3+
PROJECT_DIR="$(pwd)"
4+
5+
PATH_add "${PROJECT_DIR}"
6+
PATH_add "${PROJECT_DIR}"/vendor/**/bin
7+
8+
if has asdf; then
9+
asdf install
10+
fi
11+
12+
layout ruby
13+
layout node

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
config/secrets/** filter=git-crypt diff=git-crypt

.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+
3+
updates:
4+
- package-ecosystem: "bundler"
5+
directory: "/"
6+
schedule:
7+
interval: "daily"
8+

.gitignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## Standard stuff:
2+
*.gem
3+
*.rbc
4+
/build
5+
/.config
6+
/coverage/
7+
/InstalledFiles
8+
/pkg/
9+
.rspec_status
10+
/spec/reports/
11+
/spec/examples.txt
12+
/test/tmp/
13+
/test/version_tmp/
14+
/tmp/
15+
.rakeTasks
16+
/out
17+
.direnv
18+
19+
## Documentation cache and generated files:
20+
/.yardoc/
21+
/_yardoc/
22+
/doc/
23+
/rdoc/
24+
25+
## Environment normalization:
26+
/.bundle/
27+
/vendor/bundle
28+
/lib/bundler/man/
29+
30+
## IDE:
31+
.idea
32+
*.ipr
33+
*.iws
34+
*.iml

.rubocop.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require:
2+
- rubocop-rake
3+
- rubocop-rspec
4+
5+
AllCops:
6+
NewCops: enable
7+
8+
Layout/LineLength:
9+
Max: 80
10+
11+
Metrics/BlockLength:
12+
AllowedMethods:
13+
- describe
14+
- context
15+
- shared_examples
16+
- it
17+
18+
Style/Documentation:
19+
Enabled: false
20+
21+
RSpec/ExampleLength:
22+
Max: 40
23+
24+
Gemspec/RequireMFA:
25+
Enabled: false
26+
27+
Gemspec/DevelopmentDependencies:
28+
Enabled: false

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ruby 3.1.4

CODE_OF_CONDUCT.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, gender identity and expression, level of
9+
experience, nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or reject
41+
comments, commits, code, wiki edits, issues, and other contributions that are
42+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
43+
contributor for other behaviors that they deem inappropriate, threatening,
44+
offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at [email protected]. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an
62+
incident. Further details of specific enforcement policies may be posted
63+
separately.
64+
65+
Project maintainers who do not follow or enforce the Code of Conduct in good
66+
faith may face temporary or permanent repercussions as determined by other
67+
members of the project's leadership.
68+
69+
## Attribution
70+
71+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
72+
version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
73+
74+
[homepage]: http://contributor-covenant.org
75+
76+
[version]: http://contributor-covenant.org/version/1/4/

Gemfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
source 'https://rubygems.org'
4+
5+
# Specify your gem's dependencies in ruby_zprint.gemspec
6+
gemspec

0 commit comments

Comments
 (0)