From 613e568fe4cd08d695d3b5c0a07de61b0ff05bbc Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Fri, 6 Mar 2020 13:48:28 +0900 Subject: [PATCH 01/13] feat: migrate appveyor to circleci --- .appveyor/config.yml | 47 ---------------------------- .circleci/config.yml | 73 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 47 deletions(-) delete mode 100644 .appveyor/config.yml diff --git a/.appveyor/config.yml b/.appveyor/config.yml deleted file mode 100644 index 7d8a034921dd..000000000000 --- a/.appveyor/config.yml +++ /dev/null @@ -1,47 +0,0 @@ -environment: - ANDROID_HOME: "C:\\android-sdk-windows" - ANDROID_NDK: "C:\\android-sdk-windows\\android-ndk-r19c" - ANDROID_BUILD_VERSION: 28 - ANDROID_TOOLS_VERSION: 29.0.2 - - GRADLE_OPTS: -Dorg.gradle.daemon=false - - SDK_TOOLS_URL: https://dl.google.com/android/repository/sdk-tools-windows-3859397.zip - NDK_TOOLS_URL: https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip - - matrix: - - nodejs_version: 10 - - nodejs_version: 12 - -install: - # Install Android SDK Tools - - mkdir "%ANDROID_HOME%" - - appveyor DownloadFile "%SDK_TOOLS_URL%" -FileName "%TMP%/sdk-tools.zip" - - 7z x "%TMP%/sdk-tools.zip" -o"%ANDROID_HOME%" > nul - - set PATH=%PATH%;"%ANDROID_HOME%\tools\bin" - - - yes 2> nul | sdkmanager --licenses > nul - - yes 2> nul | sdkmanager "system-images;android-19;google_apis;armeabi-v7a" - - yes 2> nul | sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%" - - yes 2> nul | sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%" - - yes 2> nul | sdkmanager "add-ons;addon-google_apis-google-23" - - yes 2> nul | sdkmanager "extras;android;m2repository" - - - appveyor DownloadFile "%NDK_TOOLS_URL%" -FileName "%TMP%/ndk.zip" - - 7z x "%TMP%/ndk.zip" -o"%ANDROID_HOME%" > nul - - - ps: Install-Product node $env:nodejs_version x64 - - npx envinfo@latest - - appveyor-retry yarn install - -build_script: - - yarn run flow-check-android - - yarn run flow-check-ios - - yarn run test - # - gradlew.bat RNTester:android:app:assembleRelease - -cache: - - node_modules - - "%LOCALAPPDATA%/Yarn" - - "%USERPROFILE%/.gradle/caches" - - "%USERPROFILE%/.gradle/wrapper" diff --git a/.circleci/config.yml b/.circleci/config.yml index d4ee7413b1fe..a361faa005f5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,5 +1,12 @@ version: 2.1 +# ------------------------- +# ORBS +# ------------------------- + +orbs: + win: circleci/windows@2.4.0 + # ------------------------- # DEFAULTS # ------------------------- @@ -8,6 +15,7 @@ defaults: &defaults environment: - GIT_COMMIT_DESC: git log --format=oneline -n 1 $CIRCLE_SHA1 + # ------------------------- # EXECUTORS # ------------------------- @@ -74,6 +82,25 @@ commands: - ~/.cache/yarn key: v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} + run_yarn_windows: + steps: + - restore_cache: + keys: + - v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} + - v4-yarn-cache-{{ arch }} + - run: + name: Run Yarn + command: | + # Skip yarn install on metro bump commits as the package is not yet + # available on npm + if [[ $(echo "$GIT_COMMIT_DESC" | grep -c "Bump metro@") -eq 0 ]]; then + yarn install --non-interactive --cache-folder "%LOCALAPPDATA%/Yarn" + fi + - save_cache: + paths: + - "%LOCALAPPDATA%/Yarn" + key: v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} + install_buck_tooling: steps: - restore_cache: @@ -628,6 +655,52 @@ jobs: command: | echo "Nightly build run" + # ------------------------- + # JOBS: Windows + # ------------------------- + windows_job: + executor: + name: win/default + environment: + - ANDROID_HOME: "C:\\android-sdk-windows" + - ANDROID_NDK: "C:\\android-sdk-windows\\android-ndk-r19c" + - ANDROID_BUILD_VERSION: 28 + - ANDROID_TOOLS_VERSION: 29.0.2 + - GRADLE_OPTS: -Dorg.gradle.daemon=false + - SDK_TOOLS_URL: https://dl.google.com/android/repository/sdk-tools-windows-3859397.zip + - NDK_TOOLS_URL: https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip + steps: + - restore_cache_checkout: + checkout_type: windows + - run: + name: Install Android SDK Tools + command: | + mkdir "%ANDROID_HOME%" + curl -fsS -o "%TMP%/sdk-tools.zip" "%SDK_TOOLS_URL%" + 7z x "%TMP%/sdk-tools.zip" -o"%ANDROID_HOME%" > nul + set PATH=%PATH%;"%ANDROID_HOME%\tools\bin" + yes 2> nul | sdkmanager --licenses > nul + yes 2> nul | sdkmanager "system-images;android-19;google_apis;armeabi-v7a" + yes 2> nul | sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%" + yes 2> nul | sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%" + yes 2> nul | sdkmanager "add-ons;addon-google_apis-google-23" + yes 2> nul | sdkmanager "extras;android;m2repository" + curl -fsS -o "%TMP%/ndk.zip" "%NDK_TOOLS_URL%" + 7z x "%TMP%/ndk.zip" -o"%ANDROID_HOME%" > nul + - run: + name: Get Env info + command: npx envinfo@latest + - run_yarn_windows + - run: + name: Flow Check Android + command: yarn flow-check-android + - run: + name: Flow Check iOS + command: yarn flow-check-ios + - run: + name: Run Test + command: yarn test + # ------------------------- # WORK FLOWS # ------------------------- From b6a52a2132a7cae8481d0b0208fd411a5d79f84a Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Fri, 6 Mar 2020 13:54:58 +0900 Subject: [PATCH 02/13] feat: add windows in circleci workflow --- .circleci/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a361faa005f5..fa868bf0b669 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -808,7 +808,9 @@ workflows: - js_coverage: requires: - setup - + windows: + jobs: + - windows_job nightly: triggers: - schedule: @@ -819,3 +821,4 @@ workflows: - master jobs: - nightly_job + \ No newline at end of file From 5d2cc95aac0be2a5c19848594b9e018ef64f4969 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Fri, 6 Mar 2020 14:36:03 +0900 Subject: [PATCH 03/13] feat: add checkout script --- .circleci/config.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fa868bf0b669..cb680c2ddd00 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -671,7 +671,13 @@ jobs: - NDK_TOOLS_URL: https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip steps: - restore_cache_checkout: - checkout_type: windows + checkout_type: windows + - run: + name: Install Curl + command: choco install curl + - run: + name: Install 7zip + command: choco install curl - run: name: Install Android SDK Tools command: | @@ -687,6 +693,9 @@ jobs: yes 2> nul | sdkmanager "extras;android;m2repository" curl -fsS -o "%TMP%/ndk.zip" "%NDK_TOOLS_URL%" 7z x "%TMP%/ndk.zip" -o"%ANDROID_HOME%" > nul + - run: + name: Install Yarn + command: choco install yarn - run: name: Get Env info command: npx envinfo@latest @@ -810,6 +819,10 @@ workflows: - setup windows: jobs: + - setup: + name: setup_windows + checkout_type: windows + executor: win/default - windows_job nightly: triggers: From 775486815243a9e9c1dabbecd4b2d8f539ddff7b Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Fri, 6 Mar 2020 15:54:51 +0900 Subject: [PATCH 04/13] feat: update android sdk script for circle ci windows --- .circleci/config.yml | 65 ++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb680c2ddd00..6da31afc246a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -82,25 +82,6 @@ commands: - ~/.cache/yarn key: v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} - run_yarn_windows: - steps: - - restore_cache: - keys: - - v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} - - v4-yarn-cache-{{ arch }} - - run: - name: Run Yarn - command: | - # Skip yarn install on metro bump commits as the package is not yet - # available on npm - if [[ $(echo "$GIT_COMMIT_DESC" | grep -c "Bump metro@") -eq 0 ]]; then - yarn install --non-interactive --cache-folder "%LOCALAPPDATA%/Yarn" - fi - - save_cache: - paths: - - "%LOCALAPPDATA%/Yarn" - key: v4-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }} - install_buck_tooling: steps: - restore_cache: @@ -673,33 +654,37 @@ jobs: - restore_cache_checkout: checkout_type: windows - run: - name: Install Curl - command: choco install curl + name: Install Android SDK Tools + command: choco install android-sdk - run: - name: Install 7zip - command: choco install curl + name: Setup SDK + command: sdkmanager --licenses > nul + - run: sdkmanager "system-images;android-19;google_apis;armeabi-v7a" + - run: sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%" + - run: sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%" + - run: sdkmanager "add-ons;addon-google_apis-google-23" + - run: sdkmanager "extras;android;m2repository" - run: name: Install Android SDK Tools - command: | - mkdir "%ANDROID_HOME%" - curl -fsS -o "%TMP%/sdk-tools.zip" "%SDK_TOOLS_URL%" - 7z x "%TMP%/sdk-tools.zip" -o"%ANDROID_HOME%" > nul - set PATH=%PATH%;"%ANDROID_HOME%\tools\bin" - yes 2> nul | sdkmanager --licenses > nul - yes 2> nul | sdkmanager "system-images;android-19;google_apis;armeabi-v7a" - yes 2> nul | sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%" - yes 2> nul | sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%" - yes 2> nul | sdkmanager "add-ons;addon-google_apis-google-23" - yes 2> nul | sdkmanager "extras;android;m2repository" - curl -fsS -o "%TMP%/ndk.zip" "%NDK_TOOLS_URL%" - 7z x "%TMP%/ndk.zip" -o"%ANDROID_HOME%" > nul + command: choco install android-ndk + - restore_cache: + keys: + - v5-win-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }} + - v5-win-node-{{ arch }}-{{ .Branch }}- + - v5-win-node-{{ arch }}- - run: name: Install Yarn command: choco install yarn - run: name: Get Env info command: npx envinfo@latest - - run_yarn_windows + - run: + name: Install Dependencies + command: yarn install --frozen-lockfile --non-interactive + - save_cache: + key: v5-win-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - C:\Users\circleci\AppData\Local\Yarn - run: name: Flow Check Android command: yarn flow-check-android @@ -709,6 +694,11 @@ jobs: - run: name: Run Test command: yarn test + - save_cache: + key: v5-win-node-{{ arch }}-{{ .Branch }}-{{ checksum ".gradle" }} + paths: + - "%USERPROFILE%/.gradle/caches" + - "%USERPROFILE%/.gradle/wrapper" # ------------------------- # WORK FLOWS @@ -834,4 +824,3 @@ workflows: - master jobs: - nightly_job - \ No newline at end of file From 650d8de6b0f8699d577c5c4ba77cdc3014e8ccd9 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 09:51:23 +0900 Subject: [PATCH 05/13] feat: fix windows ci error --- .circleci/config.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6da31afc246a..2fca3af2ec51 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -648,8 +648,8 @@ jobs: - ANDROID_BUILD_VERSION: 28 - ANDROID_TOOLS_VERSION: 29.0.2 - GRADLE_OPTS: -Dorg.gradle.daemon=false - - SDK_TOOLS_URL: https://dl.google.com/android/repository/sdk-tools-windows-3859397.zip - - NDK_TOOLS_URL: https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip + - NDK_VERSION: 20.0.5594570 + steps: - restore_cache_checkout: checkout_type: windows @@ -658,15 +658,13 @@ jobs: command: choco install android-sdk - run: name: Setup SDK - command: sdkmanager --licenses > nul + command: sdkmanager --licenses - run: sdkmanager "system-images;android-19;google_apis;armeabi-v7a" - run: sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%" - run: sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%" - run: sdkmanager "add-ons;addon-google_apis-google-23" - run: sdkmanager "extras;android;m2repository" - - run: - name: Install Android SDK Tools - command: choco install android-ndk + - run: sdkmanager "ndk;%NDK_VERSION%" - restore_cache: keys: - v5-win-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }} @@ -691,6 +689,9 @@ jobs: - run: name: Flow Check iOS command: yarn flow-check-ios + - run: + name: Test Android Build + command: gradlew.bat RNTester:android:app:assembleRelease - run: name: Run Test command: yarn test From 0285248aae249bb1a5f3b4cf9e464f63d981d7b4 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 18:51:44 +0900 Subject: [PATCH 06/13] fix: checkout windows ci --- .circleci/config.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2fca3af2ec51..253a806c0146 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -649,10 +649,8 @@ jobs: - ANDROID_TOOLS_VERSION: 29.0.2 - GRADLE_OPTS: -Dorg.gradle.daemon=false - NDK_VERSION: 20.0.5594570 - steps: - - restore_cache_checkout: - checkout_type: windows + - checkout - run: name: Install Android SDK Tools command: choco install android-sdk @@ -810,10 +808,6 @@ workflows: - setup windows: jobs: - - setup: - name: setup_windows - checkout_type: windows - executor: win/default - windows_job nightly: triggers: From 1c7f19a01624bca57b99577633c19c1b655159e8 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 19:04:58 +0900 Subject: [PATCH 07/13] fix: command for gradlew.bat --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 253a806c0146..e74936c52a6d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -689,7 +689,7 @@ jobs: command: yarn flow-check-ios - run: name: Test Android Build - command: gradlew.bat RNTester:android:app:assembleRelease + command: ./gradlew.bat RNTester:android:app:assembleRelease - run: name: Run Test command: yarn test From 7b9208efd35c93ffdfa2ff52c487e81795f87903 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 19:55:49 +0900 Subject: [PATCH 08/13] chore: remove appveyor from readme and set install location for sdk --- .circleci/config.yml | 2 +- README.md | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e74936c52a6d..08c37e07d8e2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -653,7 +653,7 @@ jobs: - checkout - run: name: Install Android SDK Tools - command: choco install android-sdk + command: "choco install android-sdk --install-directory=%ANDROID_HOME%" - run: name: Setup SDK command: sdkmanager --licenses diff --git a/README.md b/README.md index 550934987989..8a9d89887480 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,6 @@ Current CircleCI build status. - - Current Appveyor build status. - Current npm package version. From 72bceb1e93ed8a3c0f8c7d34a5bfea3591370d2c Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 20:15:57 +0900 Subject: [PATCH 09/13] fix: android home path --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 08c37e07d8e2..e8400d9be71a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -643,8 +643,8 @@ jobs: executor: name: win/default environment: - - ANDROID_HOME: "C:\\android-sdk-windows" - - ANDROID_NDK: "C:\\android-sdk-windows\\android-ndk-r19c" + - ANDROID_HOME: "C:\\Android\\android-sdk" + - ANDROID_NDK: "C:\\Android\\android-sdk\\android-ndk-r20" - ANDROID_BUILD_VERSION: 28 - ANDROID_TOOLS_VERSION: 29.0.2 - GRADLE_OPTS: -Dorg.gradle.daemon=false @@ -653,7 +653,7 @@ jobs: - checkout - run: name: Install Android SDK Tools - command: "choco install android-sdk --install-directory=%ANDROID_HOME%" + command: "choco install android-sdk - run: name: Setup SDK command: sdkmanager --licenses From 95cbbc5f7f84d89d790493719baecee07a7ec29d Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Wed, 11 Mar 2020 20:17:13 +0900 Subject: [PATCH 10/13] fix: typo --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e8400d9be71a..e15af3829484 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -653,7 +653,7 @@ jobs: - checkout - run: name: Install Android SDK Tools - command: "choco install android-sdk + command: choco install android-sdk - run: name: Setup SDK command: sdkmanager --licenses From 2e981860e9ff36a1a970d23c3c41d469197f5cfa Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Thu, 12 Mar 2020 10:52:33 +0900 Subject: [PATCH 11/13] fix: change ndk path --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e15af3829484..534bf09bff43 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -644,7 +644,7 @@ jobs: name: win/default environment: - ANDROID_HOME: "C:\\Android\\android-sdk" - - ANDROID_NDK: "C:\\Android\\android-sdk\\android-ndk-r20" + - ANDROID_NDK: "C:\\Android\\android-sdk\\ndk\\20.0.5594570" - ANDROID_BUILD_VERSION: 28 - ANDROID_TOOLS_VERSION: 29.0.2 - GRADLE_OPTS: -Dorg.gradle.daemon=false From af309330fa68fedfa5879ff1104347f113300903 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Thu, 19 Mar 2020 00:19:06 +0900 Subject: [PATCH 12/13] chore: downgrade ndk --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 534bf09bff43..a6d52e9c28fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -644,11 +644,11 @@ jobs: name: win/default environment: - ANDROID_HOME: "C:\\Android\\android-sdk" - - ANDROID_NDK: "C:\\Android\\android-sdk\\ndk\\20.0.5594570" + - ANDROID_NDK: "C:\\Android\\android-sdk\\ndk\\19.2.5345600" - ANDROID_BUILD_VERSION: 28 - ANDROID_TOOLS_VERSION: 29.0.2 - GRADLE_OPTS: -Dorg.gradle.daemon=false - - NDK_VERSION: 20.0.5594570 + - NDK_VERSION: 19.2.5345600 steps: - checkout - run: From 818ec67868aa927ae5fe0c93e97b87997776cd7b Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Fri, 27 Mar 2020 09:58:17 +0900 Subject: [PATCH 13/13] chore: temporarily comment out the android build test --- .circleci/config.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 44d1eb4d7e56..4a6f722166fd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -688,9 +688,10 @@ jobs: - run: name: Flow Check iOS command: yarn flow-check-ios - - run: - name: Test Android Build - command: ./gradlew.bat RNTester:android:app:assembleRelease + # TODO: reenable this test + # - run: + # name: Test Android Build + # command: ./gradlew.bat RNTester:android:app:assembleRelease - run: name: Run Test command: yarn test