diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..5e64230 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,58 @@ +name: Deploy to Internal App Sharing +on: + workflow_dispatch: +jobs: + deploy-internal: + runs-on: ubuntu-latest + env: + KEYSTORE_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} + KEYSTORE_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_STORE_PASSPHRASE }} + KEYSTORE_STORE_PASSWORD: ${{ secrets.SIGNING_KEY_STORE_PASSPHRASE }} + steps: + - name: Checkout + uses: actions/checkout@v4.0.0 + # Decrypt release keystore and release properties file from github secrets + - name: Decrypt files + id: decrypt_files + run: | + # Creating encrypted keystore file from secret saved on GitHub + echo "${{ secrets.RELEASE_KEYSTORE }}" > release.jks.asc + # Decrypting keystore from passphrase(saved as secret) used earlier for encryption + gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_DECRYPT_PASSPHRASE }}" --batch release.jks.asc > config/release_keystore.jks + # Creating encrypted play service account file from saved secret. + echo "${{ secrets.PLAY_SERVICE_ACCOUNT}}" > api-7730997362032805480-382486-3308f76b1b64.json.asc + # Decrypting play service account with passphrase(saved as secret) used earlier for encryption + gpg -d --passphrase "${{ secrets.PLAY_SERVICE_ACCOUNT_DECRYPT_PASSPHRASE }}" --batch api-7730997362032805480-382486-3308f76b1b64.json.asc > config/api-7730997362032805480-382486-3308f76b1b64.json + echo "storeFile=config/release_keystore.jks" >> keystore.properties + echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> keystore.properties + echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> keystore.properties + echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> keystore.properties + + # Setting up ruby on the machine + - name: Set up Ruby + id: set_up_ruby + uses: ruby/setup-ruby@v1.152.0 + with: + ruby-version: '3.2' + bundler-cache: true + + - name: Setup Java JDK + uses: actions/setup-java@v3.12.0 + with: + java-version: 17.0.6+10 + distribution: adopt + cache: gradle + + # Validate service account json on fastlane + - name: Test fastlane + id: test_fastlane + run: | + bundle exec fastlane run validate_play_store_json_key json_key:config/api-7730997362032805480-382486-3308f76b1b64.json + + # Assemble AAB and upload to playstore internal sharing + - name: Upload to internal app sharing + id: internal_app_share + run: | + bundle exec fastlane upload_playstore_internal + +