diff --git a/.circleci/config.yml b/.circleci/config.yml
index d0bfb9884066..76bda9defac1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -11,22 +11,80 @@ commands:
- run:
name: Setup gradle.properties
command: cp gradle.properties-example gradle.properties
+ yarn-install:
+ steps:
+ - restore_cache:
+ name: Restore Yarn Cache
+ keys:
+ - yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/yarn.lock" }}
+ - run:
+ name: Yarn Install
+ working_directory: libs/gutenberg-mobile
+ command: yarn install --frozen-lockfile --prefer-offline --network-concurrency 1
+ - save_cache:
+ name: Save Yarn Cache
+ key: yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/yarn.lock" }}
+ paths:
+ - libs/gutenberg-mobile/node_modules
+ - libs/gutenberg-mobile/i18n-cache/data
+ checkout-submodules:
+ steps:
+ - run:
+ name: Checkout submodules
+ command: git submodule update --init --recursive
+ checkout-gutenberg-mobile-submodule-only:
+ steps:
+ - run:
+ name: Checkout gutenberg-mobile submodule (no recursive)
+ command: git submodule update --init
+ yarn-bundle-android:
+ steps:
+ - run:
+ name: Yarn bundle Android
+ working_directory: libs/gutenberg-mobile
+ command: yarn bundle:android
version: 2.1
jobs:
+ gutenberg-bundle-build:
+ docker:
+ - image: circleci/node:10
+ steps:
+ - git/shallow-checkout
+ - checkout-submodules
+ - yarn-install
+ - yarn-bundle-android
+ - run:
+ name: Rename the JS bundle
+ working_directory: libs/gutenberg-mobile
+ command: mv bundle/android/App.js bundle/android/index.android.bundle
+ - persist_to_workspace:
+ root: libs/gutenberg-mobile/bundle/android
+ paths:
+ - index.android.bundle
test:
executor:
name: android/default
api-version: "28"
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- android/restore-gradle-cache
- copy-gradle-properties
+ - run:
+ name: Ensure assets folder exists
+ command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ - attach_workspace:
+ at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
- run:
name: Test WordPress
- command: ./gradlew --stacktrace testVanillaRelease
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
+ command: SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD=1 ./gradlew testVanillaRelease --stacktrace --no-daemon
- run:
name: Test WordPressUtils
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: cd libs/utils && ./gradlew --stacktrace testReleaseUnitTest
- android/save-gradle-cache
- android/save-test-results
@@ -36,20 +94,34 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- android/restore-gradle-cache
- copy-gradle-properties
+ - run:
+ name: Ensure assets folder exists
+ command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ - attach_workspace:
+ at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
- run:
name: Checkstyle
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: ./gradlew --stacktrace checkstyle
- run:
name: ktlint
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: ./gradlew --stacktrace ciktlint
- run:
name: Lint
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: ./gradlew --stacktrace lintVanillaRelease || (grep -A20 -B2 'severity="Error"' -r --include="*.xml" WordPress libs; exit 1)
- run:
name: Violations
when: on_fail
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: |
if [ -n "$GITHUB_API_TOKEN" ]; then
./gradlew --stacktrace violationCommentsToGitHub -DGITHUB_PULLREQUESTID=${CIRCLE_PULL_REQUEST##*/} -DGITHUB_OAUTH2TOKEN=$GITHUB_API_TOKEN
@@ -64,14 +136,22 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- bundle-install/bundle-install:
cache_key_prefix: installable-build
- run:
name: Copy Secrets
command: bundle exec fastlane run configure_apply
- android/restore-gradle-cache
+ - run:
+ name: Ensure assets folder exists
+ command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ - attach_workspace:
+ at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
- run:
name: Build APK
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: |
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
PR_NUMBER=$(basename $CIRCLE_PULL_REQUEST)
@@ -104,10 +184,18 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- android/restore-gradle-cache
- copy-gradle-properties
+ - run:
+ name: Ensure assets folder exists
+ command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ - attach_workspace:
+ at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
- run:
name: Build
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: ./gradlew WordPress:assembleVanillaDebug WordPress:assembleVanillaDebugAndroidTest --stacktrace
- run:
name: Decrypt credentials
@@ -138,10 +226,18 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- android/restore-gradle-cache
- copy-gradle-properties
+ - run:
+ name: Ensure assets folder exists
+ command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ - attach_workspace:
+ at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
- run:
name: Build
+ environment:
+ SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD: 1
command: ./gradlew WordPress:assembleVanillaDebug && cd libs/utils && ./gradlew assembleAndroidTest --stacktrace
- run:
name: Decrypt credentials
@@ -161,6 +257,7 @@ jobs:
- image: circleci/ruby:2.6.4
steps:
- git/shallow-checkout
+ - checkout-gutenberg-mobile-submodule-only
- run:
name: Install bundler
command: gem install bundler --version 2.0.2
@@ -173,18 +270,29 @@ jobs:
workflows:
wordpress_android:
jobs:
+ - gutenberg-bundle-build
- strings-check
- - test
- - lint
+ - test:
+ requires:
+ - gutenberg-bundle-build
+ - lint:
+ requires:
+ - gutenberg-bundle-build
- Installable Build:
+ requires:
+ - gutenberg-bundle-build
filters:
branches:
ignore: /pull\/[0-9]+/
- WordPressUtils Connected Tests:
+ requires:
+ - gutenberg-bundle-build
filters:
branches:
ignore: /pull\/[0-9]+/
- Connected Tests:
+ requires:
+ - gutenberg-bundle-build
post-to-slack: true
# Always run connected tests on develop and release branches
filters:
diff --git a/WordPress/lint-baseline.xml b/WordPress/lint-baseline.xml
index 6e14796f1ffa..42c2fd629297 100644
--- a/WordPress/lint-baseline.xml
+++ b/WordPress/lint-baseline.xml
@@ -46,6 +46,22 @@
column="20"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/libs/editor/WordPressEditor/build.gradle b/libs/editor/WordPressEditor/build.gradle
index fec439925a2d..758761e072b5 100644
--- a/libs/editor/WordPressEditor/build.gradle
+++ b/libs/editor/WordPressEditor/build.gradle
@@ -28,9 +28,6 @@ apply plugin: 'signing'
// import the `submoduleGitHash()` function
apply from: 'https://gist.githubusercontent.com/hypest/e06f6097065728b6db7b7c462f8fef1a/raw/3b91756fca76e4c2a9b573313e186c47842e1f7d/submoduleGitHash.gradle'
-// import the `waitJitpack()` function
-apply from: 'https://gist.githubusercontent.com/hypest/f526fe0775dedce0ce0133f1400d22a4/raw/0008b271a0d28fc79957fd3c2a027f57e98f796a/wait-jitpack.gradle'
-
android {
compileSdkVersion 28
@@ -78,23 +75,10 @@ dependencies {
api ("com.github.wordpress-mobile.WordPress-Aztec-Android:wordpress-shortcodes:$aztecVersion")
api ("com.github.wordpress-mobile.WordPress-Aztec-Android:wordpress-comments:$aztecVersion")
- debugImplementation files("./libs/hermes-debug.aar")
- releaseImplementation files("./libs/hermes-release.aar")
-
- if (rootProject.ext.has("buildGutenbergFromSource") && rootProject.ext.buildGutenbergFromSource) {
- implementation (project(':react-native-gutenberg-bridge')) {
- exclude group: 'com.squareup.okhttp3'
- exclude group: "com.android.volley"
- exclude group: 'com.google.code.findbugs'
- }
- } else {
- implementation (waitJitpack('com.github.wordpress-mobile', 'gutenberg-mobile', submoduleGitHash('../../../', 'libs/gutenberg-mobile'))) {
- // Inheriting RN's okhttp version can interfere with FluxC SSL handling
- // See https://github.com/wordpress-mobile/WordPress-Android/issues/9032 and https://github.com/wordpress-mobile/WordPress-FluxC-Android/issues/919
- exclude group: 'com.squareup.okhttp3'
- exclude group: "com.android.volley"
- exclude group: 'com.google.code.findbugs'
- }
+ implementation (project(':react-native-gutenberg-bridge')) {
+ exclude group: 'com.squareup.okhttp3'
+ exclude group: "com.android.volley"
+ exclude group: 'com.google.code.findbugs'
}
// Required Aztec dependencies (they should be included but Jitpack seems to be stripping these out)
diff --git a/libs/editor/WordPressEditor/libs/hermes-debug.aar b/libs/editor/WordPressEditor/libs/hermes-debug.aar
deleted file mode 100644
index 74bd4ae5cba7..000000000000
Binary files a/libs/editor/WordPressEditor/libs/hermes-debug.aar and /dev/null differ
diff --git a/libs/editor/WordPressEditor/libs/hermes-release.aar b/libs/editor/WordPressEditor/libs/hermes-release.aar
deleted file mode 100644
index cc208310ea2d..000000000000
Binary files a/libs/editor/WordPressEditor/libs/hermes-release.aar and /dev/null differ
diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile
index bffe9d267809..891739a9ab45 160000
--- a/libs/gutenberg-mobile
+++ b/libs/gutenberg-mobile
@@ -1 +1 @@
-Subproject commit bffe9d267809f1e336527ca20d805c2207751300
+Subproject commit 891739a9ab4586cce8abb69ad414f55ddd58831d
diff --git a/settings.gradle b/settings.gradle
index 519d72b1874e..c93240da283e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -9,6 +9,12 @@ include ':libs:login:WordPressLoginFlow'
include ':WordPressMocks'
project(':WordPressMocks').projectDir = new File(rootProject.projectDir, properties.getOrDefault('wp.wordpress_mocks_path', 'libs/mocks') + '/WordPressMocks')
+include ':react-native-aztec'
+project(':react-native-aztec').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-aztec/android')
+
+include ':react-native-gutenberg-bridge'
+project(':react-native-gutenberg-bridge').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-gutenberg-bridge/android')
+
if (properties.getOrDefault('wp.BUILD_GUTENBERG_FROM_SOURCE', false).toBoolean()) {
include ':react-native-linear-gradient'
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/react-native-linear-gradient/android')