-
Notifications
You must be signed in to change notification settings - Fork 3
154 lines (138 loc) · 5.59 KB
/
feature_test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: Feature Test
on:
workflow_dispatch:
inputs:
REALLY_UPLOAD:
required: true
type: boolean
default: true
SENTRY_DISABLE_AUTO_UPLOAD:
required: false
type: boolean
default: true
macos_machine_location:
required: true
type: choice
options:
- 'mobile'
- 'mobile-local'
default: 'mobile'
defaults:
run:
shell: bash -ieol pipefail {0}
jobs:
setup:
name: Build
strategy:
matrix:
include:
- host: macOS
machine_loc: ${{ inputs.macos_machine_location }}
- host: Linux
machine_loc: mobile
runs-on:
- self-hosted
- ${{ matrix.host }}
- ${{ matrix.machine_loc }}
env:
NODE_OPTIONS: '--max_old_space_size=4096'
steps:
- name: Checkout git repo
uses: actions/checkout@v3
- name: Env Test
id: env-test
run: |
echo "whoami $(whoami)"
echo "shell is $(echo $0)"
echo "HOME is $HOME"
echo "which node $(which node)"
- name: '[Linux] Setup Nodejs and Yarn'
if: runner.os == 'Linux'
uses: actions/setup-node@v3
with:
node-version: 18
- name: '[Linux] Setup Ruby & Fastlane'
if: runner.os == 'Linux'
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7.2'
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: '[Linux] Setup Java'
if: runner.os == 'Linux'
uses: actions/setup-java@v3
with:
distribution: 'zulu' # See 'Supported distributions' for available options
java-version: '17'
- name: '[Linux] Setup Android SDK'
if: runner.os == 'Linux'
uses: android-actions/setup-android@v3
- name: '[macOS] Setup Xcode'
if: runner.os == 'macOS'
uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
# use specific version rather than 'latest-stable' if multiple Xcodes installed
xcode-version: '15.3'
- name: Install and build
run: |
echo "REALLY_UPLOAD value: $REALLY_UPLOAD";
cd apps/mobile;
rm -rf node_modules;
yarn install;
bundle install;
OS_TYPE=$(uname -s);
echo "OS_TYPE is $OS_TYPE";
if [ "$OS_TYPE" == "Linux" ]; then
buildchannel=selfhost-reg ./scripts/deploy-android.sh
elif [ "$OS_TYPE" == "Darwin" ]; then
if [ "$INPUT_MOBILE_LOC" == "mobile-local" ]; then
export SENTRY_DISABLE_AUTO_UPLOAD=true
else
RABBY_MOBILE_UNLOCK_KEYCHAIN_PASS=${{ secrets.KEYCHAIN_PASS }}
fi
security unlock-keychain -p $RABBY_MOBILE_UNLOCK_KEYCHAIN_PASS login.keychain
# cd ios && bundle install && bundle exec pod install --deployment;
# cd ../;
./scripts/deploy-ios-adhoc.sh
# cleanup packager
ps axo pid,command | grep -E 'launchPackager\.command' | grep -v grep | awk '{print $1}' | xargs kill -9; > /dev/null 2>&1
fi
env:
KEYCHAIN_PASS: ${{ secrets.KEYCHAIN_PASS }}
RABBY_MOBILE_BUILD_BUCKET: ${{ secrets.RABBY_MOBILE_BUILD_BUCKET }}
RABBY_MOBILE_KR_PWD: ${{ secrets.RABBY_MOBILE_KR_PWD }}
RABBY_MOBILE_CODE: ${{ secrets.RABBY_MOBILE_CODE2 }}
RABBY_MOBILE_ANDROID_KEY_STORE: ${{ secrets.RABBY_MOBILE_ANDROID_KEY_STORE }}
RABBY_MOBILE_ANDROID_KEY_PASSWORD: ${{ secrets.RABBY_MOBILE_ANDROID_KEY_PASSWORD }}
RABBY_MOBILE_ANDROID_KEY_ALIAS: ${{ secrets.RABBY_MOBILE_ANDROID_KEY_ALIAS }}
RABBY_MOBILE_SENTRY_AUTH_TOKEN2: ${{ secrets.RABBY_MOBILE_SENTRY_AUTH_TOKEN2 }}
SENTRY_AUTH_TOKEN: ${{ secrets.RABBY_MOBILE_SENTRY_AUTH_TOKEN2 }}
MATCH_PASSWORD: ${{ secrets.RABBY_MOBILE_MATCH_PASSWORD }}
INPUT_MOBILE_LOC: ${{ inputs.macos_machine_location }}
REALLY_UPLOAD: ${{ inputs.REALLY_UPLOAD }}
SENTRY_DISABLE_AUTO_UPLOAD: ${{ inputs.SENTRY_DISABLE_AUTO_UPLOAD }}
CONFIGURATION: release
TYPE: adhoc
BUILD_ENV: alpha
LARK_CHAT_URL: ${{ secrets.LARK_CHAT_URL }}
LARK_CHAT_SECRET: ${{ secrets.LARK_CHAT_SECRET }}
RABBY_ROBOT_LARK_APP_ID: ${{ secrets.RABBY_ROBOT_LARK_APP_ID }}
RABBY_ROBOT_LARK_APP_SECRET: ${{ secrets.RABBY_ROBOT_LARK_APP_SECRET }}
# see more details on https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
GIT_ACTIONS_JOB_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TRIGGERING_ACTOR: ${{ github.triggering_actor }}
GIT_COMMIT_URL: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}
GIT_REF_NAME: ${{ github.ref_name }}
GIT_REF_URL: ${{ github.server_url }}/${{ github.repository }}/tree/${{ github.ref_name }}
GITHUB_REF: ${{ github.ref }}
# - name: Upload artifact
# uses: actions/upload-artifact@v3
# with:
# name: rabbymobile-${{ steps.actionvars.outputs.flatten_refname }}-${{ steps.actionvars.outputs.trigger_date }}
# path: |
# ./apps/mobile/android/app/build/outputs/apk/regression/release/app-regression-release.apk
# ./apps/mobile/ios/Package/adhoc/*.ipa
# ./apps/mobile/ios/Package/adhoc/manifest.plist
# ./apps/mobile/ios/Package/adhoc/*.zip
# retention-days: 7