Skip to content

Commit f960997

Browse files
Initial commit
0 parents  commit f960997

36 files changed

+1164
-0
lines changed

.docs/docs/assets/empty.file

Whitespace-only changes.

.docs/docs/css/all.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
code {
2+
font-weight: 600;
3+
}
4+
5+
@media screen and (min-width: 76.1875em) {
6+
.md-nav--primary .md-nav__title {
7+
display: none;
8+
}
9+
}
10+
11+
.md-nav__link--active {
12+
font-weight: bold;
13+
}

.docs/mkdocs.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
site_name: '"{{ name }}"'
2+
site_description: '"{{ description }}"'
3+
site_author: 'Javier Segovia Córdoba'
4+
remote_branch: gh-pages
5+
6+
repo_name: '"{{ repo }}"'
7+
repo_url: 'https://github.com/JavierSegoviaCordoba/"{{ repo }}"'
8+
9+
copyright: 'Copyright © 2021 Javier Segovia Córdoba'
10+
11+
theme:
12+
name: 'material'
13+
language: 'en'
14+
# TODO favicon: 'assets/favicon.png'
15+
# TODO logo: 'assets/logo.svg'
16+
palette:
17+
primary: 'white'
18+
accent: 'white'
19+
font:
20+
text: 'Fira Sans'
21+
code: 'JetBrains Mono'
22+
23+
nav:
24+
- Overview: index.md
25+
26+
plugins:
27+
- search
28+
29+
markdown_extensions:
30+
- admonition
31+
- smarty
32+
- codehilite:
33+
guess_lang: false
34+
linenums: True
35+
- footnotes
36+
- meta
37+
- toc:
38+
permalink: true
39+
- pymdownx.betterem:
40+
smart_enable: all
41+
- pymdownx.caret
42+
- pymdownx.details
43+
- pymdownx.inlinehilite
44+
- pymdownx.magiclink
45+
- pymdownx.smartsymbols
46+
- pymdownx.superfences
47+
- tables
48+
49+
extra:
50+
social:
51+
- icon: fontawesome/brands/github
52+
link: https://github.com/JavierSegoviaCordoba
53+
- icon: fontawesome/brands/twitter
54+
link: https://twitter.com/JavierSegoviaCo
55+
56+
extra_css:
57+
- css/all.css

