Skip to content

Cron Checks

Cron Checks #560

Workflow file for this run

name: Cron Checks
on:
schedule:
# Runs "At 03:00 every night"
- cron: '0 3 * * *'
pull_request:
branches:
- 'main'
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
RUBY_VERSION: 3.1
jobs:
# build-test-app-and-frameworks:
# name: Build Test App and Frameworks
# runs-on: macos-13
# steps:
# - uses: actions/[email protected]
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ env.RUBY_VERSION }}
# bundler-cache: true
# - name: Build
# run: bundle exec fastlane build_test_app_and_frameworks
# timeout-minutes: 60
# - uses: actions/upload-artifact@v3
# if: success()
# with:
# name: cache-derived-data
# path: |
# derived_data/Build/**/*.app
# derived_data/Build/**/*.xctestrun
# derived_data/Build/**/*.framework
# test-e2e-debug:
# name: Test E2E UI (Debug)
# needs: build-test-app-and-frameworks
# strategy:
# matrix:
# include:
# - ios: 16.2
# xcode: 14.2
# os: macos-12
# device: "iPhone 14 Pro Max"
# setup_runtime: false
# - ios: 15.5
# xcode: 13.4.1
# os: macos-12
# device: "iPhone 8"
# setup_runtime: false
# - ios: 14.5
# xcode: 14.2
# os: macos-12
# device: "iPhone SE (2nd generation)"
# setup_runtime: true
# - ios: 13.7
# xcode: 14.2
# os: macos-12
# device: "iPad Air (3rd generation)"
# setup_runtime: true
# fail-fast: false
# runs-on: ${{ matrix.os }}
# env:
# GITHUB_EVENT: ${{ toJson(github.event) }}
# GITHUB_PR_NUM: ${{ github.event.number }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
# STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }}
# XCODE_VERSION: ${{ matrix.xcode }}
# steps:
# - uses: actions/[email protected]
# - uses: actions/download-artifact@v3
# with:
# name: cache-derived-data
# path: derived_data/Build/
# - uses: ./.github/actions/bootstrap
# env:
# INSTALL_ALLURE: true
# - name: Cache iOS Simulator Runtime
# uses: actions/cache@v3
# id: runtime-cache
# with:
# path: ~/Library/Caches/XcodeInstall/
# key: runtime-ios-${{ matrix.ios }}
# restore-keys: runtime-ios-${{ matrix.ios }}
# - name: Setup iOS ${{ matrix.ios }} Runtime
# if: ${{ matrix.setup_runtime }}
# timeout-minutes: 60
# run: bundle exec fastlane install_sim ios:"${{ matrix.ios }}"
# - name: Launch Allure TestOps
# run: bundle exec fastlane allure_launch cron:true
# - name: Run UI Tests (Debug)
# run: bundle exec fastlane test_e2e_mock device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true test_without_building:true
# timeout-minutes: 120
# - name: Allure TestOps Upload
# if: success() || failure()
# run: bundle exec fastlane allure_upload launch_id:$LAUNCH_ID
# - name: Allure TestOps Launch Removal
# if: cancelled()
# run: bundle exec fastlane allure_launch_removal launch_id:$LAUNCH_ID
# - uses: 8398a7/action-slack@v3
# with:
# status: ${{ job.status }}
# text: "You shall not pass!"
# job_name: "${{ github.workflow }}: ${{ github.job }}"
# fields: message,commit,author,action,workflow,job,took
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
# MATRIX_CONTEXT: ${{ toJson(matrix) }}
# if: failure() && github.event_name == 'schedule'
# - name: Parse xcresult
# if: failure()
# run: |
# brew install chargepoint/xcparse/xcparse
# xcparse logs fastlane/test_output/StreamChatUITestsApp.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/StreamChatUITestsAppUITests-*/*/*.txt
build-and-test-debug:
name: Test LLC (Debug)
strategy:
matrix:
include:
# - ios: 16.4
# xcode: 14.3.1
# os: macos-13
# device: "iPhone 14 Pro Max"
# setup_runtime: false
# - ios: 15.5
# xcode: 13.4.1
# os: macos-12
# device: "iPhone 8"
# setup_runtime: false
# - ios: 14.5
# xcode: 14.2
# os: macos-12
# device: "iPhone SE (2nd generation)"
# setup_runtime: true
- ios: 13.7
xcode: 14.2
os: macos-12
device: "iPad Air (3rd generation)"
setup_runtime: true
fail-fast: false
runs-on: ${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
XCODE_VERSION: ${{ matrix.xcode }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/bootstrap
- name: Cache iOS Simulator Runtime
uses: actions/cache@v3
id: runtime-cache
with:
path: ~/Library/Caches/XcodeInstall/
key: runtime-ios-${{ matrix.ios }}
restore-keys: runtime-ios-${{ matrix.ios }}
- name: Setup iOS ${{ matrix.ios }} Runtime
if: ${{ matrix.setup_runtime }}
timeout-minutes: 60
run: bundle exec fastlane install_sim ios:"${{ matrix.ios }}"
- name: Run LLC Tests (Debug)
run: bundle exec fastlane test device:"${{ matrix.device }} (${{ matrix.ios }})"
timeout-minutes: 40
- uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
text: "You shall not pass!"
job_name: "${{ github.workflow }}: ${{ github.job }}"
fields: message,commit,author,action,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
MATRIX_CONTEXT: ${{ toJson(matrix) }}
if: failure() && github.event_name == 'schedule'
# build-xcode13:
# name: Build LLC + UI (Xcode 13)
# runs-on: macos-12
# env:
# XCODE_VERSION: "13.4.1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/[email protected]
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ env.RUBY_VERSION }}
# bundler-cache: true
# - name: List Xcode versions xcversion sees
# run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'"
# - name: Build LLC (Xcode 13)
# run: bundle exec fastlane test device:"iPhone 8" build_for_testing:true
# timeout-minutes: 25
# - name: Build UI (Xcode 13)
# run: bundle exec fastlane test_ui device:"iPhone 8" build_for_testing:true
# timeout-minutes: 25
# automated-code-review:
# name: Automated Code Review
# runs-on: macos-13
# steps:
# - uses: actions/[email protected]
# - uses: ./.github/actions/bootstrap
# - run: bundle exec fastlane rubocop
# - run: ./Scripts/run-linter.sh
# - run: bundle exec fastlane pod_lint