11name : PaystackJavaClient Maven CD
22
33on :
4- repository_dispatch :
5- types : [execute-publish]
4+ push :
5+ tags :
6+ - v*
7+
8+ pull_request :
9+ branches : [ main ]
610
711jobs :
8- release :
9- name : Release
12+ publish :
1013 runs-on : ubuntu-latest
11-
1214 steps :
13- - name : Checkout master
15+ - name : Step 1 - Checkout Branch
1416 uses : actions/checkout@v4
1517 with :
1618 fetch-depth : 0
1719
18- - name : Cache local Maven repository
20+ - name : Step 2 - Cache local Maven repository
1921 uses : actions/cache@v4
2022 with :
2123 path : ~/.m2/repository
2224 key : ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
2325 restore-keys : ${{ runner.os }}-maven-
2426
25- - name : Setup JDK 17
27+ - name : Step 3 - Setup JDK 17
2628 uses : actions/setup-java@v4
2729 with :
2830 distribution : ' temurin'
2931 java-version : 17
3032 cache : ' maven'
3133
32- - name : Configure Maven settings.xml
33- 34+ - name : Step 4 - Build with Maven
35+ run : mvn -B package --file pom.xml
36+
37+ - name : Step 5 - Set up Apache Maven Central
38+ uses : actions/setup-java@v4
3439 with :
35- githubServer : false
36- servers : |
37- [{
38- "id": "github",
39- "username": "${{ github.actor }}",
40- "password": " ${{ secrets.GH_PAT }}"
41- }]
42-
43- - name : Publish Domain Package
44- run : mvn versions:set -DnewVersion=${{ github.event.client_payload.version }} versions:commit -pl paystack-domain && mvn -B deploy -pl paystack-domain
40+ distribution : ' temurin '
41+ java-version : ' 17 '
42+ server-id : maven
43+ server-username : MAVEN_USERNAME
44+ server-password : MAVEN_CENTRAL_TOKEN
45+ gpg-private-key : ${{ secrets.GPG_SECRET_KEY }}
46+ gpg-passphrase : MAVEN_GPG_PASSPHRASE
47+
48+ - name : Step 6 - Publish Domain to Apache Maven Central
49+ run : mvn -B -P release deploy -pl paystack-domain
4550 env :
46- GITHUB_TOKEN : ${{ secrets.GH_PAT }}
51+ MAVEN_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
52+ MAVEN_CENTRAL_TOKEN : ${{ secrets.MAVEN_CENTRAL_TOKEN }}
53+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
4754
48- - name : Publish Client Package
49- run : mvn versions:set -DnewVersion=${{ github.event.client_payload.version }} versions:commit -pl paystack-clients && mvn -B deploy -pl paystack-clients
55+ - name : Step 7 - Publish Clients to Apache Maven Central
56+ run : mvn -B -P release deploy -pl paystack-clients
5057 env :
51- GITHUB_TOKEN : ${{ secrets.GH_PAT }}
58+ MAVEN_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
59+ MAVEN_CENTRAL_TOKEN : ${{ secrets.MAVEN_CENTRAL_TOKEN }}
60+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
5261
53- - name : Publish Client SpringBoot Starter Package
54- run : mvn versions:set -DnewVersion=${{ github.event.client_payload.version }} versions:commit -pl paystack-clients-spring-boot-starter && mvn -B deploy -pl paystack-clients-spring-boot-starter
62+ - name : Step 8 - Publish Spring-Boot- Starter to Apache Maven Central
63+ run : mvn -B -P release deploy -pl paystack-clients-spring-boot-starter
5564 env :
56- GITHUB_TOKEN : ${{ secrets.GH_PAT }}
65+ MAVEN_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
66+ MAVEN_CENTRAL_TOKEN : ${{ secrets.MAVEN_CENTRAL_TOKEN }}
67+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
0 commit comments