.editorconfig

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
[*]
2+
end_of_line = lf
3+
insert_final_newline = true
4+
5+
[{*.kt, *.kts}]
6+
indent_style = space
7+
max_line_length = 100
8+
indent_size = 4
9+
ij_continuation_indent_size = 4
10+
ij_java_names_count_to_use_import_on_demand = 9999
11+
ij_kotlin_align_in_columns_case_branch = false
12+
ij_kotlin_align_multiline_binary_operation = false
13+
ij_kotlin_align_multiline_extends_list = false
14+
ij_kotlin_align_multiline_method_parentheses = false
15+
ij_kotlin_align_multiline_parameters = true
16+
ij_kotlin_align_multiline_parameters_in_calls = false
17+
ij_kotlin_allow_trailing_comma = true
18+
ij_kotlin_allow_trailing_comma_on_call_site = true
19+
ij_kotlin_assignment_wrap = normal
20+
ij_kotlin_blank_lines_after_class_header = 0
21+
ij_kotlin_blank_lines_around_block_when_branches = 0
22+
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
23+
ij_kotlin_block_comment_at_first_column = true
24+
ij_kotlin_call_parameters_new_line_after_left_paren = true
25+
ij_kotlin_call_parameters_right_paren_on_new_line = false
26+
ij_kotlin_call_parameters_wrap = on_every_item
27+
ij_kotlin_catch_on_new_line = false
28+
ij_kotlin_class_annotation_wrap = split_into_lines
29+
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
30+
ij_kotlin_continuation_indent_for_chained_calls = true
31+
ij_kotlin_continuation_indent_for_expression_bodies = true
32+
ij_kotlin_continuation_indent_in_argument_lists = true
33+
ij_kotlin_continuation_indent_in_elvis = false
34+
ij_kotlin_continuation_indent_in_if_conditions = false
35+
ij_kotlin_continuation_indent_in_parameter_lists = false
36+
ij_kotlin_continuation_indent_in_supertype_lists = false
37+
ij_kotlin_else_on_new_line = false
38+
ij_kotlin_enum_constants_wrap = off
39+
ij_kotlin_extends_list_wrap = normal
40+
ij_kotlin_field_annotation_wrap = split_into_lines
41+
ij_kotlin_finally_on_new_line = false
42+
ij_kotlin_if_rparen_on_new_line = false
43+
ij_kotlin_import_nested_classes = false
44+
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
45+
ij_kotlin_keep_blank_lines_before_right_brace = 2
46+
ij_kotlin_keep_blank_lines_in_code = 2
47+
ij_kotlin_keep_blank_lines_in_declarations = 2
48+
ij_kotlin_keep_first_column_comment = true
49+
ij_kotlin_keep_indents_on_empty_lines = false
50+
ij_kotlin_keep_line_breaks = true
51+
ij_kotlin_lbrace_on_next_line = false
52+
ij_kotlin_line_comment_add_space = false
53+
ij_kotlin_line_comment_at_first_column = true
54+
ij_kotlin_method_annotation_wrap = split_into_lines
55+
ij_kotlin_method_call_chain_wrap = normal
56+
ij_kotlin_method_parameters_new_line_after_left_paren = true
57+
ij_kotlin_method_parameters_right_paren_on_new_line = true
58+
ij_kotlin_method_parameters_wrap = on_every_item
59+
ij_kotlin_name_count_to_use_star_import = 9999
60+
ij_kotlin_name_count_to_use_star_import_for_members = 9999
61+
ij_kotlin_parameter_annotation_wrap = off
62+
ij_kotlin_space_after_comma = true
63+
ij_kotlin_space_after_extend_colon = true
64+
ij_kotlin_space_after_type_colon = true
65+
ij_kotlin_space_before_catch_parentheses = true
66+
ij_kotlin_space_before_comma = false
67+
ij_kotlin_space_before_extend_colon = true
68+
ij_kotlin_space_before_for_parentheses = true
69+
ij_kotlin_space_before_if_parentheses = true
70+
ij_kotlin_space_before_lambda_arrow = true
71+
ij_kotlin_space_before_type_colon = false
72+
ij_kotlin_space_before_when_parentheses = true
73+
ij_kotlin_space_before_while_parentheses = true
74+
ij_kotlin_spaces_around_additive_operators = true
75+
ij_kotlin_spaces_around_assignment_operators = true
76+
ij_kotlin_spaces_around_equality_operators = true
77+
ij_kotlin_spaces_around_function_type_arrow = true
78+
ij_kotlin_spaces_around_logical_operators = true
79+
ij_kotlin_spaces_around_multiplicative_operators = true
80+
ij_kotlin_spaces_around_range = false
81+
ij_kotlin_spaces_around_relational_operators = true
82+
ij_kotlin_spaces_around_unary_operator = false
83+
ij_kotlin_spaces_around_when_arrow = true
84+
ij_kotlin_variable_annotation_wrap = off
85+
ij_kotlin_while_on_new_line = false
86+
ij_kotlin_wrap_elvis_expressions = 1
87+
ij_kotlin_wrap_expression_body_functions = 1
88+
ij_kotlin_wrap_first_method_in_call_chain = false

.gitattributes

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
* text eol=lf
2+
3+
*.webp binary
4+
*.webm binary
5+
*.png binary
6+
*.jpg binary
7+
*.jpeg binary
8+
*.gif binary
9+
*.ico binary
10+
*.mov binary
11+
*.mp4 binary
12+
*.mp3 binary
13+
*.flv binary
14+
*.fla binary
15+
*.swf binary
16+
*.gz binary
17+
*.zip binary
18+
*.7z binary
19+
*.ttf binary
20+
*.eot binary
21+
*.woff binary
22+
*.pyc binary
23+
*.pdf binary

.github/CODEOWNERS

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

.github/FUNDING.yml

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

