Skip to content

Commit 7d1c4e1

Browse files
committed
chore: migrate CI configuration from CircleCI to GitHub Actions and add documentation
1 parent f020aa9 commit 7d1c4e1

File tree

2 files changed

+272
-144
lines changed

2 files changed

+272
-144
lines changed

.circleci/config.yml

Lines changed: 144 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,144 +1,144 @@
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

Comments
 (0)