Skip to content

Commit 0ff66fc

Browse files
authored
Merge pull request #16 from mori-atsushi/publish
Setup for publish
2 parents dbe4029 + a037098 commit 0ff66fc

File tree

10 files changed

+102
-0
lines changed

10 files changed

+102
-0
lines changed

Diff for: .github/workflows/Publish.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Publish
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
publish:
10+
runs-on: macos-latest # to publish for Kotlin/Native
11+
timeout-minutes: 90
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Validate Gradle Wrapper
18+
uses: gradle/wrapper-validation-action@v1
19+
20+
- name: Set up JDK 17
21+
uses: actions/setup-java@v3
22+
with:
23+
distribution: 'zulu'
24+
java-version: 17
25+
26+
- name: Setup Gradle
27+
uses: gradle/gradle-build-action@v2
28+
29+
- name: Publish
30+
run: ./gradlew publishAllPublicationsToMavenCentral --no-build-cache
31+
env:
32+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKey }}
33+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKeyId }}
34+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKeyPassword }}
35+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralUsername }}
36+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralPassword }}
37+
38+
- name: Close and release
39+
run: ./gradlew closeAndReleaseRepository
40+
env:
41+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralUsername }}
42+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralPassword }}
43+
44+
release_draft:
45+
runs-on: ubuntu-latest
46+
timeout-minutes: 10
47+
permissions:
48+
contents: write
49+
pull-requests: read
50+
51+
steps:
52+
- name: Set env
53+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
54+
55+
- name: create release draft
56+
uses: release-drafter/release-drafter@v5
57+
with:
58+
name: ${{ env.RELEASE_VERSION }}
59+
tag: ${{ env.RELEASE_VERSION }}
60+
env:
61+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Diff for: build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ plugins {
66
alias(libs.plugins.android.application) apply false
77
alias(libs.plugins.kotlin.multiplatform) apply false
88
alias(libs.plugins.spotless) apply false
9+
alias(libs.plugins.publish)
910
alias(libs.plugins.dokka)
1011
}
1112

Diff for: gradle.properties

+23
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,26 @@ kotlin.mpp.androidSourceSetLayoutVersion=2
1212
# Android
1313
android.nonTransitiveRClass=true
1414
android.useAndroidX=true
15+
16+
# Maven Central
17+
SONATYPE_HOST=S01
18+
RELEASE_SIGNING_ENABLED=true
19+
GROUP=com.moriatsushi.kredux
20+
VERSION_NAME=1.0.0-alpha01
21+
22+
POM_NAME=KRedux
23+
POM_DESCRIPTION=Simple implementation of Redux in Kotlin
24+
POM_INCEPTION_YEAR=2023
25+
POM_URL=https://github.com/mori-atsushi/kredux
26+
27+
POM_LICENSE_NAME=The Apache Software License, Version 2.0
28+
POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
29+
POM_LICENSE_DIST=repo
30+
31+
POM_SCM_URL=https://github.com/mori-atsushi/kredux
32+
POM_SCM_CONNECTION=scm:git:https://github.com/mori-atsushi/kredux
33+
POM_SCM_DEV_CONNECTION=scm:git:https://github.com/mori-atsushi/kredux
34+
35+
POM_DEVELOPER_ID=moriatsushi
36+
POM_DEVELOPER_NAME=Mori Atsushi
37+
POM_DEVELOPER_URL=https://github.com/mori-atsushi/

Diff for: gradle/libs.versions.toml

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ dokka = "1.9.0"
55
kotlin = "1.9.10"
66
kotlinxCoroutines = "1.7.3"
77
ktlint = "0.48.1"
8+
publish = "0.25.3"
89
spotless = "6.21.0"
910

1011
[libraries]
@@ -17,4 +18,5 @@ android-library = { id = "com.android.library", version.ref = "androidGradlePlug
1718
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
1819
compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
1920
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
21+
publish = { id = "com.vanniktech.maven.publish", version.ref = "publish" }
2022
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }

Diff for: kredux-compose/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
alias(libs.plugins.compose.multiplatform)
44
id("com.android.library")
55
alias(libs.plugins.dokka)
6+
alias(libs.plugins.publish)
67
}
78

89
kotlin {

Diff for: kredux-compose/gradle.properties

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
POM_ARTIFACT_ID=kredux-compose
2+
POM_NAME=KRedux
3+
POM_DESCRIPTION=Simple implementation of Redux in Kotlin
4+
POM_PACKAGING=aar

Diff for: kredux-core/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
kotlin("multiplatform")
33
alias(libs.plugins.dokka)
4+
alias(libs.plugins.publish)
45
}
56

67
kotlin {

Diff for: kredux-core/gradle.properties

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
POM_ARTIFACT_ID=kredux-core
2+
POM_NAME=KRedux
3+
POM_DESCRIPTION=Simple implementation of Redux in Kotlin
4+
POM_PACKAGING=jar

Diff for: kredux-side-effect/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
kotlin("multiplatform")
33
alias(libs.plugins.dokka)
4+
alias(libs.plugins.publish)
45
}
56

67
kotlin {

Diff for: kredux-side-effect/gradle.properties

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
POM_ARTIFACT_ID=kredux-side-effect
2+
POM_NAME=KRedux
3+
POM_DESCRIPTION=Simple implementation of Redux in Kotlin
4+
POM_PACKAGING=jar

0 commit comments

Comments
 (0)