Skip to content

Commit 7bf38d6

Browse files
committed
Initial 🔥 :shipit:
0 parents  commit 7bf38d6

File tree

146 files changed

+12660
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

146 files changed

+12660
-0
lines changed

.editorconfig

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
root=true
2+
[*]
3+
indent_size=2
4+
end_of_line=lf
5+
charset=utf-8
6+
trim_trailing_whitespace=true
7+
insert_final_newline=true
8+
[*.{kt,kts}]
9+
ij_kotlin_imports_layout=*
10+
ij_continuation_indent_size=4
11+
ktlint_standard_filename=disabled
12+
ktlint_standard_package-name=disabled
13+
ktlint_standard_property-naming=disabled
14+
ktlint_standard_function-naming=disabled
15+
filename=disabled
16+
ktlint_experimental=enabled
17+
[*.xml]
18+
indent_size=4

.github/dependabot.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "gradle" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "weekly"

.github/workflows/build.yml

+172
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
name: Build and publish snapshot
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
paths-ignore: [ '**.md', '**.MD', '!docs/**' ]
7+
tags-ignore:
8+
- '**'
9+
pull_request:
10+
branches: [ master ]
11+
paths-ignore: [ '**.md', '**.MD', '!docs/**' ]
12+
workflow_dispatch:
13+
14+
env:
15+
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
16+
17+
permissions:
18+
contents: write
19+
20+
jobs:
21+
build:
22+
strategy:
23+
matrix:
24+
os: [ macos-11 ]
25+
runs-on: ${{ matrix.os }}
26+
timeout-minutes: 45
27+
if: ${{ github.repository == 'hoc081098/solivagant' }}
28+
steps:
29+
- uses: actions/checkout@v3
30+
31+
- name: Set up JDK
32+
uses: actions/setup-java@v3
33+
with:
34+
distribution: 'zulu'
35+
java-version: '17'
36+
37+
- name: Cache gradle, wrapper and buildSrc
38+
uses: actions/cache@v3
39+
with:
40+
path: |
41+
~/.gradle/caches
42+
~/.gradle/wrapper
43+
key: ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
44+
restore-keys: |
45+
${{ matrix.os }}-gradle-
46+
- name: Cache konan
47+
uses: actions/cache@v3
48+
with:
49+
path: |
50+
~/.konan/cache
51+
~/.konan/dependencies
52+
~/.konan/kotlin-native-macos*
53+
~/.konan/kotlin-native-mingw*
54+
~/.konan/kotlin-native-windows*
55+
~/.konan/kotlin-native-linux*
56+
~/.konan/kotlin-native-prebuilt-macos*
57+
~/.konan/kotlin-native-prebuilt-mingw*
58+
~/.konan/kotlin-native-prebuilt-windows*
59+
~/.konan/kotlin-native-prebuilt-linux*
60+
key: ${{ matrix.os }}-konan-${{ hashFiles('**/*.gradle*') }}
61+
restore-keys: |
62+
${{ matrix.os }}-konan-
63+
- name: Make gradlew executable
64+
run: chmod +x ./gradlew
65+
66+
- name: Build
67+
run: ./gradlew :viewmodel:build :viewmodel-savedstate:build :viewmodel-compose:build --stacktrace
68+
69+
- name: Kover Xml Report
70+
run: ./gradlew :koverXmlReport
71+
72+
- name: Upload Test Report
73+
uses: codecov/[email protected]
74+
75+
- name: Upload test report artifact
76+
if: ${{ failure() }}
77+
uses: actions/upload-artifact@v3
78+
with:
79+
name: test-report
80+
path: build/reports/tests/allTests/
81+
82+
publish:
83+
needs: [ build ]
84+
if: ${{ github.ref == 'refs/heads/master' && github.repository == 'hoc081098/solivagant' }}
85+
strategy:
86+
matrix:
87+
os: [ macos-11 ]
88+
runs-on: ${{ matrix.os }}
89+
timeout-minutes: 30
90+
steps:
91+
- name: Checkout
92+
uses: actions/checkout@v3
93+
94+
- name: Set up JDK
95+
uses: actions/setup-java@v3
96+
with:
97+
distribution: 'zulu'
98+
java-version: '17'
99+
100+
- name: Cache gradle, wrapper and buildSrc
101+
uses: actions/cache@v3
102+
with:
103+
path: |
104+
~/.gradle/caches
105+
~/.gradle/wrapper
106+
key: ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
107+
restore-keys: |
108+
${{ matrix.os }}-gradle-
109+
- name: Cache konan
110+
uses: actions/cache@v3
111+
with:
112+
path: |
113+
~/.konan/cache
114+
~/.konan/dependencies
115+
~/.konan/kotlin-native-macos*
116+
~/.konan/kotlin-native-mingw*
117+
~/.konan/kotlin-native-windows*
118+
~/.konan/kotlin-native-linux*
119+
~/.konan/kotlin-native-prebuilt-macos*
120+
~/.konan/kotlin-native-prebuilt-mingw*
121+
~/.konan/kotlin-native-prebuilt-windows*
122+
~/.konan/kotlin-native-prebuilt-linux*
123+
key: ${{ matrix.os }}-konan-${{ hashFiles('**/*.gradle*') }}
124+
restore-keys: |
125+
${{ matrix.os }}-konan-
126+
- name: Make gradlew executable
127+
run: chmod +x ./gradlew
128+
129+
- name: Retrieve version
130+
run: |
131+
echo "VERSION_NAME=$(cat gradle.properties | grep -w "VERSION_NAME" | cut -d'=' -f2)" >> $GITHUB_ENV
132+
shell: bash
133+
134+
- name: Publish snapshot
135+
run: ./gradlew publish --stacktrace
136+
if: ${{ endsWith(env.VERSION_NAME, '-SNAPSHOT') && contains(matrix.os, 'macos') }}
137+
env:
138+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
139+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
140+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.MAVEN_SIGNING_PRIVATE_KEY }}
141+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.MAVEN_SIGNING_PASSWORD }}
142+
143+
- name: Install Python
144+
uses: actions/setup-python@v4
145+
with:
146+
python-version: 3.x
147+
148+
- name: Install MkDocs MaterialRequirements
149+
run: pip install -r docs/requirements.txt
150+
151+
- name: Generate docs
152+
run: ./gradlew :dokkaHtmlMultiModule --no-parallel --stacktrace
153+
154+
- name: Copy docs
155+
run: |
156+
cp README.md docs/index.md
157+
cp CHANGELOG.md docs/changelog.md
158+
sh scripts/update_docs_url.sh "snapshot"
159+
mkdir -p docs/API
160+
cp -R build/dokka/htmlMultiModule/. docs/API
161+
162+
- name: Build MkDocs
163+
run: mkdocs build --verbose
164+
165+
- name: Deploy docs 🚀 to website
166+
if: ${{ contains(matrix.os, 'macos') }}
167+
uses: JamesIves/[email protected]
168+
with:
169+
branch: gh-pages # The branch the action should deploy to.
170+
folder: site # The folder the action should deploy.
171+
target-folder: docs/latest/
172+
clean: true

