Skip to content

Commit

Permalink
Merge
Browse files Browse the repository at this point in the history
  • Loading branch information
merlinpaypal committed Apr 19, 2024
2 parents 7171129 + ef69ce9 commit 5c2e017
Show file tree
Hide file tree
Showing 10 changed files with 198 additions and 13 deletions.
70 changes: 70 additions & 0 deletions .github/workflows/release-snapshots.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Snapshot Release
on:
workflow_dispatch: {}
env:
SIGNING_KEY_FILE_PATH: /home/runner/secretKey.gpg

jobs:
lint:
uses: ./.github/workflows/lint.yml

test:
uses: ./.github/workflows/release-test.yml

build:
uses: ./.github/workflows/build.yml
secrets:
SIGNING_KEY_FILE: ${{ secrets.SIGNING_KEY_FILE }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}

# after build and unit tests are finished, publish all modules at once
# to help reduce the probability of failure when interacting with sonatype servers
release:
name: Snapshot Release
needs: [lint, test, build]
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
# pulls all commits (needed for semantic release to correctly version)
fetch-depth: '0'
persist-credentials: false

- name: Set up JDK 17
uses: actions/setup-java@v3
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: Set snapshot environment variable
run: echo "USE_SNAPSHOT=true" >> $GITHUB_ENV

- name: Install Semantic Release Dependencies
run: npm install

- name: GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_KEY_FILE: ${{ env.SIGNING_KEY_FILE_PATH }}
run: npx semantic-release@21

- name: Publish to Maven
uses: ./.github/actions/publish_all_modules
with:
sonatype_user: ${{ secrets.SONATYPE_SDKS_NEXUS_USERNAME }}
sonatype_password: ${{ secrets.SONATYPE_SDKS_NEXUS_PASSWORD }}
signing_key_id: ${{ secrets.SIGNING_KEY_ID }}
signing_key_password: ${{ secrets.SIGNING_KEY_PASSWORD }}
signing_key_file: ${{ env.SIGNING_KEY_FILE_PATH }}
68 changes: 68 additions & 0 deletions .github/workflows/release-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Test Release
on: [workflow_dispatch, workflow_call]

concurrency:
group: test-${{ github.event.number }}
cancel-in-progress: true

jobs:
test_unit:
name: Unit Tests
runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'microsoft'
cache: gradle

- name: Run Unit Tests
run: ./gradlew testReleaseUnitTest
continue-on-error: false

test_unit_coverage:
name: Unit Tests Coverage
runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'microsoft'
cache: gradle

- name: Run Unit Tests Coverage
run: ./gradlew koverXmlReportDebug

test_instrumentation:
name: Instrumentation Tests
runs-on: macos-latest

steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'microsoft'
cache: gradle

- name: Run Instrumentation Tests
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: 23
target: google_apis
arch: x86_64
script: ./gradlew connectedCheck --info
continue-on-error: true
5 changes: 4 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
uses: ./.github/workflows/lint.yml

test:
uses: ./.github/workflows/test.yml
uses: ./.github/workflows/release-test.yml

build:
uses: ./.github/workflows/build.yml
Expand Down Expand Up @@ -44,6 +44,9 @@ jobs:
signing_key_file: ${{ secrets.SIGNING_KEY_FILE }}
signing_file_path: ${{ env.SIGNING_KEY_FILE_PATH }}

- name: Set snapshot environment variable
run: echo "USE_SNAPSHOT=false" >> $GITHUB_ENV

- name: Install Semantic Release Dependencies
run: npm install

Expand Down
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Changelog

## 1.0.0-develop.1 (2024-04-11)


### Features

