|
1 | 1 | .rn-sdk-workflow: |
2 | | - image: node:24-slim |
3 | 2 | rules: |
4 | 3 | - if: $CI_COMMIT_TAG =~ /^rn-sdk-/ |
5 | 4 | when: always |
6 | 5 | - if: $CI_PIPELINE_SOURCE == "merge_request_event" |
7 | 6 | changes: |
8 | | - - packages/**/* |
9 | | - - apps/**/* |
| 7 | + - packages/react-native/**/* |
10 | 8 | - .gitlab/ci/build_rn_sdk.yml |
11 | 9 | - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS |
12 | 10 | when: never |
13 | 11 | - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH |
14 | 12 | changes: |
15 | | - - packages/**/* |
16 | | - - apps/**/* |
| 13 | + - packages/react-native/**/* |
17 | 14 | - .gitlab/ci/build_rn_sdk.yml |
18 | 15 |
|
| 16 | +rn-android-build: |
| 17 | + extends: .rn-sdk-workflow |
| 18 | + image: $RUST_IMAGE |
| 19 | + stage: build |
| 20 | + rules: |
| 21 | + - !reference [.rn-sdk-workflow, rules] |
| 22 | + - !reference [.rs-core-workflow, rules] |
| 23 | + - !reference [.app-workflow, rules] |
| 24 | + cache: |
| 25 | + - key: |
| 26 | + files: |
| 27 | + - pnpm-lock.yaml |
| 28 | + prefix: ubrn-target |
| 29 | + paths: |
| 30 | + - node_modules/.pnpm/uniffi-bindgen-react-native@*/node_modules/uniffi-bindgen-react-native/target |
| 31 | + script: |
| 32 | + - cd packages/react-native |
| 33 | + - | |
| 34 | + rustup target add \ |
| 35 | + aarch64-linux-android \ |
| 36 | + armv7-linux-androideabi \ |
| 37 | + i686-linux-android \ |
| 38 | + x86_64-linux-android |
| 39 | + - pnpm i |
| 40 | + - pnpm ubrn:android --release |
| 41 | + artifacts: |
| 42 | + paths: |
| 43 | + - packages/react-native/android/src/main/jniLibs |
| 44 | + expire_in: 1 week |
| 45 | + |
| 46 | +.rn-sdk-ios-build: |
| 47 | + extends: .rn-sdk-workflow |
| 48 | + stage: build |
| 49 | + rules: |
| 50 | + - !reference [.rn-sdk-workflow, rules] |
| 51 | + - !reference [.rs-core-workflow, rules] |
| 52 | + - !reference [.app-workflow, rules] |
| 53 | + tags: |
| 54 | + - macscript |
| 55 | + variables: |
| 56 | + GIT_STRATEGY: clone |
| 57 | + before_script: |
| 58 | + - env | grep '^CI_' > .cienv |
| 59 | + artifacts: |
| 60 | + expire_in: 1 week |
| 61 | + |
| 62 | +rn-ios-build: |
| 63 | + extends: .rn-sdk-ios-build |
| 64 | + script: |
| 65 | + - | |
| 66 | + cirrus run buildReactNativeIOS \ |
| 67 | + --artifacts-dir . \ |
| 68 | + --env-file .cienv |
| 69 | + - mkdir -p packages/react-native/ios |
| 70 | + - cp -R buildReactNativeIOS/binary/packages/react-native/ios/. packages/react-native/ios/ |
| 71 | + - cp -R buildReactNativeIOS/xcframework/packages/react-native/PolycentricReactNativeFramework.xcframework packages/react-native/ |
| 72 | + artifacts: |
| 73 | + paths: |
| 74 | + - packages/react-native/ios |
| 75 | + - packages/react-native/PolycentricReactNativeFramework.xcframework |
| 76 | + expire_in: 1 week |
| 77 | + |
| 78 | +rn-ios-tart-prune: |
| 79 | + extends: .rn-sdk-ios-build |
| 80 | + needs: |
| 81 | + - job: rn-ios-build |
| 82 | + artifacts: false |
| 83 | + before_script: [] |
| 84 | + script: |
| 85 | + - tart prune --entries vms --older-than 2 |
| 86 | + |
19 | 87 | .rn-sdk-base: |
20 | 88 | extends: .rn-sdk-workflow |
| 89 | + image: node:24-slim |
21 | 90 | before_script: |
22 | | - - npm install -g pnpm@9.5.0 |
| 91 | + - npm install -g pnpm@10.19.0 |
23 | 92 | - pnpm config set @polycentric:registry https://${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/ |
24 | 93 | - pnpm install |
25 | 94 | needs: |
26 | 95 | - job: js-sdks-build |
27 | 96 | artifacts: true |
28 | | - - job: rs-sdk-build-android-arm64 |
29 | | - artifacts: true |
30 | | - - job: rs-sdk-build-android-armv7 |
| 97 | + - job: rn-android-build |
31 | 98 | artifacts: true |
32 | | - - job: rs-sdk-build-android-x86 |
| 99 | + - job: rn-ios-build |
33 | 100 | artifacts: true |
34 | | - - job: rs-sdk-build-android-x86_64 |
35 | | - artifacts: true |
36 | | - - job: rs-sdk-build-ios-device |
37 | | - artifacts: true |
38 | | - - job: rs-sdk-build-wasm-browser |
| 101 | + - job: rs-core-uniffi-web-build |
39 | 102 | artifacts: true |
40 | 103 |
|
41 | 104 | rn-sdk-build: |
42 | 105 | extends: .rn-sdk-base |
43 | 106 | stage: build |
44 | 107 | script: |
45 | | - - mkdir -p packages/react-native/android/libs/arm64-v8a |
46 | | - - cp target/aarch64-linux-android/release-rs-core/libpolycentric_core.a packages/react-native/android/libs/arm64-v8a/ |
47 | | - - mkdir -p packages/react-native/android/libs/armeabi-v7a |
48 | | - - cp target/armv7-linux-androideabi/release-rs-core/libpolycentric_core.a packages/react-native/android/libs/armeabi-v7a/ |
49 | | - - mkdir -p packages/react-native/android/libs/x86 |
50 | | - - cp target/i686-linux-android/release-rs-core/libpolycentric_core.a packages/react-native/android/libs/x86/ |
51 | | - - mkdir -p packages/react-native/android/libs/x86_64 |
52 | | - - cp target/x86_64-linux-android/release-rs-core/libpolycentric_core.a packages/react-native/android/libs/x86_64/ |
53 | | - - mkdir -p packages/react-native/ios/libs/aarch64-apple-ios |
54 | | - - cp buildRsCoreIOSDevice/binary/libpolycentric_core-ios-device.a packages/react-native/ios/libs/aarch64-apple-ios/libpolycentric_core.a |
55 | 108 | - cd packages/react-native |
56 | 109 | - pnpm build |
57 | 110 | artifacts: |
58 | 111 | paths: |
59 | | - - packages/react-native/lib |
60 | | - - packages/react-native/android/libs |
61 | | - - packages/react-native/ios/libs |
| 112 | + - packages/react-native |
62 | 113 | expire_in: 1 week |
| 114 | + rules: |
| 115 | + - !reference [.rn-sdk-workflow, rules] |
| 116 | + - !reference [.rs-core-workflow, rules] |
| 117 | + - !reference [.app-workflow, rules] |
0 commit comments