name: Detox E2E Tests Release on: push: branches: - release-* env: INTUNE_ENABLED: 'true' jobs: update-initial-status-ios: runs-on: ubuntu-22.04 steps: - uses: mattermost/actions/delivery/update-commit-status@main env: GITHUB_TOKEN: ${{ github.token }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ github.sha }} context: e2e/detox-ios-tests description: Detox iOS tests for mattermost mobile app have started ... status: pending update-initial-status-android: runs-on: ubuntu-22.04 steps: - uses: mattermost/actions/delivery/update-commit-status@main env: GITHUB_TOKEN: ${{ github.token }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ github.sha }} context: e2e/detox-android-tests description: Detox Android tests for mattermost mobile app have started ... status: pending build-ios-simulator: runs-on: macos-15 needs: - update-initial-status-ios steps: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Prepare iOS Build uses: ./.github/actions/prepare-ios-build with: intune-enabled: ${{ env.INTUNE_ENABLED }} intune-ssh-private-key: ${{ secrets.MM_MOBILE_INTUNE_DEPLOY_KEY }} - name: Build iOS Simulator env: TAG: "${{ github.ref }}" AWS_ACCESS_KEY_ID: "${{ secrets.MM_MOBILE_BETA_AWS_ACCESS_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.MM_MOBILE_BETA_AWS_SECRET_ACCESS_KEY }}" GITHUB_TOKEN: "${{ secrets.MM_MOBILE_GITHUB_TOKEN }}" run: bundle exec fastlane ios simulator --env ios.simulator working-directory: ./fastlane - name: Upload iOS Simulator Build uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: ios-build-simulator-${{ github.run_id }} path: Mattermost-simulator-x86_64.app.zip build-android-apk: runs-on: ubuntu-latest-8-cores needs: - update-initial-status-android env: ORG_GRADLE_PROJECT_jvmargs: -Xmx8g steps: - name: Prune Docker to free up space run: docker system prune -af - name: Remove npm Temporary Files run: | rm -rf ~/.npm/_cacache - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.MOBILE_VERSION }} - name: Prepare Android Build uses: ./.github/actions/prepare-android-build env: STORE_FILE: "${{ secrets.MM_MOBILE_STORE_FILE }}" STORE_ALIAS: "${{ secrets.MM_MOBILE_STORE_ALIAS }}" STORE_PASSWORD: "${{ secrets.MM_MOBILE_STORE_PASSWORD }}" MATTERMOST_BUILD_GH_TOKEN: "${{ secrets.MATTERMOST_BUILD_GH_TOKEN }}" - name: Install Dependencies run: sudo apt-get clean && sudo apt-get update && sudo apt-get install -y default-jdk - name: Cache Gradle dependencies uses: actions/cache@v4 with: path: ~/.gradle/caches/modules-2/ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: ${{ runner.os }}-gradle- - name: Detox build run: | cd detox npm install npm install -g detox-cli npm run e2e:android-build - name: Upload Android Build uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: android-build-files-${{ github.run_id }} path: "android/app/build/**/*" run-ios-tests-on-release: name: iOS Mobile Tests on Release uses: ./.github/workflows/e2e-ios-template.yml needs: - build-ios-simulator with: run-type: "RELEASE" record_tests_in_zephyr: 'true' MOBILE_VERSION: ${{ github.ref }} secrets: inherit run-android-tests-on-release: name: Android Mobile Tests on Release uses: ./.github/workflows/e2e-android-template.yml needs: - build-android-apk with: run-android-tests: true run-type: "RELEASE" record_tests_in_zephyr: 'true' MOBILE_VERSION: ${{ github.ref }} secrets: inherit update-final-status-ios: runs-on: ubuntu-22.04 needs: - run-ios-tests-on-release steps: - uses: mattermost/actions/delivery/update-commit-status@main env: GITHUB_TOKEN: ${{ github.token }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ github.sha }} context: e2e/detox-ios-tests description: Completed with ${{ needs.run-ios-tests-on-release.outputs.FAILURES }} failures status: ${{ needs.run-ios-tests-on-release.outputs.STATUS }} target_url: ${{ needs.run-ios-tests-on-release.outputs.TARGET_URL }} update-final-status-android: runs-on: ubuntu-22.04 needs: - run-android-tests-on-release steps: - uses: mattermost/actions/delivery/update-commit-status@main env: GITHUB_TOKEN: ${{ github.token }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ github.sha }} context: e2e/detox-android-tests description: Completed with ${{ needs.run-android-tests-on-release.outputs.FAILURES }} failures status: ${{ needs.run-android-tests-on-release.outputs.STATUS }} target_url: ${{ needs.run-android-tests-on-release.outputs.TARGET_URL }}