.github/workflows/publish-release.yml

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
name: Publish Release
2+
3+
on:
4+
push:
5+
tags:
6+
- '**'
7+
8+
env:
9+
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
create-gh-release:
16+
if: ${{ github.repository == 'hoc081098/solivagant' }}
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v3
21+
22+
- name: Extract release notes
23+
id: release_notes
24+
uses: ffurrer2/extract-release-notes@v1
25+
26+
- name: Create release
27+
uses: softprops/action-gh-release@v1
28+
with:
29+
body: ${{ steps.release_notes.outputs.release_notes }}
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32+
33+
publish:
34+
needs: create-gh-release
35+
if: ${{ github.repository == 'hoc081098/solivagant' }}
36+
strategy:
37+
matrix:
38+
os: [ macos-11 ]
39+
runs-on: ${{ matrix.os }}
40+
steps:
41+
- name: Checkout
42+
uses: actions/checkout@v3
43+
44+
- name: Set up JDK
45+
uses: actions/setup-java@v3
46+
with:
47+
distribution: 'zulu'
48+
java-version: '17'
49+
50+
- name: Cache gradle, wrapper and buildSrc
51+
uses: actions/cache@v3
52+
with:
53+
path: |
54+
~/.gradle/caches
55+
~/.gradle/wrapper
56+
key: ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
57+
restore-keys: |
58+
${{ matrix.os }}-gradle-
59+
- name: Cache konan
60+
uses: actions/cache@v3
61+
with:
62+
path: |
63+
~/.konan/cache
64+
~/.konan/dependencies
65+
~/.konan/kotlin-native-macos*
66+
~/.konan/kotlin-native-mingw*
67+
~/.konan/kotlin-native-windows*
68+
~/.konan/kotlin-native-linux*
69+
~/.konan/kotlin-native-prebuilt-macos*
70+
~/.konan/kotlin-native-prebuilt-mingw*
71+
~/.konan/kotlin-native-prebuilt-windows*
72+
~/.konan/kotlin-native-prebuilt-linux*
73+
key: ${{ matrix.os }}-konan-${{ hashFiles('**/*.gradle*') }}
74+
restore-keys: |
75+
${{ matrix.os }}-konan-
76+
- name: Make gradlew executable
77+
run: chmod +x ./gradlew
78+
79+
- name: Build release
80+
run: ./gradlew :viewmodel:assemble :viewmodel-savedstate:assemble :viewmodel-compose:assemble
81+
82+
- name: Publish release
83+
run: ./gradlew publish --stacktrace
84+
if: contains(matrix.os, 'macos')
85+
env:
86+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
87+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
88+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.MAVEN_SIGNING_PRIVATE_KEY }}
89+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.MAVEN_SIGNING_PASSWORD }}
90+
91+
- name: Install Python
92+
uses: actions/setup-python@v4
93+
with:
94+
python-version: 3.x
95+
96+
- name: Install MkDocs Material
97+
run: pip install mkdocs-material
98+
99+
- name: Generate docs
100+
run: ./gradlew :dokkaHtmlMultiModule --no-parallel --stacktrace
101+
102+
- name: Copy docs
103+
run: |
104+
cp README.md docs/index.md
105+
cp CHANGELOG.md docs/changelog.md
106+
mkdir -p docs/API
107+
cp -R build/dokka/htmlMultiModule/. docs/API
108+
109+
- name: Build MkDocs
110+
run: mkdocs build
111+
112+
- name: Deploy docs 🚀 to website
113+
if: ${{ contains(matrix.os, 'macos') }}
114+
uses: JamesIves/[email protected]
115+
with:
116+
branch: gh-pages # The branch the action should deploy to.
117+
folder: site # The folder the action should deploy.
118+
target-folder: docs/0.x/
119+
clean: true

0 commit comments

Comments
 (0)