Skip to content

Hardcode latest iOS version for tests on CI #833

Hardcode latest iOS version for tests on CI

Hardcode latest iOS version for tests on CI #833

Workflow file for this run

name: Smoke Checks
on:
push:
branches:
- main
pull_request:
branches:
- '**'
release:
types:
- created
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
IOS_SIMULATOR_DEVICE: "iPhone 14 Pro (16.4)"
jobs:
automated-code-review:
name: Automated Code Review
runs-on: macos-13
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
if: ${{ github.event_name != 'push' }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/bootstrap
- name: Run Danger
run: bundle exec danger
- name: Run Fastlane Linting
run: bundle exec fastlane rubocop
- name: Run SwiftFormat Linting
run: ./Scripts/run-linter.sh
- name: Run Podspec Linting
run: bundle exec fastlane pod_lint
build-and-test-ui-debug:
name: Test SwiftUI (Debug)
runs-on: macos-13
steps:
- uses: actions/[email protected]
- uses: actions/setup-python@v4
with:
python-version: 3.11
cache: 'pip'
- uses: ./.github/actions/bootstrap
env:
INSTALL_SONAR: true
INSTALL_XCPARSE: true
- name: Run UI Tests (Debug)
run: bundle exec fastlane test_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}"
timeout-minutes: 30
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
- name: Get branch name
id: get_branch_name
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
- name: Run Sonar analysis
run: bundle exec fastlane sonar_upload
env:
BRANCH_NAME: ${{ steps.get_branch_name.outputs.branch }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PR_NUMBER: ${{ github.event.number }}
- uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
text: "You shall not pass!"
job_name: "Test (Debug)"
fields: message,commit,author,action,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
MATRIX_CONTEXT: ${{ toJson(matrix) }}
if: ${{ github.event_name == 'push' && failure() }}
- name: Parse xcresult
if: failure()
run: xcparse screenshots fastlane/test_output/StreamChatSwiftUI.xcresult fastlane/test_output/snapshots --test
- uses: actions/upload-artifact@v3
if: failure()
with:
name: Test Data
path: |
fastlane/test_output/snapshots
build-and-test-e2e-debug:
name: Test E2E UI (Debug)
runs-on: macos-13
if: ${{ github.event_name != 'push' }}
needs: allure_testops_launch
env:
LAUNCH_ID: ${{ needs.allure_testops_launch.outputs.launch_id }}
strategy:
matrix:
batch: [0, 1]
fail-fast: false
steps:
- uses: actions/[email protected]
if: env.LAUNCH_ID != ''
- uses: ./.github/actions/bootstrap
if: env.LAUNCH_ID != ''
env:
INSTALL_ALLURE: true
INSTALL_XCPARSE: true
- name: Run UI Tests (Debug)
if: env.LAUNCH_ID != ''
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}" batch:'${{ matrix.batch }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
MATRIX_SIZE: ${{ strategy.job-total }}
- name: Allure TestOps Upload
if: env.LAUNCH_ID != '' && (success() || failure())
run: bundle exec fastlane allure_upload launch_id:$LAUNCH_ID
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
- name: Allure TestOps Launch Removal
if: env.LAUNCH_ID != '' && cancelled()
run: bundle exec fastlane allure_launch_removal launch_id:$LAUNCH_ID
env:
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
- name: Parse xcresult
if: failure()
run: xcparse logs fastlane/test_output/StreamChatSwiftUITestsApp.xcresult fastlane/test_output/logs/
- uses: actions/upload-artifact@v3
if: failure()
with:
name: Test Data
path: |
fastlane/recordings
fastlane/sinatra_log.txt
fastlane/test_output/logs/*/Diagnostics/StreamChatSwiftUITestsAppUITests-*/*/*.txt
allure_testops_launch:
name: Launch Allure TestOps
runs-on: macos-13
if: ${{ github.event_name != 'push' }}
outputs:
launch_id: ${{ steps.get_launch_id.outputs.launch_id }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/bootstrap
env:
XCODE_ACTIONS: false
- name: Launch Allure TestOps
run: bundle exec fastlane allure_launch
env:
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_EVENT: ${{ toJson(github.event) }}
- id: get_launch_id
run: echo "launch_id=${{env.LAUNCH_ID}}" >> $GITHUB_OUTPUT
if: env.LAUNCH_ID != ''
build-apps:
name: Build Demo App
runs-on: macos-13
if: ${{ github.event_name != 'push' }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/bootstrap
- name: Build Demo App
run: bundle exec fastlane build_demo