-
Notifications
You must be signed in to change notification settings - Fork 42
150 lines (146 loc) · 4.68 KB
/
release_snapshot.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
name: Release Snapshot
on:
workflow_dispatch:
push:
branches:
- main
workflow_run:
workflows: ["Release"]
types:
- completed
env:
SIGNING_KEY_FILE_PATH: /home/runner/secretKey.gpg
jobs:
#First we build
build_aar:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
#After decoding the secret key, place the file in ~ /. Gradle/ secring.gpg
- name: Decode Signing Key
uses: ./.github/actions/decode_signing_key_action
with:
signing_key_file: ${{ secrets.SIGNING_KEY_FILE }}
signing_file_path: ${{ env.SIGNING_KEY_FILE_PATH }}
- name: Assemble
run: ./gradlew --stacktrace assemble -x :Demo:assemble # we exclude Demo from assemble
env:
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_KEY_FILE: ${{ env.SIGNING_KEY_FILE_PATH }}
#Once building is finished, we unit test every module in parallel
unit_test_core:
name: CorePayments Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Run Unit Tests
uses: ./.github/actions/unit_test_module
with:
module: CorePayments
unit_test_card:
name: CardPayments Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Run Unit Tests
uses: ./.github/actions/unit_test_module
with:
module: CardPayments
unit_test_paypal_web:
name: PayPal Web Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Run Unit Tests
uses: ./.github/actions/unit_test_module
with:
module: PayPalWebPayments
unit_test_paypal_native:
name: PayPal Native Payments Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Run Unit Tests
uses: ./.github/actions/unit_test_module
with:
module: PayPalNativePayments
unit_test_fraud_protection:
name: Fraud Protection Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Run Unit Tests
uses: ./.github/actions/unit_test_module
with:
module: FraudProtection
unit_test_finished:
needs: [unit_test_card, unit_test_core, unit_test_paypal_web, unit_test_paypal_native, unit_test_fraud_protection]
name: All Unit Test finished
runs-on: ubuntu-latest
steps:
- run: echo "Unit test finished"
# after build and unit tests are finished, publish all modules at once
# to help reduce the probability of failure when interacting with sonatype servers
publish_all_modules:
needs: [ unit_test_finished, build_aar ]
name: Publish All Modules To Sonatype
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Java 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'microsoft'
- name: Decode Signing Key
uses: ./.github/actions/decode_signing_key_action
with:
signing_key_file: ${{ secrets.SIGNING_KEY_FILE }}
signing_file_path: ${{ env.SIGNING_KEY_FILE_PATH }}
- name: Publish All Modules
uses: ./.github/actions/publish_all_modules
with:
sonatype_usr: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
sonatype_pwd: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
signing_key_id: ${{ secrets.SIGNING_KEY_ID }}
signing_key_pwd: ${{ secrets.SIGNING_KEY_PASSWORD }}
signing_key_file: ${{ env.SIGNING_KEY_FILE_PATH }}