Skip to content

Commit

Permalink
Initial setup
Browse files Browse the repository at this point in the history
  • Loading branch information
arkivanov committed Jul 12, 2021
1 parent 76d6fea commit 5bc1381
Show file tree
Hide file tree
Showing 22 changed files with 1,870 additions and 0 deletions.
88 changes: 88 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
root = true

[*]
insert_final_newline = true

[{*.kt, *.kts}]
max_line_length = 140
ij_kotlin_packages_to_use_import_on_demand = ^
ij_continuation_indent_size = 4
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = true
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = false
ij_kotlin_allow_trailing_comma_on_call_site = false
ij_kotlin_assignment_wrap = normal
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
ij_kotlin_block_comment_at_first_column = true
ij_kotlin_call_parameters_new_line_after_left_paren = true
ij_kotlin_call_parameters_right_paren_on_new_line = true
ij_kotlin_call_parameters_wrap = on_every_item
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_continuation_indent_for_chained_calls = false
ij_kotlin_continuation_indent_for_expression_bodies = false
ij_kotlin_continuation_indent_in_argument_lists = false
ij_kotlin_continuation_indent_in_elvis = false
ij_kotlin_continuation_indent_in_if_conditions = false
ij_kotlin_continuation_indent_in_parameter_lists = false
ij_kotlin_continuation_indent_in_supertype_lists = false
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = off
ij_kotlin_extends_list_wrap = normal
ij_kotlin_field_annotation_wrap = split_into_lines
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = true
ij_kotlin_import_nested_classes = false
ij_kotlin_imports_layout = *, java.**, javax.**, kotlin.**, ^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 2
ij_kotlin_keep_blank_lines_in_code = 2
ij_kotlin_keep_blank_lines_in_declarations = 2
ij_kotlin_keep_first_column_comment = true
ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_comment_add_space = false
ij_kotlin_line_comment_at_first_column = true
ij_kotlin_method_annotation_wrap = split_into_lines
ij_kotlin_method_call_chain_wrap = normal
ij_kotlin_method_parameters_new_line_after_left_paren = true
ij_kotlin_method_parameters_right_paren_on_new_line = true
ij_kotlin_method_parameters_wrap = on_every_item
ij_kotlin_name_count_to_use_star_import = 2147483647
ij_kotlin_name_count_to_use_star_import_for_members = 2147483647
ij_kotlin_parameter_annotation_wrap = off
ij_kotlin_space_after_comma = true
ij_kotlin_space_after_extend_colon = true
ij_kotlin_space_after_type_colon = true
ij_kotlin_space_before_catch_parentheses = true
ij_kotlin_space_before_comma = false
ij_kotlin_space_before_extend_colon = true
ij_kotlin_space_before_for_parentheses = true
ij_kotlin_space_before_if_parentheses = true
ij_kotlin_space_before_lambda_arrow = true
ij_kotlin_space_before_type_colon = false
ij_kotlin_space_before_when_parentheses = true
ij_kotlin_space_before_while_parentheses = true
ij_kotlin_spaces_around_additive_operators = true
ij_kotlin_spaces_around_assignment_operators = true
ij_kotlin_spaces_around_equality_operators = true
ij_kotlin_spaces_around_function_type_arrow = true
ij_kotlin_spaces_around_logical_operators = true
ij_kotlin_spaces_around_multiplicative_operators = true
ij_kotlin_spaces_around_range = false
ij_kotlin_spaces_around_relational_operators = true
ij_kotlin_spaces_around_unary_operator = false
ij_kotlin_spaces_around_when_arrow = true
ij_kotlin_variable_annotation_wrap = off
ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 1
ij_kotlin_wrap_first_method_in_call_chain = false
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

custom: ['https://www.buymeacoffee.com/arkivanov']
50 changes: 50 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build

on:
pull_request:
paths-ignore:
- 'docs/**'

jobs:
linux-build:
name: Build on Linux
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Update dependencies
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install nodejs chromium-browser
- name: Set up cache
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build on Linux
run: ./gradlew build -Dtargets=ANDROID,JVM,JS_IR,JS_LEGACY,LINUX_X64
macos-build:
name: Build on macOS
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Set up cache
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build on macOS
run: ./gradlew build --info -Dtargets=IOS,WATCHOS,MACOS_X64
117 changes: 117 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Publish

on:
release:
types: [ created ]
workflow_dispatch:

jobs:
create-staging-repository:
runs-on: ubuntu-latest
name: Create staging repository
outputs:
repository-id: ${{ steps.create.outputs.repository-id }}
steps:
- id: create
uses: nexus-actions/create-nexus-staging-repo@v1
with:
username: arkivanov
password: ${{ secrets.SONATYPE_PASSWORD }}
staging-profile-id: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
description: Created by GitHub Actions
metadata-publish:
name: Publish Metadata
runs-on: ubuntu-latest
needs: create-staging-repository
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Publish Metadata
env:
SONATYPE_REPOSITORY_ID: ${{ needs.create-staging-repository.outputs.repository-id }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
run: ./gradlew publish -Dpublish_metadata
linux-publish:
name: Publish on Linux
runs-on: ubuntu-latest
needs: create-staging-repository
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Publish on Linux
env:
SONATYPE_REPOSITORY_ID: ${{ needs.create-staging-repository.outputs.repository-id }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
run: ./gradlew publish -Dtargets=ANDROID,JVM,JS_IR,JS_LEGACY,LINUX_X64
macos-publish:
name: Publish on macOS
runs-on: macos-latest
needs: create-staging-repository
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Publish on macOS
env:
SONATYPE_REPOSITORY_ID: ${{ needs.create-staging-repository.outputs.repository-id }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
run: ./gradlew publish -Dtargets=IOS,WATCHOS,MACOS_X64
close-staging-repository:
name: Close staging repository
runs-on: ubuntu-latest
needs: [ create-staging-repository, metadata-publish, linux-publish, macos-publish ]
steps:
- name: Close staging repository
uses: nexus-actions/[email protected]
with:
username: arkivanov
password: ${{ secrets.SONATYPE_PASSWORD }}
staging_repository_id: ${{ needs.create-staging-repository.outputs.repository-id }}
close_only: 'true'
linux-check-publication:
name: Check publication on Linux
runs-on: ubuntu-latest
needs: close-staging-repository
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Update dependencies
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install nodejs chromium-browser
- name: Check publication on Linux
run: ./gradlew :tools:check-publication:build -Pcheck_publication -Dtargets=ANDROID,JVM,JS_IR,JS_LEGACY,LINUX_X64
macos-check-publication:
name: Check macOS publication
runs-on: macos-latest
needs: close-staging-repository
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Check macOS publication
run: ./gradlew :tools:check-publication:build -Pcheck_publication -Dtargets=IOS,WATCHOS,MACOS_X64
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*.iml
.gradle
local.properties
.idea
/build
.DS_Store
Loading

0 comments on commit 5bc1381

Please sign in to comment.