name: Dash Wallet CI on: push: branches: [ master ] pull_request: branches: [ master, feature-*, bugfix-* ] jobs: build: runs-on: ubuntu-latest steps: - name: Get build number from run id run: | echo "build_number=$((70000))" >> $GITHUB_ENV - name: Get the support email env: SUPPORT_EMAIL: "${{ secrets.INTERNAL_SUPPORT_EMAIL }}" run: | echo "SUPPORT_EMAIL=$SUPPORT_EMAIL" >> $GITHUB_ENV - uses: actions/checkout@v3 - name: set up JDK uses: actions/setup-java@v3 with: java-version: '17' distribution: 'adopt' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.0.3' - name: Generate cache key run: bash .deploy/checksum.sh checksum.txt - name: Gem caching uses: actions/cache@v4 continue-on-error: true with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | ${{ runner.os }}-gems- - name: Setup fastlane run: | gem install bundler:2.2.26 gem install google-cloud-storage bundle config path vendor/bundle bundle install --jobs 4 --retry 3 - name: Cache Gradle packages uses: actions/cache@v4 continue-on-error: true with: path: | ~/.gradle/caches/modules-* ~/.gradle/caches/jars-* ~/.gradle/caches/build-cache-* key: ${{ runner.os }}-gradle-${{ hashFiles('checksum.txt') }} - name: Decrypt secrets run: | gpg -d --passphrase "${{ secrets.KEYSTORE_KEY }}" --batch .deploy/keystore.jks.gpg > .deploy/keystore.jks - name: Extract Secrets run: | echo "$GOOGLE_SERVICES_JSON" > wallet/google-services.json echo "$SERVICE_PROPERTIES" > service.properties echo "$LOCAL_PROPERTIES" > local.properties echo "$APP_DISTRIBUTION_KEY_JSON" > .deploy/app-distribution-key.json echo "$GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON" > .deploy/gc-storage-service-account.json env: GOOGLE_SERVICES_JSON : ${{secrets.GOOGLE_SERVICES_JSON}} SERVICE_PROPERTIES: ${{secrets.SERVICE_PROPERTIES}} LOCAL_PROPERTIES: ${{secrets.LOCAL_PROPERTIES}} APP_DISTRIBUTION_KEY_JSON: ${{secrets.APP_DISTRIBUTION_KEY_JSON}} GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON: ${{secrets.GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON}} - name: Test run: bundle exec fastlane test flavor:"" type:"debug" - name: Build if: github.event_name == 'pull_request' run: bundle exec fastlane build flavor:"_testNet3" type:"release" storepass:"${{ secrets.SIGNING_STORE_PASS }}" versioncode:"${{ env.build_number }}" - name: TestNet Build and Firebase Distribution if: github.event_name == 'push' run: bundle exec fastlane build_distribute flavor:"_testNet3" type:"release" storepass:"${{ secrets.SIGNING_STORE_PASS }}" versioncode:"${{ env.build_number }}" comment:"Up to date Dash Wallet TestNet build" appid:"1:1039839682638:android:3202b16d460a1a88" testgroup:"qa" SUPPORT_EMAIL:"${{ secrets.INTERNAL_SUPPORT_EMAIL }}" - name: Production Build and Firebase Distribution if: github.event_name == 'push' run: bundle exec fastlane build_distribute flavor:"prod" type:"release" storepass:"${{ secrets.SIGNING_STORE_PASS }}" versioncode:"${{ env.build_number }}" comment:"Up to date Dash Wallet Production build" appid:"1:1039839682638:android:989eecd6db36de6a" testgroup:"qa" SUPPORT_EMAIL:"${{ secrets.INTERNAL_SUPPORT_EMAIL }}"