|
1 | | -### Aliases |
2 | | -aliases: |
3 | | - - &restore_node_modules_base |
4 | | - key: v{{ .Environment.CACHE_VERSION }}-yarn-base-{{ arch }}-{{ checksum "yarn.lock" }} |
5 | | - - &restore_node_modules_packages |
6 | | - key: v{{ .Environment.CACHE_VERSION }}-yarn-packages-{{ arch }}-{{ checksum "yarn.lock" }} |
7 | | - - &install_node_modules |
8 | | - name: Install node_modules |
9 | | - command: yarn install --frozen-lockfile |
10 | | - - &save_node_modules_base |
11 | | - key: v{{ .Environment.CACHE_VERSION }}-yarn-base-{{ arch }}-{{ checksum "yarn.lock" }} |
12 | | - paths: |
13 | | - - ~/.cache/yarn |
14 | | - - node_modules |
15 | | - - &save_node_modules_packages |
16 | | - key: v{{ .Environment.CACHE_VERSION }}-yarn-packages-{{ arch }}-{{ checksum "yarn.lock" }} |
17 | | - paths: |
18 | | - - sample/node_modules |
19 | | - - packages/uikit-chat-hooks/node_modules |
20 | | - - packages/uikit-react-native/node_modules |
21 | | - - packages/uikit-react-native-foundation/node_modules |
22 | | - - packages/uikit-utils/node_modules |
23 | | - - &create_app_env |
24 | | - name: Create env.ts |
25 | | - command: echo "export const APP_ID = '${SENDBIRD_APP_ID}';" >> sample/src/env.ts |
26 | | - |
27 | | -### Circle CI |
28 | | -# Built-in env vars - https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables |
29 | | -# Xcode versions - https://circleci.com/docs/2.0/testing-ios/#supported-xcode-versions |
30 | | -# Cache key template - https://circleci.com/docs/caching/#using-keys-and-templates |
31 | | -version: 2.1 |
32 | | -orbs: |
33 | | - ruby: circleci/ruby@2.1.0 |
34 | | - macos: circleci/macos@2.4.0 |
35 | | - |
36 | | -parameters: |
37 | | - platform: |
38 | | - type: enum |
39 | | - default: 'Noop' |
40 | | - enum: ['All', 'iOS', 'Android', 'Noop'] |
41 | | - version: |
42 | | - type: string |
43 | | - default: '' |
44 | | - |
45 | | -jobs: |
46 | | - deploy-ios: |
47 | | - macos: |
48 | | - xcode: 15.3.0 |
49 | | - resource_class: macos.m1.medium.gen1 |
50 | | - environment: |
51 | | - APP_VERSION: << pipeline.parameters.version >> |
52 | | - steps: |
53 | | - - checkout |
54 | | - - macos/switch-ruby: |
55 | | - version: '3.0.6' |
56 | | - - ruby/install-deps: |
57 | | - key: v{{ .Environment.CACHE_VERSION }}-gems-ios |
58 | | - app-dir: ./sample/ios |
59 | | - - restore_cache: *restore_node_modules_base |
60 | | - - restore_cache: *restore_node_modules_packages |
61 | | - - run: *install_node_modules |
62 | | - - save_cache: *save_node_modules_base |
63 | | - - save_cache: *save_node_modules_packages |
64 | | - - restore_cache: |
65 | | - key: v{{ .Environment.CACHE_VERSION }}-pods-{{ arch }}-{{ checksum "sample/ios/Podfile.lock" }} |
66 | | - - run: |
67 | | - name: Install pods |
68 | | - working_directory: sample/ios |
69 | | - command: bundle exec pod install |
70 | | - - save_cache: |
71 | | - key: v{{ .Environment.CACHE_VERSION }}-pods-{{ arch }}-{{ checksum "sample/ios/Podfile.lock" }} |
72 | | - paths: |
73 | | - - sample/ios/Pods |
74 | | - - run: *create_app_env |
75 | | - - run: |
76 | | - name: Export environments |
77 | | - command: | |
78 | | - echo "export MATCH_PASSWORD=$FASTLANE_IOS_MATCH_PASSWORD" >> $BASH_ENV |
79 | | - echo "export MATCH_GIT_URL=$FASTLANE_IOS_MATCH_GIT_URL" >> $BASH_ENV |
80 | | - echo "export PILOT_USERNAME=$FASTLANE_IOS_APPLE_ID" >> $BASH_ENV |
81 | | - echo "export PILOT_APPLE_ID=$FASTLANE_IOS_ITC_TEAM_ID" >> $BASH_ENV |
82 | | - echo "export PILOT_DEV_PORTAL_TEAM_ID=$FASTLANE_IOS_TEAM_ID" >> $BASH_ENV |
83 | | - echo "export PILOT_ITC_PROVIDER=$FASTLANE_IOS_TEAM_ID" >> $BASH_ENV |
84 | | - echo "export PILOT_SKIP_WAITING_FOR_BUILD_PROCESSING=true" >> $BASH_ENV |
85 | | - echo "export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=$FASTLANE_IOS_APPLE_APPLICATION_SPECIFIC_PASSWORD" >> $BASH_ENV |
86 | | - - run: |
87 | | - name: Run fastlane |
88 | | - command: yarn deploy:ios version:$APP_VERSION |
89 | | - |
90 | | - deploy-android: |
91 | | - docker: |
92 | | - - image: cimg/android:2025.04.1-node |
93 | | - resource_class: xlarge |
94 | | - environment: |
95 | | - APP_VERSION: << pipeline.parameters.version >> |
96 | | - steps: |
97 | | - - checkout |
98 | | - - run: |
99 | | - name: Install Ninja |
100 | | - command: sudo apt-get update && sudo apt-get install -y ninja-build |
101 | | - - ruby/install: |
102 | | - version: '2.7.6' |
103 | | - - ruby/install-deps: |
104 | | - key: v{{ .Environment.CACHE_VERSION }}-gems-android |
105 | | - app-dir: ./sample/android |
106 | | - - restore_cache: *restore_node_modules_base |
107 | | - - restore_cache: *restore_node_modules_packages |
108 | | - - run: *install_node_modules |
109 | | - - save_cache: *save_node_modules_base |
110 | | - - save_cache: *save_node_modules_packages |
111 | | - - run: *create_app_env |
112 | | - - run: |
113 | | - name: Set up trusted certificates |
114 | | - command: | |
115 | | - sudo apt-get update |
116 | | - sudo apt-get install -y ca-certificates |
117 | | - echo 'export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt' >> $BASH_ENV |
118 | | - - run: |
119 | | - name: Create service-account.json |
120 | | - environment: |
121 | | - - FILE_PATH: sample/android/fastlane/service-account.json |
122 | | - command: | |
123 | | - echo "$FASTLANE_ANDROID_SERVICE_ACCOUNT" | base64 --decode >> $FILE_PATH |
124 | | - echo "export GOOGLE_APPLICATION_CREDENTIALS=$CIRCLE_WORKING_DIRECTORY/$FILE_PATH" >> $BASH_ENV |
125 | | - echo "export FIREBASEAPPDISTRO_APP=$FASTLANE_ANDROID_APP_ID" >> $BASH_ENV |
126 | | - - run: |
127 | | - name: Run fastlane |
128 | | - command: yarn deploy:android version:$APP_VERSION |
129 | | - |
130 | | -workflows: |
131 | | - run-ios: |
132 | | - when: |
133 | | - or: |
134 | | - - equal: [<< pipeline.parameters.platform >>, 'All'] |
135 | | - - equal: [<< pipeline.parameters.platform >>, 'iOS'] |
136 | | - jobs: |
137 | | - - deploy-ios |
138 | | - run-android: |
139 | | - when: |
140 | | - or: |
141 | | - - equal: [<< pipeline.parameters.platform >>, 'All'] |
142 | | - - equal: [<< pipeline.parameters.platform >>, 'Android'] |
143 | | - jobs: |
144 | | - - deploy-android |
| 1 | +#### Aliases |
| 2 | +#aliases: |
| 3 | +# - &restore_node_modules_base |
| 4 | +# key: v{{ .Environment.CACHE_VERSION }}-yarn-base-{{ arch }}-{{ checksum "yarn.lock" }} |
| 5 | +# - &restore_node_modules_packages |
| 6 | +# key: v{{ .Environment.CACHE_VERSION }}-yarn-packages-{{ arch }}-{{ checksum "yarn.lock" }} |
| 7 | +# - &install_node_modules |
| 8 | +# name: Install node_modules |
| 9 | +# command: yarn install --frozen-lockfile |
| 10 | +# - &save_node_modules_base |
| 11 | +# key: v{{ .Environment.CACHE_VERSION }}-yarn-base-{{ arch }}-{{ checksum "yarn.lock" }} |
| 12 | +# paths: |
| 13 | +# - ~/.cache/yarn |
| 14 | +# - node_modules |
| 15 | +# - &save_node_modules_packages |
| 16 | +# key: v{{ .Environment.CACHE_VERSION }}-yarn-packages-{{ arch }}-{{ checksum "yarn.lock" }} |
| 17 | +# paths: |
| 18 | +# - sample/node_modules |
| 19 | +# - packages/uikit-chat-hooks/node_modules |
| 20 | +# - packages/uikit-react-native/node_modules |
| 21 | +# - packages/uikit-react-native-foundation/node_modules |
| 22 | +# - packages/uikit-utils/node_modules |
| 23 | +# - &create_app_env |
| 24 | +# name: Create env.ts |
| 25 | +# command: echo "export const APP_ID = '${SENDBIRD_APP_ID}';" >> sample/src/env.ts |
| 26 | +# |
| 27 | +#### Circle CI |
| 28 | +## Built-in env vars - https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables |
| 29 | +## Xcode versions - https://circleci.com/docs/2.0/testing-ios/#supported-xcode-versions |
| 30 | +## Cache key template - https://circleci.com/docs/caching/#using-keys-and-templates |
| 31 | +#version: 2.1 |
| 32 | +#orbs: |
| 33 | +# ruby: circleci/ruby@2.1.0 |
| 34 | +# macos: circleci/macos@2.4.0 |
| 35 | +# |
| 36 | +#parameters: |
| 37 | +# platform: |
| 38 | +# type: enum |
| 39 | +# default: 'Noop' |
| 40 | +# enum: ['All', 'iOS', 'Android', 'Noop'] |
| 41 | +# version: |
| 42 | +# type: string |
| 43 | +# default: '' |
| 44 | +# |
| 45 | +#jobs: |
| 46 | +# deploy-ios: |
| 47 | +# macos: |
| 48 | +# xcode: 15.3.0 |
| 49 | +# resource_class: macos.m1.medium.gen1 |
| 50 | +# environment: |
| 51 | +# APP_VERSION: << pipeline.parameters.version >> |
| 52 | +# steps: |
| 53 | +# - checkout |
| 54 | +# - macos/switch-ruby: |
| 55 | +# version: '3.0.6' |
| 56 | +# - ruby/install-deps: |
| 57 | +# key: v{{ .Environment.CACHE_VERSION }}-gems-ios |
| 58 | +# app-dir: ./sample/ios |
| 59 | +# - restore_cache: *restore_node_modules_base |
| 60 | +# - restore_cache: *restore_node_modules_packages |
| 61 | +# - run: *install_node_modules |
| 62 | +# - save_cache: *save_node_modules_base |
| 63 | +# - save_cache: *save_node_modules_packages |
| 64 | +# - restore_cache: |
| 65 | +# key: v{{ .Environment.CACHE_VERSION }}-pods-{{ arch }}-{{ checksum "sample/ios/Podfile.lock" }} |
| 66 | +# - run: |
| 67 | +# name: Install pods |
| 68 | +# working_directory: sample/ios |
| 69 | +# command: bundle exec pod install |
| 70 | +# - save_cache: |
| 71 | +# key: v{{ .Environment.CACHE_VERSION }}-pods-{{ arch }}-{{ checksum "sample/ios/Podfile.lock" }} |
| 72 | +# paths: |
| 73 | +# - sample/ios/Pods |
| 74 | +# - run: *create_app_env |
| 75 | +# - run: |
| 76 | +# name: Export environments |
| 77 | +# command: | |
| 78 | +# echo "export MATCH_PASSWORD=$FASTLANE_IOS_MATCH_PASSWORD" >> $BASH_ENV |
| 79 | +# echo "export MATCH_GIT_URL=$FASTLANE_IOS_MATCH_GIT_URL" >> $BASH_ENV |
| 80 | +# echo "export PILOT_USERNAME=$FASTLANE_IOS_APPLE_ID" >> $BASH_ENV |
| 81 | +# echo "export PILOT_APPLE_ID=$FASTLANE_IOS_ITC_TEAM_ID" >> $BASH_ENV |
| 82 | +# echo "export PILOT_DEV_PORTAL_TEAM_ID=$FASTLANE_IOS_TEAM_ID" >> $BASH_ENV |
| 83 | +# echo "export PILOT_ITC_PROVIDER=$FASTLANE_IOS_TEAM_ID" >> $BASH_ENV |
| 84 | +# echo "export PILOT_SKIP_WAITING_FOR_BUILD_PROCESSING=true" >> $BASH_ENV |
| 85 | +# echo "export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=$FASTLANE_IOS_APPLE_APPLICATION_SPECIFIC_PASSWORD" >> $BASH_ENV |
| 86 | +# - run: |
| 87 | +# name: Run fastlane |
| 88 | +# command: yarn deploy:ios version:$APP_VERSION |
| 89 | +# |
| 90 | +# deploy-android: |
| 91 | +# docker: |
| 92 | +# - image: cimg/android:2025.04.1-node |
| 93 | +# resource_class: xlarge |
| 94 | +# environment: |
| 95 | +# APP_VERSION: << pipeline.parameters.version >> |
| 96 | +# steps: |
| 97 | +# - checkout |
| 98 | +# - run: |
| 99 | +# name: Install Ninja |
| 100 | +# command: sudo apt-get update && sudo apt-get install -y ninja-build |
| 101 | +# - ruby/install: |
| 102 | +# version: '2.7.6' |
| 103 | +# - ruby/install-deps: |
| 104 | +# key: v{{ .Environment.CACHE_VERSION }}-gems-android |
| 105 | +# app-dir: ./sample/android |
| 106 | +# - restore_cache: *restore_node_modules_base |
| 107 | +# - restore_cache: *restore_node_modules_packages |
| 108 | +# - run: *install_node_modules |
| 109 | +# - save_cache: *save_node_modules_base |
| 110 | +# - save_cache: *save_node_modules_packages |
| 111 | +# - run: *create_app_env |
| 112 | +# - run: |
| 113 | +# name: Set up trusted certificates |
| 114 | +# command: | |
| 115 | +# sudo apt-get update |
| 116 | +# sudo apt-get install -y ca-certificates |
| 117 | +# echo 'export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt' >> $BASH_ENV |
| 118 | +# - run: |
| 119 | +# name: Create service-account.json |
| 120 | +# environment: |
| 121 | +# - FILE_PATH: sample/android/fastlane/service-account.json |
| 122 | +# command: | |
| 123 | +# echo "$FASTLANE_ANDROID_SERVICE_ACCOUNT" | base64 --decode >> $FILE_PATH |
| 124 | +# echo "export GOOGLE_APPLICATION_CREDENTIALS=$CIRCLE_WORKING_DIRECTORY/$FILE_PATH" >> $BASH_ENV |
| 125 | +# echo "export FIREBASEAPPDISTRO_APP=$FASTLANE_ANDROID_APP_ID" >> $BASH_ENV |
| 126 | +# - run: |
| 127 | +# name: Run fastlane |
| 128 | +# command: yarn deploy:android version:$APP_VERSION |
| 129 | +# |
| 130 | +#workflows: |
| 131 | +# run-ios: |
| 132 | +# when: |
| 133 | +# or: |
| 134 | +# - equal: [<< pipeline.parameters.platform >>, 'All'] |
| 135 | +# - equal: [<< pipeline.parameters.platform >>, 'iOS'] |
| 136 | +# jobs: |
| 137 | +# - deploy-ios |
| 138 | +# run-android: |
| 139 | +# when: |
| 140 | +# or: |
| 141 | +# - equal: [<< pipeline.parameters.platform >>, 'All'] |
| 142 | +# - equal: [<< pipeline.parameters.platform >>, 'Android'] |
| 143 | +# jobs: |
| 144 | +# - deploy-android |
0 commit comments