Release Snapshot #242
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
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@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
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@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
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@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'microsoft' | |
- name: Run Unit Tests | |
uses: ./.github/actions/unit_test_module | |
with: | |
module: PayPalWebPayments | |
unit_test_fraud_protection: | |
name: Fraud Protection Unit Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
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_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@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
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 }} |