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
0 commit comments