10
10
11
11
jobs :
12
12
setup :
13
- runs-on : windows -latest
13
+ runs-on : ubuntu -latest
14
14
timeout-minutes : 20
15
15
16
16
name : Gradle Setup
@@ -28,4 +28,106 @@ jobs:
28
28
- name : Change Permissions
29
29
run : chmod +x ./gradlew
30
30
- name : Gradle Information
31
- run : ./gradlew project tasks dependencies
31
+ run : ./gradlew project tasks dependencies
32
+
33
+ build :
34
+ runs-on : ${{ matrix.os }}
35
+ needs : setup
36
+ timeout-minutes : 10
37
+
38
+ strategy :
39
+ matrix :
40
+ os : [ubuntu-latest, macos-latest, windows-latest]
41
+ java-version : [8, 11, 17, 21]
42
+
43
+ name : Build Java ${{ matrix.java-version }} / ${{ matrix.os }}
44
+ steps :
45
+ - uses : actions/checkout@v4
46
+ with :
47
+ submodules : ' recursive'
48
+ - name : Set up JDK ${{ matrix.java-version }}
49
+ uses : actions/setup-java@v4
50
+ with :
51
+ distribution : ' temurin'
52
+ java-version : ${{ matrix.java-version }}
53
+ cache : ' gradle'
54
+ - name : Change Permissions
55
+ run : chmod +x ./gradlew
56
+ - name : Build with Gradle
57
+ run : ./gradlew clean assemble publishToMavenLocal
58
+
59
+ test :
60
+ runs-on : ubuntu-latest
61
+ timeout-minutes : 10
62
+ needs : setup
63
+
64
+ name : Test Project
65
+ steps :
66
+ - uses : actions/checkout@v4
67
+ with :
68
+ submodules : ' recursive'
69
+ - name : Setup JDK 8
70
+ uses : actions/setup-java@v4
71
+ with :
72
+ java-version : ' 8'
73
+ distribution : ' temurin'
74
+ cache : ' gradle'
75
+ - name : Change Permissions
76
+ run : chmod +x ./gradlew
77
+ - name : Install Firefox
78
+ uses : browser-actions/setup-firefox@v1
79
+ - name : Gradle Test
80
+ run : ./gradlew allTests
81
+
82
+ deploy :
83
+ runs-on : ubuntu-latest
84
+ needs : [build, test]
85
+ name : Deploy Dokka
86
+ if : ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
87
+ timeout-minutes : 30
88
+
89
+ steps :
90
+ - uses : actions/checkout@v4
91
+ - name : Set up JDK 17
92
+ uses : actions/setup-java@v4
93
+ with :
94
+ distribution : ' temurin'
95
+ java-version : ' 17'
96
+ cache : ' gradle'
97
+ - name : Change Permissions
98
+ run : chmod +x ./gradlew
99
+ - name : Build Dokka
100
+ run : ./gradlew clean dokkaHtml
101
+ - name : Deploy Dokka
102
+ run : bash dokka.sh ${GITHUB_SHA::7}
103
+
104
+ publish :
105
+ strategy :
106
+ matrix :
107
+ os : [ubuntu-latest, macos-latest, windows-latest]
108
+
109
+ runs-on : ${{ matrix.os }}
110
+ needs : [build, test]
111
+ name : Publish to Repository
112
+ if : ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
113
+ timeout-minutes : 30
114
+
115
+ steps :
116
+ - uses : actions/checkout@v4
117
+ with :
118
+ submodules : ' recursive'
119
+ - name : Set up JDK 8
120
+ uses : actions/setup-java@v4
121
+ with :
122
+ distribution : ' temurin'
123
+ java-version : ' 8'
124
+ cache : ' gradle'
125
+ - name : Change Permissions
126
+ run : chmod +x ./gradlew
127
+ - name : Install Firefox
128
+ uses : browser-actions/setup-firefox@v1
129
+ - name : Publish to Repository
130
+ env :
131
+ NEXUS_USERNAME : ${{ secrets.NEXUS_USERNAME }}
132
+ NEXUS_PASSWORD : ${{ secrets.NEXUS_PASSWORD }}
133
+ run : ./gradlew clean assemble publish -Psnapshot=true
0 commit comments