name: Build Production on: [workflow_dispatch] jobs: android: defaults: run: working-directory: ./packages/mobile runs-on: ubuntu-latest timeout-minutes: 45 steps: - name: Checkout code uses: actions/checkout@v2 - name: Export version from package.json run: echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4)" >> $GITHUB_ENV - name: Setup react-native kernel and increase watchers run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - name: Decode Production Android keystore run: | echo "${{ secrets.ANDROID_KEYSTORE }}" > keystore.keystore.asc gpg -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch keystore.keystore.asc > android/app/keystore.keystore - name: Install dependencies run: yarn install - name: Ruby Setup for Fastlane uses: ruby/setup-ruby@v1 - name: fastlane uses: maierj/fastlane-action@v1.4.0 env: PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} BUILD_NUMBER: ${{ github.run_number }} ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }} ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD }} ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} GOOGLE_PLAY_JSON_KEY_DATA: ${{ secrets.GOOGLE_PLAY_JSON_KEY_DATA }} with: lane: 'android prod' - name: Upload universal apk to artifacts uses: actions/upload-artifact@v2 with: name: prod.apk path: android/app/build/outputs/apk/prod/release/app-prod-release.apk - name: Upload Android App Bundle to artifacts uses: actions/upload-artifact@v2 with: name: release.aab path: android/app/build/outputs/bundle/prodRelease/app-prod-release.aab ios: defaults: run: working-directory: ./packages/mobile runs-on: macos-11 timeout-minutes: 90 steps: - name: Checkout code uses: actions/checkout@v2 - name: Export version from package.json run: echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4)" >> $GITHUB_ENV - name: Set longer yarn timeout run: yarn config set network-timeout 300000 - name: Install dependencies run: yarn run init - name: Set ssh connection to Github uses: webfactory/ssh-agent@v0.4.1 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Export Apple AppStore Connect API key run: echo "${{ secrets.APPSTORE_CONNECT_KEY }}" > ios/Authkey.p8 - name: Ruby Setup for Fastlane uses: ruby/setup-ruby@v1 - name: Setup fastlane uses: maierj/fastlane-action@v1.4.0 env: FASTLANE_USER: ${{ secrets.FASTLANE_USER }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} with: lane: 'ios setup' - name: fastlane uses: maierj/fastlane-action@v1.4.0 env: PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} APPLE_APP_ID: ${{ secrets.APP_APPLE_ID }} APPSTORE_CONNECT_KEY_ID: ${{ secrets.APPSTORE_CONNECT_KEY_ID }} APPSTORE_CONNECT_KEY_ISSUER_ID: ${{ secrets.APPSTORE_CONNECT_KEY_ISSUER_ID }} FASTLANE_USER: ${{ secrets.FASTLANE_USER }} FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} MATCH_CERTIFICATES_URL: ${{ secrets.MATCH_CERTIFICATES_URL }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} BUILD_NUMBER: ${{ github.run_number }} with: lane: 'ios prod'