name: PR Test Build on: pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 # - uses: actions/setup-java@v1 # with: # java-version: '8.x' # # - name: Flutter action # uses: subosito/flutter-action@v1 # with: # flutter-version: '3.3.x' # 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 # git clone https://github.com/cake-tech/cake_wallet.git --branch $GITHUB_HEAD_REF # cd cake_wallet/scripts/android/ # ./install_ndk.sh # source ./app_env.sh cakewallet # ./app_config.sh # ./build_all.sh # ./copy_monero_deps.sh # # - 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 ${{ secrets.STORE_PASS }} -keypass ${{ secrets.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=${{ secrets.STORE_PASS }} keyPassword=${{ secrets.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 # cd cw_core && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. # cd cw_monero && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. # cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. # cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. # flutter packages pub run build_runner build --delete-conflicting-outputs # # - name: Add secrets # run: | # cd /opt/android/cake_wallet # touch lib/.secrets.g.dart # echo "const salt = '${{ secrets.SALT }}';" > lib/.secrets.g.dart # echo "const keychainSalt = '${{ secrets.KEY_CHAIN_SALT }}';" >> lib/.secrets.g.dart # echo "const key = '${{ secrets.KEY }}';" >> lib/.secrets.g.dart # echo "const walletSalt = '${{ secrets.WALLET_SALT }}';" >> lib/.secrets.g.dart # echo "const shortKey = '${{ secrets.SHORT_KEY }}';" >> lib/.secrets.g.dart # echo "const backupSalt = '${{ secrets.BACKUP_SALT }}';" >> lib/.secrets.g.dart # echo "const backupKeychainSalt = '${{ secrets.BACKUP_KEY_CHAIN_SALT }}';" >> lib/.secrets.g.dart # echo "const changeNowApiKey = '${{ secrets.CHANGE_NOW_API_KEY }}';" >> lib/.secrets.g.dart # echo "const wyreSecretKey = '${{ secrets.WYRE_SECRET_KEY }}';" >> lib/.secrets.g.dart # echo "const wyreApiKey = '${{ secrets.WYRE_API_KEY }}';" >> lib/.secrets.g.dart # echo "const wyreAccountId = '${{ secrets.WYRE_ACCOUNT_ID }}';" >> lib/.secrets.g.dart # echo "const moonPayApiKey = '${{ secrets.MOON_PAY_API_KEY }}';" >> lib/.secrets.g.dart # echo "const moonPaySecretKey = '${{ secrets.MOON_PAY_SECRET_KEY }}';" >> lib/.secrets.g.dart # echo "const sideShiftAffiliateId = '${{ secrets.SIDE_SHIFT_AFFILIATE_ID }}';" >> lib/.secrets.g.dart # echo "const sideShiftApiKey = '${{ secrets.SIDE_SHIFT_API_KEY }}';" >> lib/.secrets.g.dart # echo "const simpleSwapApiKey = '${{ secrets.SIMPLE_SWAP_API_KEY }}';" >> lib/.secrets.g.dart # echo "const onramperApiKey = '${{ secrets.ONRAMPER_API_KEY }}';" >> lib/.secrets.g.dart # echo "const anypayToken = '${{ secrets.ANY_PAY_TOKEN }}';" >> lib/.secrets.g.dart # echo "const ioniaClientId = '${{ secrets.IONIA_CLIENT_ID }}';" >> lib/.secrets.g.dart # # - name: Build # run: | # cd /opt/android/cake_wallet # flutter build apk --release # - name: Push to App Center # run: | # echo 'Installing App Center CLI tools' # npm install -g appcenter-cli # echo "Publishing test to App Center" # appcenter distribute release \ # --group "Testers" \ # --file "/opt/android/cake_wallet/build/app/outputs/apk/release/app-release.apk" \ # --release-notes ${GITHUB_HEAD_REF} \ # --app Cake-Labs/Cake-Wallet \ # --token ${{ secrets.APP_CENTER_TOKEN }} \ # --quiet # - name: Send Test APK # run: | # cd /opt/android/cake_wallet # var=$(curl --upload-file build/app/outputs/apk/release/app-release.apk https://transfer.sh/$GITHUB_HEAD_REF.apk) # curl ${{ secrets.SLACK_WEB_HOOK }} -H "Content-Type: application/json" -d '{"apk_link": "'"$var"'","ticket": "'"$GITHUB_HEAD_REF"'"}' # - name: Rename apk # run: | # cd /opt/android/cake_wallet/build/app/outputs/apk/release # mkdir test-apk # mv app-release.apk test-apk/$GITHUB_HEAD_REF.apk - name: Rename apk run: | mkdir test-apk mv pubspec_base.yaml test-apk/$GITHUB_HEAD_REF.apk cd test-apk ls apkPath=pwd/$GITHUB_HEAD_REF.apk echo "====================" echo $apkPath echo "====================" echo "artifactPath=test-apk/$GITHUB_HEAD_REF.apk" >> $GITHUB_ENV echo "artifactPath2=test-apk/\$GITHUB_HEAD_REF.apk" >> $GITHUB_ENV echo "artifactPath3=test-apk/\${{ GITHUB_HEAD_REF.apk }}" >> $GITHUB_ENV echo ${{ env.artifactPath }} echo ${{ env.artifactPath2 }} echo ${{ env.artifactPath3 }} - name: Upload Artifact continue-on-error: true uses: actions/upload-artifact@v3 with: name: test-apks-artifacts path: test-apk/${{ GITHUB_HEAD_REF }}.apk - name: Upload Artifact continue-on-error: true uses: actions/upload-artifact@v3 with: name: test-apks-artifacts path: ${{ apkPath }} - name: Upload Artifact continue-on-error: true uses: actions/upload-artifact@v3 with: name: test-apks-artifacts path: ${{ env.artifactPath }} retention-days: 1 - name: Upload Artifact continue-on-error: true uses: actions/upload-artifact@v3 with: name: test-apks-artifacts path: ${{ env.artifactPath2 }} retention-days: 1 - name: Upload Artifact continue-on-error: true uses: actions/upload-artifact@v3 with: name: test-apks-artifacts path: ${{ env.artifactPath3 }} retention-days: 1