-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.travis.yml.deactivated
164 lines (164 loc) · 8.33 KB
/
.travis.yml.deactivated
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
jobs:
include:
- os: linux
name: android
if: branch = master
dist: bionic
language: java
jdk: oraclejdk11
env:
- ANDROID_SDK_TOOLS=commandlinetools-linux-6200805_latest.zip
before_install:
- sudo apt update
- sudo apt install ruby-dev libsodium-dev curl zipalign apksigner -y --no-install-recommends
- echo ${ANDROID_BASE64} | base64 -d > release.keystore
- wget -nv https://dl.google.com/android/repository/$ANDROID_SDK_TOOLS
- unzip -q $ANDROID_SDK_TOOLS -d $HOME/sdk
- export PATH=$PATH:$HOME/sdk/tools/bin
- export ANDROID_HOME=$HOME/sdk
- mkdir -p $HOME/.android && touch $HOME/.android/repositories.cfg
- yes | sdkmanager --install "ndk;21.0.6113669" --sdk_root="${ANDROID_HOME}"
- yes | sdkmanager --licenses --sdk_root="${ANDROID_HOME}"
- git clone https://github.com/flutter/flutter.git -b stable --depth 1
- export PATH=$PATH:$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin:$ANDROID_HOME/build-tools/28.0.3/
- flutter doctor
- sudo gem install bundle fastlane rubygems-update bundler
- sudo gem update --system
- bundle update
- echo ${PLAY_JSON_BASE64} | base64 -d > play.json
- bundle exec fastlane supply init --json-key play.json --track alpha
- yes | fastlane install_plugins
before_script:
- echo ${GOOGLE_SERVICES_JSON_BASE64} | base64 -d > android/app/google-services.json
- sed -i "s|ca-app-pub-3940256099942544~3347511713|$ANDROID_ADMOB_APPID|g" ./android/app/src/main/AndroidManifest.xml
- sed -i "s|ca-app-pub-3940256099942544~3347511713|$ANDROID_ADMOB_APPID|g" ./android/app/src/main/res/values/strings.xml
- sed -i "s|ca-app-pub-3940256099942544~3347511713|$ANDROID_ADMOB_APPID|g" ./lib/main.dart
- sed -i "s|RewardedAd.testAdUnitId|\"$ANDROID_REWARDED_ID\"|g" ./lib/utils/ad.dart
- sed -i "s|BannerAd.testAdUnitId|\"$ANDROID_BANNER_ID\"|g" ./lib/menus/difficulty.dart
script:
- flutter analyze --no-preamble --no-congratulate > linting_results.txt || echo ""
- curl -XPOST 'https://hastebin.com/documents' --upload-file linting_results.txt > hastebin.txt && fastlane publishLintingErrors || echo ""
- flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --build-number "$TRAVIS_BUILD_NUMBER"
- flutter build appbundle --target-platform android-arm,android-arm64,android-x64 --build-number "$TRAVIS_BUILD_NUMBER"
# zipalign all the apks and bundles
- zipalign -v -p 4 build/app/outputs/apk/release/app-armeabi-v7a-release.apk ./armeabi-v7a-unsigned.apk
- zipalign -v -p 4 build/app/outputs/apk/release/app-arm64-v8a-release.apk ./arm64-v8a-unsigned.apk
- zipalign -v -p 4 build/app/outputs/apk/release/app-x86_64-release.apk ./x86_64-unsigned.apk
- zipalign -v -p 4 build/app/outputs/bundle/release/app-release.aab ./bundle-unsigned.aab
# sign all the apks and bundles
- apksigner sign -v --ks-pass pass:${ANDROID_PASSWORD} --ks release.keystore --ks-key-alias android --out armeabi-v7a-signed.apk armeabi-v7a-unsigned.apk
- apksigner sign -v --ks-pass pass:${ANDROID_PASSWORD} --ks release.keystore --ks-key-alias android --out arm64-v8a-signed.apk arm64-v8a-unsigned.apk
- apksigner sign -v --ks-pass pass:${ANDROID_PASSWORD} --ks release.keystore --ks-key-alias android --out x86_64-signed.apk x86_64-unsigned.apk
- cp bundle-unsigned.aab bundle-signed.aab
- zip --delete bundle-signed.aab "META-INF/*"
- jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore release.keystore -storepass ${ANDROID_PASSWORD} bundle-signed.aab android
# add a "no-ad" version and sign it
- sed -i "s|const bool ADS_ENABLED_BUQF1EVY = true;|const bool ADS_ENABLED_BUQF1EVY = false;|g" ./lib/main.dart
- flutter build apk --target-platform android-arm,android-arm64,android-x64 --build-number "$TRAVIS_BUILD_NUMBER"
- zipalign -v -p 4 build/app/outputs/apk/release/app-release.apk ./fat-noad-unsigned.apk
- apksigner sign -v --ks-pass pass:${ANDROID_PASSWORD} --ks release.keystore --ks-key-alias android --out fat-noad-signed.apk fat-noad-unsigned.apk
- fastlane android alpha
before_deploy:
- zip unsigned.zip armeabi-v7a-unsigned.apk arm64-v8a-unsigned.apk x86_64-unsigned.apk fat-noad-unsigned.apk bundle-unsigned.aab
- export TRAVIS_TAG="$TRAVIS_BUILD_NUMBER"
- git tag TRAVIS_TAG
deploy:
provider: releases
api_key: "$GITHUB_OAUTH"
file:
- armeabi-v7a-signed.apk
- arm64-v8a-signed.apk
- x86_64-signed.apk
- bundle-signed.aab
- fat-noad-signed.apk
- unsigned.zip
skip_cleanup: true
on:
branch: master
- os: osx
name: apple
if: branch = master
osx_image: xcode12.2
addons:
homebrew:
packages:
- usbmuxd
- libimobiledevice
- ideviceinstaller
- ios-deploy
before_install:
- brew unlink usbmuxd
- brew link usbmuxd
- sudo gem install cocoapods
- git clone https://github.com/flutter/flutter.git -b stable --depth 1
# create signing prerequisites
#- security create-keychain -p "chainPassword" build.keychain
#- security unlock-keychain -p "chainPassword" build.keychain
#- security list-keychains -d user -s build.keychain
#- security default-keychain -s build.keychain
#- echo ${APPLE_BASE64} | base64 -d > cert.p12
#- security import cert.p12 -k build.keychain -P ${APPLE_PASSWORD} -A
#- security set-key-partition-list -S "apple-tool:,apple:" -s -k "chainPassword" build.keychain
#- security set-keychain-settings -u build.keychain
before_script:
# replace the test environment with "real keys"
- echo "$APPLE_GOOGLESERVICES_PLIST_BASE64" | base64 -d > ./ios/Runner/GoogleService-Info.plist
- sed -i .bak "s|ca-app-pub-3940256099942544~3347511713|$APPLE_ADMOB_APPID|g" ./ios/Runner/Info.plist
- sed -i .bak "s|ca-app-pub-3940256099942544~3347511713|$APPLE_ADMOB_APPID|g" ./lib/main.dart
- sed -i .bak "s|RewardedAd.testAdUnitId|\"$APPLE_REWARDED_ID\"|g" ./lib/utils/ad.dart
- sed -i .bak "s|BannerAd.testAdUnitId|\"$APPLE_BANNER_ID\"|g" ./lib/menus/difficulty.dart
- mkdir normal noads
before_deploy:
- cd normal
- mkdir Payload && cd Payload
- ln -s ../Drinkr.app
- cd ..
- zip -r app.ipa Payload
- cd ..
- cd noads
- mkdir Payload && cd Payload
- ln -s ../Drinkr.app
- cd ..
- zip -r app-noads.ipa Payload
- cd ..
# Reopen the keychain because it probably closed in build time
#- security unlock-keychain -p "chainPassword" build.keychain
# Add Signature
#- codesign -vfs "Drinkr" app.ipa --keychain "build.keychain"
# Verify Signature
#- codesign -dv --verbose=4 app.ipa
- export TRAVIS_TAG="$TRAVIS_BUILD_NUMBER"
- git tag TRAVIS_TAG
script:
- flutter/bin/flutter build ios --release --no-codesign --build-number "$TRAVIS_BUILD_NUMBER"
- mv build/ios/iphoneos/Drinkr.app ./normal/Drinkr.app
- sed -i .bak "s|const bool ADS_ENABLED_BUQF1EVY = true;|const bool ADS_ENABLED_BUQF1EVY = false;|g" ./lib/main.dart
- flutter/bin/flutter build ios --release --no-codesign --build-number "$TRAVIS_BUILD_NUMBER"
- mv build/ios/iphoneos/Drinkr.app ./noads/Drinkr.app
before_cache:
- brew cleanup
cache:
directories:
- $HOME/.pub-cache
- $HOME/Library/Caches/Homebrew
deploy:
provider: releases
api_key: "$GITHUB_OAUTH"
file:
- normal/app.ipa
- noads/app-noads.ipa
skip_cleanup: true
on:
branch: master
- os: linux
name: unit_tests
if: branch = master
dist: bionic
language: generic
before_install:
- sudo apt update
- git clone https://github.com/flutter/flutter.git -b stable --depth 1
- export PATH=$PATH:$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin
- flutter doctor
script:
- flutter test