Skip to content

Commit 17a8737

Browse files
fkgozalifacebook-github-bot
authored andcommitted
Codegen Android: update Docker configuration to support codegen (#30268)
Summary: Pull Request resolved: #30268 This addresses the following CI failure: https://app.circleci.com/pipelines/github/facebook/react-native/6847/workflows/36d59aab-bc4a-4d21-9ce1-a8348e71aea3/jobs/173669 The problem was missing directories because we didn't copy the relevant ones for docker build. In addition: * The codegen depends on `invariant`, but didn't specify the dep in package.json. This fixes it. * Also ask Metro to ignore buck-out Note that this will depend on docker image v1.0.5 (to be released later) to fully build. v1.0.5 will need to install `rsync`, see this patch: https://gist.github.com/fkgozali/1d8cae92a5bc521e0f2e4f275008db93. With my test image (of 1.0.5 local build), I got the docker build to pass: ``` $ docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android . [+] Building 1624.2s (27/27) FINISHED => [internal] load build definition from Dockerfile.android 0.0s => => transferring dockerfile: 52B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/reactnativecommunity/react-native-android:1.0.5 0.0s => [1/22] FROM docker.io/reactnativecommunity/react-native-android:1.0.5 0.0s => [internal] load build context 5.6s => => transferring context: 7.11MB 5.5s => CACHED [2/22] ADD .buckconfig /app/.buckconfig 0.0s => CACHED [3/22] ADD .buckjavaargs /app/.buckjavaargs 0.0s => CACHED [4/22] ADD Libraries /app/Libraries 0.0s => CACHED [5/22] ADD ReactAndroid /app/ReactAndroid 0.0s => CACHED [6/22] ADD ReactCommon /app/ReactCommon 0.0s => CACHED [7/22] ADD React /app/React 0.0s => CACHED [8/22] ADD keystores /app/keystores 0.0s => CACHED [9/22] ADD packages/react-native-codegen /app/packages/react-native-codegen 0.0s => CACHED [10/22] ADD tools /app/tools 0.0s => CACHED [11/22] WORKDIR /app 0.0s => CACHED [12/22] RUN buck fetch ReactAndroid/src/test/java/com/facebook/react/modules 0.0s => CACHED [13/22] RUN buck fetch ReactAndroid/src/main/java/com/facebook/react 0.0s => CACHED [14/22] RUN buck fetch ReactAndroid/src/main/java/com/facebook/react/shell 0.0s => CACHED [15/22] RUN buck fetch ReactAndroid/src/test/... 0.0s => CACHED [16/22] RUN buck fetch ReactAndroid/src/androidTest/... 0.0s => CACHED [17/22] RUN buck build ReactAndroid/src/main/java/com/facebook/react 0.0s => CACHED [18/22] RUN buck build ReactAndroid/src/main/java/com/facebook/react/shell 0.0s => [19/22] ADD . /app 28.1s => [20/22] RUN yarn 50.2s => [21/22] RUN ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog 235.8s => [22/22] RUN ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=1 1240.1s => exporting to image 64.2s => => exporting layers 64.2s => => writing image sha256:6449dc629ed12395c9c98d880fb421284193bc9b5d2a77578760a23b5c3c1acd 0.0s => => naming to docker.io/reactnativeci/android ``` To test with a custom local docker image: * https://docs.docker.com/get-started/ (install the Mac client) * git clone https://github.com/react-native-community/docker-android * Make the local change then create the fake v1.0.5 image: * `docker build --tag reactnativecommunity/react-native-android:1.0.5 .` * Run the image from Docker Mac client * Then build RN docker test pasted above. Changelog: [Internal] Reviewed By: shergin Differential Revision: D24611539 fbshipit-source-id: 7435e720bbb2e8d6528ce2a7344f1def15803898
1 parent 306a8ad commit 17a8737

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

.circleci/Dockerfiles/Dockerfile.android

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
2525

2626
ADD .buckconfig /app/.buckconfig
2727
ADD .buckjavaargs /app/.buckjavaargs
28-
ADD tools /app/tools
28+
ADD Libraries /app/Libraries
2929
ADD ReactAndroid /app/ReactAndroid
3030
ADD ReactCommon /app/ReactCommon
3131
ADD React /app/React
3232
ADD keystores /app/keystores
33+
ADD packages/react-native-codegen /app/packages/react-native-codegen
34+
ADD tools /app/tools
3335

3436
WORKDIR /app
3537

@@ -49,4 +51,3 @@ RUN yarn
4951
RUN ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog
5052

5153
RUN ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=1
52-

metro.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const getPolyfills = require('./rn-get-polyfills');
1818
*/
1919
module.exports = {
2020
resolver: {
21+
// $FlowFixMe[signature-verification-failure] Can't infer RegExp type.
22+
blacklistRE: /buck-out/,
2123
extraNodeModules: {
2224
'react-native': __dirname,
2325
},

packages/react-native-codegen/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"@babel/plugin-transform-flow-strip-types": "^7.0.0",
3535
"chalk": "^4.0.0",
3636
"glob": "^7.1.1",
37+
"invariant": "^2.2.4",
3738
"micromatch": "^4.0.2",
3839
"mkdirp": "^0.5.1",
3940
"prettier": "1.19.1"

0 commit comments

Comments
 (0)