From 0b45d3acd1cf26a4ba9eccbcb43cfd48841468bd Mon Sep 17 00:00:00 2001
From: Benoit Lemaire <blemaire@walmart.com>
Date: Mon, 24 May 2021 13:23:04 -0700
Subject: [PATCH 1/4] Add initial release-aar github workflow

---
 .github/workflows/release-aar.yaml | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 .github/workflows/release-aar.yaml

diff --git a/.github/workflows/release-aar.yaml b/.github/workflows/release-aar.yaml
new file mode 100644
index 00000000000000..2adce1ab144675
--- /dev/null
+++ b/.github/workflows/release-aar.yaml
@@ -0,0 +1,27 @@
+name: Release React Native AAR
+# This workflow is manually triggered to release a new React Native AAR version
+on:
+  workflow_dispatch:
+
+jobs:
+  release-aar:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Build
+        run: |
+          cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
+          gpg --list-secret-keys --keyid-format LONG
+          yarn install
+          echo "signing.keyId=6EC70A60" >> gradle.properties
+          echo "signing.password=${OSSRH_GPG_SECRET_KEY_PASSWORD}" >> gradle.properties
+          echo "repositoryUsername=${OSSRH_SONATYPE_USERNAME}" >> gradle.properties
+          echo "repositoryPassword=${OSSRH_SONATYPE_PASSWORD}" >> gradle.properties
+          sed -i.bu 's/com.facebook.react/com.walmartlabs.ern/g' ReactAndroid/gradle.properties
+          ./gradlew ReactAndroid:assembleRelease
+          ./gradlew ReactAndroid:uploadArchives
+        env:
+          OSSRH_GPG_SECRET_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
+          OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
+          OSSRH_SONATYPE_USERNAME: ${{ secrets.OSSRH_SONATYPE_USERNAME }}
+          OSSRH_SONATYPE_PASSWORD: ${{ secrets.OSSRH_SONATYPE_PASSWORD }}

From e2f5d842a4aab30386e6a1fe2c4192dc01b68080 Mon Sep 17 00:00:00 2001
From: Benoit Lemaire <blemaire@walmart.com>
Date: Thu, 3 Jun 2021 13:05:23 -0700
Subject: [PATCH 2/4] Remove release-aar workflow

---
 .github/workflows/release-aar.yaml | 27 ---------------------------
 1 file changed, 27 deletions(-)
 delete mode 100644 .github/workflows/release-aar.yaml

diff --git a/.github/workflows/release-aar.yaml b/.github/workflows/release-aar.yaml
deleted file mode 100644
index 2adce1ab144675..00000000000000
--- a/.github/workflows/release-aar.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Release React Native AAR
-# This workflow is manually triggered to release a new React Native AAR version
-on:
-  workflow_dispatch:
-
-jobs:
-  release-aar:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-      - name: Build
-        run: |
-          cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
-          gpg --list-secret-keys --keyid-format LONG
-          yarn install
-          echo "signing.keyId=6EC70A60" >> gradle.properties
-          echo "signing.password=${OSSRH_GPG_SECRET_KEY_PASSWORD}" >> gradle.properties
-          echo "repositoryUsername=${OSSRH_SONATYPE_USERNAME}" >> gradle.properties
-          echo "repositoryPassword=${OSSRH_SONATYPE_PASSWORD}" >> gradle.properties
-          sed -i.bu 's/com.facebook.react/com.walmartlabs.ern/g' ReactAndroid/gradle.properties
-          ./gradlew ReactAndroid:assembleRelease
-          ./gradlew ReactAndroid:uploadArchives
-        env:
-          OSSRH_GPG_SECRET_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
-          OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
-          OSSRH_SONATYPE_USERNAME: ${{ secrets.OSSRH_SONATYPE_USERNAME }}
-          OSSRH_SONATYPE_PASSWORD: ${{ secrets.OSSRH_SONATYPE_PASSWORD }}