* accessibility ([#31](https://github.com/paypal/paypal-messages-android/issues/31)) ([20644c8](https://github.com/paypal/paypal-messages-android/commit/20644c8f520f5419da5fd8fe624eddc096a4d7ec))
* add instance_id ([#4](https://github.com/paypal/paypal-messages-android/issues/4)) ([d72ccee](https://github.com/paypal/paypal-messages-android/commit/d72cceef42158444167abca1b8f3d4cb58023c63))
* base of GitHub workflows ([#5](https://github.com/paypal/paypal-messages-android/issues/5)) ([c32defe](https://github.com/paypal/paypal-messages-android/commit/c32defe0f9b32700dc9cea836dc3cc0def835a1b))
* create a snapshot workflow ([#22](https://github.com/paypal/paypal-messages-android/issues/22)) ([5bc02da](https://github.com/paypal/paypal-messages-android/commit/5bc02dac568b6db400d913cbbb9c69661f172429))
* debounce config updates ([#24](https://github.com/paypal/paypal-messages-android/issues/24)) ([7d0a043](https://github.com/paypal/paypal-messages-android/commit/7d0a0431a16e490a98176c90dbd54797450aaad8))
* jetpack compose demo ([#10](https://github.com/paypal/paypal-messages-android/issues/10)) ([a47065e](https://github.com/paypal/paypal-messages-android/commit/a47065e5e3c8fa04838e2196e799fd42df1d7088))
* modal updates ([#28](https://github.com/paypal/paypal-messages-android/issues/28)) ([101ade5](https://github.com/paypal/paypal-messages-android/commit/101ade575883ff51a7742d030a863b6fde980408))
* package pre-release ([#14](https://github.com/paypal/paypal-messages-android/issues/14)) ([d63f834](https://github.com/paypal/paypal-messages-android/commit/d63f834b025591141abb41b800c4ce32a600aeb3))
* page type ([#26](https://github.com/paypal/paypal-messages-android/issues/26)) ([c79e439](https://github.com/paypal/paypal-messages-android/commit/c79e439e616051d0c054f2161b817defd46c0cba))
* session id and device id ([#30](https://github.com/paypal/paypal-messages-android/issues/30)) ([a7208eb](https://github.com/paypal/paypal-messages-android/commit/a7208eb17184009f506a8e444ccd77d26312fc72))
* update message view to use its own instance id ([#20](https://github.com/paypal/paypal-messages-android/issues/20)) ([9efb3bb](https://github.com/paypal/paypal-messages-android/commit/9efb3bbc1e743392f469fab078f65ffa90a59871))
* use nested coroutine to prevent blocking ([#19](https://github.com/paypal/paypal-messages-android/issues/19)) ([b06039c](https://github.com/paypal/paypal-messages-android/commit/b06039c3b9676e58cdc8853bb82a4e6513c9b168))
* xml demo ([#6](https://github.com/paypal/paypal-messages-android/issues/6)) ([4b33504](https://github.com/paypal/paypal-messages-android/commit/4b3350431678922af6cab9952f9f155b92275c78))


### Bug Fixes

* correct urls ([#32](https://github.com/paypal/paypal-messages-android/issues/32)) ([f72ffda](https://github.com/paypal/paypal-messages-android/commit/f72ffdac94fc95df2bfe4a35f1f7c0a2be703f3a))
* remove kotlinter ([1550f44](https://github.com/paypal/paypal-messages-android/commit/1550f44f72d9ba6fed95cb0c2fb8bf6b5794463e))
* update shared data ([#7](https://github.com/paypal/paypal-messages-android/issues/7)) ([2fa1ea1](https://github.com/paypal/paypal-messages-android/commit/2fa1ea1f89330a90298a1ec053c110cd65666fab))


### Code Refactoring

* adjust logo alignment ([#23](https://github.com/paypal/paypal-messages-android/issues/23)) ([6347be3](https://github.com/paypal/paypal-messages-android/commit/6347be342028d107db02956b6a6202c3cda68000))
* clone to prevent shallow copy ([#25](https://github.com/paypal/paypal-messages-android/issues/25)) ([acfc3ff](https://github.com/paypal/paypal-messages-android/commit/acfc3ffbd1d1177fc0221b09e70fd60f51cc898a))
* prevent destroying modal on close ([#3](https://github.com/paypal/paypal-messages-android/issues/3)) ([ae7e032](https://github.com/paypal/paypal-messages-android/commit/ae7e03235e8559898e9eb2c76e6bd5e487dc2caa))
* prevent empty values ([#29](https://github.com/paypal/paypal-messages-android/issues/29)) ([b7b746f](https://github.com/paypal/paypal-messages-android/commit/b7b746fcfe80d159bf69d46dcbaa0d32b3226476))
* radio offer type and other things ([#11](https://github.com/paypal/paypal-messages-android/issues/11)) ([960a48a](https://github.com/paypal/paypal-messages-android/commit/960a48ab489ef62a4f5085baf6bee5a8e05893b1))
* route changes ([#13](https://github.com/paypal/paypal-messages-android/issues/13)) ([6434e30](https://github.com/paypal/paypal-messages-android/commit/6434e30fb198ffae1b14b0c5e039292f651bf559))
* use dot getters and setters ([#9](https://github.com/paypal/paypal-messages-android/issues/9)) ([84316bb](https://github.com/paypal/paypal-messages-android/commit/84316bb553ebdfc11c1d02e5d8c4e804c1806a0a))


### Continuous Integration

* functional tests ([#16](https://github.com/paypal/paypal-messages-android/issues/16)) ([51d9ec6](https://github.com/paypal/paypal-messages-android/commit/51d9ec63ad61c69164e360e5c769fbe61601bc41))
* lint and test ([#8](https://github.com/paypal/paypal-messages-android/issues/8)) ([8a22f0b](https://github.com/paypal/paypal-messages-android/commit/8a22f0b03efbab3e43dfb034dc87379985b67a19))
* update semantic release ([#21](https://github.com/paypal/paypal-messages-android/issues/21)) ([a9a3fb8](https://github.com/paypal/paypal-messages-android/commit/a9a3fb88d5dc0bd9c4034d9b8156d9fa2d0f7c6f))
9 changes: 5 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ import org.jmailen.gradle.kotlinter.tasks.FormatTask

buildscript {
ext.modules = [
// TODO: How are we changing the versionName in the gradle files during release?
"sdkVersionCode" : 10000,
"sdkVersionName" : "1.0.0-alpha.00-SNAPSHOT",
"sdkVersionName" : "1.0.0-develop.1-SNAPSHOT",
"androidMinSdkVersion": 23,
"androidTargetVersion": 34
]
Expand Down Expand Up @@ -61,8 +59,11 @@ tasks.register('changeReleaseVersion') {
doLast {
def topLevelGradleFile = file('./build.gradle')
def topLevelGradleFileText = topLevelGradleFile.getText('UTF-8')
def useSnapshot = System.getenv('USE_SNAPSHOT')
def snapshotParam = useSnapshot == "true" || useSnapshot == true ? "-SNAPSHOT" : ""

def updatedScript =
topLevelGradleFileText.replaceFirst(/("sdkVersionName"\s*: )".*",/, '$1"' + versionParam + '",')
topLevelGradleFileText.replaceFirst(/("sdkVersionName"\s*: )".*",/, '$1"' + versionParam + snapshotParam + '",')
topLevelGradleFile.write(updatedScript, 'UTF-8')
}
}
6 changes: 3 additions & 3 deletions gradle/gradle-publish.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ afterEvaluate {
}
}
repositories {
maven {
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
}
maven {
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
}
}
}

Expand Down
5 changes: 1 addition & 4 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,9 @@ android {
defaultConfig {
minSdkVersion modules.androidMinSdkVersion
targetSdkVersion modules.androidTargetVersion

// TODO: Are versionCode and versionName needed for libraries here?
versionCode modules.sdkVersionCode
versionName modules.sdkVersionName
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
testInstrumentationRunnerArguments clearPackageData: 'true'
testInstrumentationRunnerArguments clearPackageData: 'true'
consumerProguardFiles 'consumer-rules.pro'

buildConfigField('String', 'INTEGRATION_TYPE', "\"NATIVE_ANDROID\"")
Expand Down
1 change: 0 additions & 1 deletion library/src/main/java/com/paypal/messages/io/Api.kt
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,6 @@ object Api {
}

internal fun createLoggerRequest(json: String): Request {
LogCat.debug(TAG, "json after removal: ${JSONObject(json).toString(2)}")
val request = Request.Builder().apply {
url(env.url(Env.Endpoints.LOGGER))
post(json.toRequestBody("application/json".toMediaType()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ class AnalyticsEventTest {
""""error_name":"test_error_name"""",
""""error_description":"test_error_description"""",
)

expectedParts.forEach { assertTrue(it in json, "json does not contain $it") }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class AnalyticsPayloadTest {
""""lib_version":"test_library_version"""",
""""components":[]""",
)

expectedParts.forEach { Assertions.assertTrue(it in json, "json does not contain $it") }
}
}

0 comments on commit 5c2e017

Please sign in to comment.