name: build on: push: branches: - main workflow_dispatch: defaults: run: working-directory: packages/stream_chat_v1 concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build_and_deploy_ios: runs-on: macos-latest timeout-minutes: 40 steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Flutter uses: subosito/flutter-action@v2 with: channel: stable cache: true - name: Setup Ruby and Gems uses: ruby/setup-ruby@v1 with: working-directory: packages/stream_chat_v1/ios bundler-cache: true - name: Copy production config run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart - name: Build and release env: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} FASTLANE_USER: ${{ secrets.FASTLANE_USER }} FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }} FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }} run: | flutter build ios --no-codesign cd ios bundle exec fastlane deploy_to_testflight build_and_deploy_android: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Flutter uses: subosito/flutter-action@v2 with: channel: stable cache: true - name: Setup Java uses: actions/setup-java@v1 with: java-version: '12.x' - name: Copy production config run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart - name: Build run: flutter build apk - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: android-stream-chat-v1 path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v2 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 to S3 run: | cp build/app/outputs/apk/release/app-release.apk flutter-sample-app.apk aws s3 cp flutter-sample-app.apk s3://${{ secrets.AWS_S3_BUCKET }} --sse AES256