From 036fd8837d001d2e82b291ce0bc3d7c53e990e13 Mon Sep 17 00:00:00 2001
From: Benoit Lemaire <blemaire@walmart.com>
Date: Thu, 3 Jun 2021 13:09:42 -0700
Subject: [PATCH 3/4] Update release.gradle for maven publication

---
 ReactAndroid/release.gradle | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/ReactAndroid/release.gradle b/ReactAndroid/release.gradle
index 9ddc7cfc78be21..3d877ad8344dee 100644
--- a/ReactAndroid/release.gradle
+++ b/ReactAndroid/release.gradle
@@ -20,6 +20,18 @@ def isReleaseBuild() {
     return VERSION_NAME.contains("SNAPSHOT") == false
 }
 
+def getRepositoryUrl() {
+    return project.findProperty("repositoryUrl") ?: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
+}
+
+def getRepositoryUsername() {
+    return project.findProperty("repositoryUsername") ?: ""
+}
+
+def getRepositoryPassword() {
+    return project.findProperty("repositoryPassword") ?: ""
+}
+
 def configureReactNativePom(def pom) {
     pom.project {
         name(POM_NAME)
@@ -72,9 +84,28 @@ afterEvaluate { project ->
 
     signing {
         required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
+        useGpgCmd()
         sign(configurations.archives)
     }
 
+     uploadArchives {
+        configuration = configurations.archives
+        repositories.mavenDeployer {
+            beforeDeployment {
+                MavenDeployment deployment -> signing.signPom(deployment)
+            }
+
+            repository(url: getRepositoryUrl()) {
+                authentication(
+                        userName: getRepositoryUsername(),
+                        password: getRepositoryPassword())
+
+            }
+
+            configureReactNativePom(pom)
+        }
+    }
+
     task installArchives(type: Upload) {
         configuration = configurations.archives
         repositories.mavenDeployer {

From 41ead3f1d0c2396c2cafd02fb1b4eb672b84bfa8 Mon Sep 17 00:00:00 2001
From: Benoit Lemaire <blemaire@walmart.com>
Date: Thu, 3 Jun 2021 13:10:02 -0700
Subject: [PATCH 4/4] Add release-aar GitHub workflow

---
 .github/workflows/release-aar.yaml | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 .github/workflows/release-aar.yaml

diff --git a/.github/workflows/release-aar.yaml b/.github/workflows/release-aar.yaml
new file mode 100644
index 00000000000000..2e8eb12f94cb10
--- /dev/null
+++ b/.github/workflows/release-aar.yaml
@@ -0,0 +1,27 @@
+name: Release React Native AAR
+# This workflow is manually triggered to release a new React Native AAR version
+on:
+  workflow_dispatch:
+
+jobs:
+  release-aar:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Build
+        run: |
+          cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
+          gpg --list-secret-keys --keyid-format LONG
+          yarn install
+          echo "signing.gnupg.keyName=5A0C5406E56C2DC4749A8E481AF5F9E36EC70A60" >> gradle.properties
+          echo "signing.gnupg.passphrase=${OSSRH_GPG_SECRET_KEY_PASSWORD}" >> gradle.properties
+          echo "repositoryUsername=${OSSRH_SONATYPE_USERNAME}" >> gradle.properties
+          echo "repositoryPassword=${OSSRH_SONATYPE_PASSWORD}" >> gradle.properties
+          sed -i.bu 's/com.facebook.react/com.walmartlabs.ern/g' ReactAndroid/gradle.properties
+          ./gradlew ReactAndroid:assembleRelease
+          ./gradlew ReactAndroid:uploadArchives
+        env:
+          OSSRH_GPG_SECRET_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
+          OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
+          OSSRH_SONATYPE_USERNAME: ${{ secrets.OSSRH_SONATYPE_USERNAME }}
+          OSSRH_SONATYPE_PASSWORD: ${{ secrets.OSSRH_SONATYPE_PASSWORD }}