name: sample-distribution

on:
  push:
    branches:
      - develop
    paths:
      - examples/SampleApp
jobs:
  build_and_deploy_ios_testflight_qa:
    runs-on: [macos-latest]
    steps:
      - uses: actions/checkout@v2
        with:
          token: ${{ secrets.VERSION_BUMP_TOKEN }}
      - name: Install RubyGems
        run: |
          cd examples/SampleApp/ios
          bundle update --bundler
      - name: RN setup
        run: |
          yarn;
          cd native-package
          yarn;
          cd ../examples/SampleApp
          yarn;
          cd ios
          pod install
      - name: Build and release Testflight QA
        env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
          MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
          APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
          APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
          APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
        run: |
          cd examples/SampleApp/ios
          bundle exec fastlane deploy_to_testflight_qa

  build_and_deploy_android_s3:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: RN setup
        run: |
          yarn add global react-native-cli;
          yarn;
          cd native-package
          yarn;
          cd ../examples/SampleApp
          yarn;
      - name: Build
        run: |
          cd examples/SampleApp
          mkdir android/app/src/main/assets
          mkdir tmp
          yarn react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest tmp
          cd android
          rm -rf $HOME/.gradle/caches/ && ./gradlew assembleRelease

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1
      - name: Upload APK
        run: |
          cp examples/SampleApp/android/app/build/outputs/apk/release/app-release.apk rn-sample-app.apk
          aws s3 cp rn-sample-app.apk s3://${{ secrets.AWS_S3_BUCKET }} --sse AES256