.github/PUBLISHING.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Publishing
2+
3+
## Prerequisites
4+
5+
> Both methods can be mixed because if a variable is not found, it will try to get it using the
6+
> another method.
7+
8+
### Using Gradle properties method
9+
10+
> It is recommended to set the next properties in the `$home/.gradle/gradle.properties` file instead
11+
> of using the project `gradle.properties`.
12+
>
13+
> Another alternative is setting them via CLI, i.e.:
14+
> `./gradlew -P"signing.gnupg.keyName"="[keyName]"`.
15+
16+
1. Generate key: `gpg --full-generate-key`
17+
2. Check key name: `gpg --list-signatures`
18+
3. Upload to server: `gpg --keyserver hkps://keys.openpgp.org --send-keys [keyName]`
19+
4. Show the private key: `gpg --armor --export-secret-keys [keyName]`
20+
5. Add Nexus user: `oss.user=[user]`
21+
6. Add Nexus token: `oss.token=[token]`
22+
7. Add Nexus profileId: `oss.stagingProfileId=[stagingProfileId]`
23+
1. Visit this [link](https://oss.sonatype.org/#stagingProfiles), select your profile and copy
24+
`SOME_NUMBER` from the url `https://oss.sonatype.org/#stagingProfiles;SOME_NUMBERS`
25+
8. Add KeyName (optional with `useInMemoryPgpKeys`): `signing.gnupg.keyName=[keyName]`
26+
9. Add KeyId (optional with `useInMemoryPgpKeys` and `useCpgCmd`): `signing.gnupg.keyId=[keyId]`
27+
10. Add Key (replace line breaks with `\n`, optional with `useGpgCmd`): `signing.gnupg.key=[key]`
28+
11. Add Passphrase: `signing.gnupg.passphrase=[passphrase]`
29+
30+
### Using environment variables method
31+
32+
1. Generate key: `gpg --full-generate-key`
33+
2. Check key id: `gpg --list-signatures`
34+
3. Upload to server: `gpg --keyserver hkps://keys.openpgp.org --send-keys [keyId]`
35+
4. Add Nexus user: `OSS_USER`
36+
5. Add Nexus token: `OSS_TOKEN`
37+
6. Add Nexus profileId: `OSS_STAGING_PROFILE_ID`
38+
1. Visit this [link](https://oss.sonatype.org/#stagingProfiles), select your profile and copy
39+
`SOME_NUMBER` from the url `https://oss.sonatype.org/#stagingProfiles;SOME_NUMBERS`
40+
7. Add KeyName (optional with `useInMemoryPgpKeys`): `SIGNING_KEY_NAME=[keyName]`
41+
8. Add KeyId (optional with `useInMemoryPgpKeys` and `useCpgCmd`): `SIGNING_KEY_ID=[keyId]`
42+
9. Add Key (replace line breaks with `\n`, optional with `useGpgCmd`): `SIGNING_KEY=[key]`
43+
1. If it is used as secret in GitHub, it is not necessary to replace all line breaks with `\n`
44+
10. Add Passphrase: `SIGNING_KEY_PASSPHRASE=[passphrase]`
45+
46+
### Minimum amount of secrets for publishing via GitHub Actions
47+
48+
- With `useInMemoryPgpKeys` (used by default):
49+
50+
1. `OSS_USER`
51+
2. `OSS_TOKEN`
52+
3. `OSS_STAGING_PROFILE_ID`
53+
4. `SIGNING_KEY_PASSPHRASE`
54+
5. `SIGNING_KEY`
55+
6. `SIGNING_KEY_ID` (optional)
56+
57+
- With `useCpgCmd` (if the previous method fails, this will be used):
58+
59+
1. `OSS_USER`
60+
2. `OSS_TOKEN`
61+
3. `OSS_STAGING_PROFILE_ID`
62+
4. `SIGNING_KEY_NAME`
63+
5. `SIGNING_KEY_PASSPHRASE`
64+
6. `SIGNING_KEY`
65+
66+
> You can use these utilities:
67+
> - Kleopatra, GUI for Windows
68+
> - GPG Suite (GPGTools), GUI for macOS
69+
> - `crazy-max/ghaction-import-gpg` action to import the GPG key.
70+
71+
## Publish the artifacts
72+
73+
`useInMemoryPgpKeys` will be used by the default, if it crashes, `useGpgCmd` will be used.
74+
75+
### Snapshot
76+
77+
The version should end with `-SNAPSHOT`
78+
79+
```
80+
./gradlew publishToSonatype -P"reckon.stage"="snapshot"
81+
```
82+
83+
### Release
84+
85+
```
86+
./gradlew publishToSonatype -P"reckon.stage"="[stage]" -P"reckon.scope"="[scope]"
87+
```

.github/renovate.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"extends": [
3+
"config:base"
4+
],
5+
"assigneesFromCodeOwners": true,
6+
"commitBodyTable": true,
7+
"gitIgnoredAuthors": [
8+
9+
10+
]
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: build-changelog-renovate-bot
2+
3+
on:
4+
push:
5+
branches:
6+
- 'renovate/**'
7+
8+
jobs:
9+
add-updated-dependencies-to-changelog:
10+
uses: JavierSegoviaCordoba/reusable-workflows/.github/workflows/build-changelog-renovate-bot.yaml@main
11+
secrets:
12+
TOKEN_GITHUB_ACTION: '${{ secrets.TOKEN_GITHUB_ACTION }}'

0 commit comments

Comments
 (0)