-
Notifications
You must be signed in to change notification settings - Fork 6
250 lines (227 loc) · 10.4 KB
/
cake_wallet.yaml
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
name: Build cake_wallet for android
on:
pull_request:
types: [opened, reopened, synchronize]
permissions:
issues: write
pull-requests: write
jobs:
cake_wallet:
runs-on: ubuntu-20.04
env:
STORE_PASS: test@cake_wallet
KEY_PASS: test@cake_wallet
PR_NUMBER: ${{ github.ref_name }}
steps:
- name: set branch name
run: echo "BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV
- uses: actions/checkout@v4
with:
repository: MrCyjaneK/monero_c
fetch-depth: 0
submodules: recursive
- name: Patch sources
run: |
git config --global --add safe.directory '*'
git config --global user.email "[email protected]"
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}-monero
- name: Cache built
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
uses: actions/cache@v4
with:
path: |
*/contrib/depends/built/*
key: depends-${{ github.job }}-monero-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
- name: build monero_c
run: |
./build_single.sh monero aarch64-linux-android -j$(nproc)
./build_single.sh wownero aarch64-linux-android -j$(nproc)
unxz -f -k release/*/*.xz
mv release /opt/monero_c_release
- name: Free Disk Space (Ubuntu)
uses: insightsengineering/disk-space-reclaimer@v1
with:
tools-cache: true
android: false
dotnet: true
haskell: true
large-packages: true
swap-storage: true
docker-images: true
- uses: actions/setup-java@v1
with:
java-version: "11.x"
- name: Configure placeholder git details
run: |
git config --global user.email "[email protected]"
git config --global user.name "Cake Github Actions"
- name: Flutter action
uses: subosito/flutter-action@v1
with:
flutter-version: "3.19.6"
channel: stable
- name: Install package dependencies
run: sudo apt-get install -y curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake clang
- name: Execute Build and Setup Commands
run: |
sudo mkdir -p /opt/android
sudo chown $USER /opt/android
cd /opt/android
-y curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install cargo-ndk
git clone https://github.com/cake-tech/cake_wallet.git --branch main --depth=1
cd cake_wallet/scripts/android/
./install_ndk.sh
source ./app_env.sh cakewallet
chmod +x pubspec_gen.sh
./app_config.sh
mkdir -p /opt/android/cake_wallet/scripts/monero_c
mv /opt/monero_c_release /opt/android/cake_wallet/scripts/monero_c/release
- name: Install Flutter dependencies
run: |
cd /opt/android/cake_wallet
flutter pub get
- name: Generate KeyStore
run: |
cd /opt/android/cake_wallet/android/app
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS
- name: Generate key properties
run: |
cd /opt/android/cake_wallet
flutter packages pub run tool/generate_android_key_properties.dart keyAlias=testKey storeFile=key.jks storePassword=$STORE_PASS keyPassword=$KEY_PASS
- name: Generate localization
run: |
cd /opt/android/cake_wallet
flutter packages pub run tool/generate_localization.dart
- name: Build generated code
run: |
cd /opt/android/cake_wallet
./model_generator.sh
- name: Add secrets
run: |
cd /opt/android/cake_wallet
touch lib/.secrets.g.dart
touch cw_evm/lib/.secrets.g.dart
touch cw_solana/lib/.secrets.g.dart
touch cw_core/lib/.secrets.g.dart
touch cw_nano/lib/.secrets.g.dart
touch cw_tron/lib/.secrets.g.dart
echo "const salt = 'd551f8841584b0ce37edf6fd59177d35';" > lib/.secrets.g.dart
echo "const keychainSalt = '34c626b6a4f8cb6789897c09';" >> lib/.secrets.g.dart
echo "const key = 'd8ab7230137ebadeb1c4e429395eced1';" >> lib/.secrets.g.dart
echo "const walletSalt = 'a9a49562';" >> lib/.secrets.g.dart
echo "const shortKey = 'c1b21c5050527842350dc8f5';" >> lib/.secrets.g.dart
echo "const backupSalt = 'b3e42404f90ca8e8';" >> lib/.secrets.g.dart
echo "const backupKeychainSalt = '9e0f3c4d347bc99509695a86';" >> lib/.secrets.g.dart
echo "const changeNowApiKey = '';" >> lib/.secrets.g.dart
echo "const changeNowApiKeyDesktop = '';" >> lib/.secrets.g.dart
echo "const wyreSecretKey = '';" >> lib/.secrets.g.dart
echo "const wyreApiKey = '';" >> lib/.secrets.g.dart
echo "const wyreAccountId = '';" >> lib/.secrets.g.dart
echo "const moonPayApiKey = '';" >> lib/.secrets.g.dart
echo "const moonPaySecretKey = '';" >> lib/.secrets.g.dart
echo "const sideShiftAffiliateId = '';" >> lib/.secrets.g.dart
echo "const simpleSwapApiKey = '';" >> lib/.secrets.g.dart
echo "const simpleSwapApiKeyDesktop = '';" >> lib/.secrets.g.dart
echo "const onramperApiKey = '';" >> lib/.secrets.g.dart
echo "const anypayToken = '';" >> lib/.secrets.g.dart
echo "const ioniaClientId = '';" >> lib/.secrets.g.dart
echo "const twitterBearerToken = '';" >> lib/.secrets.g.dart
echo "const trocadorApiKey = '';" >> lib/.secrets.g.dart
echo "const trocadorExchangeMarkup = '';" >> lib/.secrets.g.dart
echo "const anonPayReferralCode = '';" >> lib/.secrets.g.dart
echo "const fiatApiKey = '';" >> lib/.secrets.g.dart
echo "const payfuraApiKey = '';" >> lib/.secrets.g.dart
echo "const ankrApiKey = '';" >> lib/.secrets.g.dart
echo "const etherScanApiKey = '';" >> cw_evm/lib/.secrets.g.dart
echo "const moralisApiKey = '';" >> cw_evm/lib/.secrets.g.dart
echo "const chatwootWebsiteToken = '';" >> lib/.secrets.g.dart
echo "const exolixApiKey = '';" >> lib/.secrets.g.dart
echo "const robinhoodApplicationId = '';" >> lib/.secrets.g.dart
echo "const exchangeHelperApiKey = '';" >> lib/.secrets.g.dart
echo "const walletConnectProjectId = '';" >> lib/.secrets.g.dart
echo "const moralisApiKey = '';" >> lib/.secrets.g.dart
echo "const polygonScanApiKey = '';" >> cw_evm/lib/.secrets.g.dart
echo "const ankrApiKey = '';" >> cw_solana/lib/.secrets.g.dart
echo "const testCakePayApiKey = '';" >> lib/.secrets.g.dart
echo "const cakePayApiKey = '';" >> lib/.secrets.g.dart
echo "const authorization = '';" >> lib/.secrets.g.dart
echo "const CSRFToken = '';" >> lib/.secrets.g.dart
echo "const quantexExchangeMarkup = '';" >> lib/.secrets.g.dart
echo "const nano2ApiKey = '';" >> cw_nano/lib/.secrets.g.dart
echo "const nanoNowNodesApiKey = '';" >> cw_nano/lib/.secrets.g.dart
echo "const tronGridApiKey = '';" >> cw_tron/lib/.secrets.g.dart
echo "const tronNowNodesApiKey = '';" >> cw_tron/lib/.secrets.g.dart
- name: Rename app
run: |
echo -e "id=com.cakewallet.moneroc_${{ env.PR_NUMBER }}\nname=${{ github.ref_name }}" | tr '-' '_' > /opt/android/cake_wallet/android/app.properties
- name: Build
run: |
cd /opt/android/cake_wallet
flutter build apk --release --split-per-abi
- name: Rename apk file
run: |
cd /opt/android/cake_wallet/build/app/outputs/flutter-apk
mkdir test-apk
cp app-arm64-v8a-release.apk test-apk/${{ github.ref_name }}.apk
- name: Upload Artifact
uses: kittaakos/upload-artifact-as-is@v0
with:
path: /opt/android/cake_wallet/build/app/outputs/flutter-apk/test-apk/
- name: remove android_ndk
run: |
rm -rf monero/contrib/depends/built/*/android_ndk
rm -rf monero/contrib/depends/sources/android-ndk-r26d-linux.zip
rm -rf wownero/contrib/depends/built/*/android_ndk
rm -rf wownero/contrib/depends/sources/android-ndk-r26d-linux.zip
- uses: actions/github-script@v6
continue-on-error: true
id: get_issue_number
with:
script: |
if (context.issue.number) {
// Return issue number if present
return context.issue.number;
} else {
// Otherwise return issue number from commit
return (
await github.rest.repos.listPullRequestsAssociatedWithCommit({
commit_sha: context.sha,
owner: context.repo.owner,
repo: context.repo.repo,
})
).data[0].number;
}
result-encoding: string
- name: Find Comment
continue-on-error: true
uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{steps.get_issue_number.outputs.result}}
comment-author: 'github-actions[bot]'
body-includes: download cake_wallet
- name: Create or update comment
continue-on-error: true
if: steps.fc.outcome == 'success'
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{steps.get_issue_number.outputs.result}}
body: |
[download cake_wallet #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}})
edit-mode: replace
- name: Create comment
continue-on-error: true
if: steps.fc.outcome == 'failure'
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{steps.get_issue_number.outputs.result}}
body: |
[download cake_wallet #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}}) (this comment will update whenever you push)