Skip to content

Commit b924967

Browse files
committed
Add publishing configuration and CI workflow for Gradle project
1 parent 895c777 commit b924967

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed

.github/workflows/test-publish.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Build, test and publish
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
7+
permissions:
8+
contents: read
9+
10+
env:
11+
SLNE_RELEASES_REPO_USERNAME: ${{ secrets.SLNE_RELEASES_REPO_USERNAME }}
12+
SLNE_RELEASES_REPO_PASSWORD: ${{ secrets.SLNE_RELEASES_REPO_PASSWORD }}
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
environment: production
18+
19+
steps:
20+
- uses: actions/checkout@v3
21+
- name: Validate Gradle Wrapper
22+
uses: gradle/wrapper-validation-action@v1
23+
- uses: actions/cache@v3
24+
with:
25+
path: |
26+
~/.konan
27+
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }}
28+
- name: Set up JDK 21
29+
uses: actions/setup-java@v3
30+
with:
31+
java-version: '21'
32+
distribution: 'graalvm'
33+
- name: Setup Gradle
34+
uses: gradle/actions/setup-gradle@v4
35+
- name: Build with Gradle
36+
run: ./gradlew build
37+
38+
test:
39+
runs-on: ubuntu-latest
40+
environment: production
41+
needs: build
42+
43+
steps:
44+
- uses: actions/checkout@v3
45+
- name: Validate Gradle Wrapper
46+
uses: gradle/wrapper-validation-action@v1
47+
- uses: actions/cache@v3
48+
with:
49+
path: |
50+
~/.konan
51+
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }}
52+
- name: Set up JDK 21
53+
uses: actions/setup-java@v3
54+
with:
55+
java-version: '21'
56+
distribution: 'graalvm'
57+
58+
- name: Setup Gradle
59+
uses: gradle/actions/setup-gradle@v4
60+
61+
- name: Test with Gradle
62+
run: ./gradlew test
63+
64+
publish:
65+
runs-on: ubuntu-latest
66+
environment: production
67+
needs: [build, test]
68+
69+
steps:
70+
- uses: actions/checkout@v3
71+
- name: Validate Gradle Wrapper
72+
uses: gradle/wrapper-validation-action@v1
73+
- uses: actions/cache@v3
74+
with:
75+
path: |
76+
~/.konan
77+
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }}
78+
- name: Set up JDK 21
79+
uses: actions/setup-java@v3
80+
with:
81+
java-version: '21'
82+
distribution: 'graalvm'
83+
84+
- name: Setup Gradle
85+
uses: gradle/actions/setup-gradle@v4
86+
87+
- name: Publish with Gradle
88+
run: ./gradlew publish

build.gradle.kts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
plugins {
22
kotlin("jvm")
33
kotlin("plugin.serialization")
4+
5+
`maven-publish`
46
}
57

68
group = "dev.slne.surf"
@@ -26,4 +28,20 @@ tasks {
2628

2729
kotlin {
2830
jvmToolchain(21)
31+
}
32+
33+
publishing {
34+
repositories {
35+
maven("https://repo.slne.dev/repository/maven-releases/") {
36+
name = "maven-releases"
37+
credentials {
38+
username = System.getenv("SLNE_RELEASES_REPO_USERNAME")
39+
password = System.getenv("SLNE_RELEASES_REPO_PASSWORD")
40+
}
41+
}
42+
}
43+
44+
publications.create<MavenPublication>("maven") {
45+
from(components["java"])
46+
}
2947
}

0 commit comments

Comments
 (0)