Skip to content

Commit

Permalink
Merge pull request #11833 from wordpress-mobile/gutenberg/embedded-bu…
Browse files Browse the repository at this point in the history
…ild-no-jitpack

Build gutenberg-mobile locally without JitPack
  • Loading branch information
hypest authored and mchowning committed May 12, 2020
1 parent 79f3e71 commit cff0791
Show file tree
Hide file tree
Showing 8 changed files with 407 additions and 24 deletions.
114 changes: 111 additions & 3 deletions .circleci/config.yml
Expand Up @@ -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 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
Expand All @@ -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 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
Expand All @@ -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 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)
Expand Down Expand Up @@ -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 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
Expand Down Expand Up @@ -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 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
Expand All @@ -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
Expand All @@ -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:
Expand Down

0 comments on commit cff0791

Please sign in to comment.