Add base64-encryption #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Reusable workflow for build Android | |
on: | |
workflow_call: | |
inputs: | |
branch: | |
required: true | |
default: develop | |
type: string | |
gradlew-command: | |
required: false | |
type: string | |
default: "false" | |
run-tests: | |
required: false | |
type: boolean | |
default: true | |
keystore-file-name: | |
required: false | |
type: string | |
default: "false" | |
keystore-file-base64: | |
required: false | |
type: string | |
default: "false" | |
secrets: | |
ACALA_PROD_AUTH_TOKEN: | |
required: true | |
ACALA_TEST_AUTH_TOKEN: | |
required: true | |
MOONBEAM_PROD_AUTH_TOKEN: | |
required: true | |
MOONBEAM_TEST_AUTH_TOKEN: | |
required: true | |
MOONPAY_PRODUCTION_SECRET: | |
required: true | |
MOONPAY_TEST_SECRET: | |
required: true | |
EHTERSCAN_API_KEY_MOONBEAM: | |
required: true | |
EHTERSCAN_API_KEY_MOONRIVER: | |
required: true | |
EHTERSCAN_API_KEY_ETHEREUM: | |
required: true | |
INFURA_API_KEY: | |
required: true | |
DWELLIR_API_KEY: | |
required: true | |
WALLET_CONNECT_PROJECT_ID: | |
required: true | |
# Special secrets for signing: | |
CI_MARKET_KEYSTORE_PASS: | |
required: false | |
CI_MARKET_KEYSTORE_KEY_ALIAS: | |
required: false | |
CI_MARKET_KEYSTORE_KEY_PASS: | |
required: false | |
CI_MARKET_KEY_FILE: | |
required: false | |
CI_KEYSTORE_PASS: | |
required: false | |
CI_KEYSTORE_KEY_ALIAS: | |
required: false | |
CI_KEYSTORE_KEY_PASS: | |
required: false | |
CI_GITHUB_KEYSTORE_PASS: | |
required: false | |
CI_GITHUB_KEYSTORE_KEY_ALIAS: | |
required: false | |
CI_GITHUB_KEYSTORE_KEY_PASS: | |
required: false | |
# Secrets for google-services: | |
CI_DEVELOP_GOOGLE_SERVICES: | |
required: true | |
CI_PRODUCTION_GOOGLE_SERVICES: | |
required: true | |
env: | |
ACALA_PROD_AUTH_TOKEN: ${{ secrets.ACALA_PROD_AUTH_TOKEN }} | |
ACALA_TEST_AUTH_TOKEN: ${{ secrets.ACALA_TEST_AUTH_TOKEN }} | |
MOONBEAM_PROD_AUTH_TOKEN: ${{ secrets.MOONBEAM_PROD_AUTH_TOKEN }} | |
MOONBEAM_TEST_AUTH_TOKEN: ${{ secrets.MOONBEAM_TEST_AUTH_TOKEN }} | |
MOONPAY_PRODUCTION_SECRET: ${{ secrets.MOONPAY_PRODUCTION_SECRET }} | |
MOONPAY_TEST_SECRET: ${{ secrets.MOONPAY_TEST_SECRET }} | |
MERCURYO_PRODUCTION_SECRET: ${{ secrets.MERCURYO_PRODUCTION_SECRET }} | |
MERCURYO_TEST_SECRET: ${{ secrets.MERCURYO_TEST_SECRET }} | |
EHTERSCAN_API_KEY_MOONBEAM: ${{ secrets.EHTERSCAN_API_KEY_MOONBEAM }} | |
EHTERSCAN_API_KEY_MOONRIVER: ${{ secrets.EHTERSCAN_API_KEY_MOONRIVER }} | |
EHTERSCAN_API_KEY_ETHEREUM: ${{ secrets.EHTERSCAN_API_KEY_ETHEREUM }} | |
INFURA_API_KEY: ${{ secrets.INFURA_API_KEY }} | |
DWELLIR_API_KEY: ${{ secrets.DWELLIR_API_KEY }} | |
WALLET_CONNECT_PROJECT_ID: ${{ secrets.WALLET_CONNECT_PROJECT_ID }} | |
CI_MARKET_KEYSTORE_PASS: ${{ secrets.CI_MARKET_KEYSTORE_PASS }} | |
CI_MARKET_KEYSTORE_KEY_ALIAS: ${{ secrets.CI_MARKET_KEYSTORE_KEY_ALIAS }} | |
CI_MARKET_KEYSTORE_KEY_PASS: ${{ secrets.CI_MARKET_KEYSTORE_KEY_PASS }} | |
CI_MARKET_KEY_FILE: ${{ secrets.RELEASE_MARKET_KEY_FILE }} | |
CI_KEYSTORE_PASS: ${{ secrets.CI_KEYSTORE_PASS }} | |
CI_KEYSTORE_KEY_ALIAS: ${{ secrets.CI_KEYSTORE_KEY_ALIAS }} | |
CI_KEYSTORE_KEY_PASS: ${{ secrets.CI_KEYSTORE_KEY_PASS }} | |
CI_GITHUB_KEYSTORE_PASS: ${{ secrets.CI_GITHUB_KEYSTORE_PASS }} | |
CI_GITHUB_KEYSTORE_KEY_ALIAS: ${{ secrets.CI_GITHUB_KEYSTORE_KEY_ALIAS }} | |
CI_GITHUB_KEYSTORE_KEY_PASS: ${{ secrets.CI_GITHUB_KEYSTORE_KEY_PASS }} | |
CI_GITHUB_KEYSTORE_KEY_FILE: ${{ secrets.BASE64_GITHUB_KEYSTORE_FILE }} | |
CI_DEVELOP_GOOGLE_SERVICES_FILE: ${{ secrets.CI_DEVELOP_GOOGLE_SERVICES }} | |
CI_PRODUCTION_GOOGLE_SERVICES_FILE: ${{ secrets.CI_PRODUCTION_GOOGLE_SERVICES }} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-app: | |
name: Build app and test | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout particualr branch | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ inputs.branch }} | |
- name: 📂 Set up Google Services for Debug flavor | |
if: ${{ !startsWith(inputs.gradlew-command, 'false') }} | |
uses: timheuer/[email protected] | |
run: | | |
echo "${{ env.CI_DEVELOP_GOOGLE_SERVICES_FILE }}" > ./app/google-services.json | |
echo "${{ env.CI_PRODUCTION_GOOGLE_SERVICES_FILE }}" > ./app/src/release/google-services.json | |
- name: 🔧 Install dependencies | |
uses: ./.github/workflows/install/ | |
- name: 🧪 Run tests | |
if: ${{ inputs.run-tests }} == "true" | |
run: ./gradlew runTest | |
- name: 🔐 Getting github sign key | |
if: ${{ startsWith(inputs.keystore-file-name, 'github_key.jks') }} | |
uses: timheuer/[email protected] | |
with: | |
fileName: ${{ inputs.keystore-file-name }} | |
fileDir: './app/' | |
encodedString: ${{ env.CI_GITHUB_KEYSTORE_KEY_FILE }} | |
- name: 🔐 Getting market sign key | |
if: ${{ startsWith(inputs.keystore-file-name, 'market_key.jks') }} | |
uses: timheuer/[email protected] | |
with: | |
fileName: ${{ inputs.keystore-file-name }} | |
fileDir: './app/' | |
encodedString: ${{ env.CI_MARKET_KEY_FILE }} | |
- name: 🏗 Build app | |
if: ${{ !startsWith(inputs.gradlew-command, 'false') }} | |
run: ./gradlew ${{ inputs.gradlew-command }} | |
- name: 🧹 Delete key after building | |
if: ${{ !startsWith(inputs.keystore-file-name, 'false') }} | |
run: rm ./app/${{ inputs.keystore-file-name }} | |
- name: ➡️ Upload build artifacts | |
if: ${{ !startsWith(inputs.gradlew-command, 'false') }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: apk | |
path: app/build/outputs/apk/ |