Skip to content

Cron Checks

Cron Checks #966

Workflow file for this run

name: Cron Checks
on:
schedule:
# Runs "At 02:00 every night except weekends"
- cron: '0 2 * * 1-5'
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
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
# test-e2e-debug:
# name: Test E2E UI (Debug)
# strategy:
# matrix:
# include:
# - ios: 18.5
# xcode: 16.4
# os: macos-15
# device: "iPhone 16 Pro"
# setup_runtime: false
# - ios: 17.5
# xcode: 15.4
# os: macos-14
# device: "iPhone 15 Pro"
# setup_runtime: false
# - ios: 16.4
# xcode: 15.3 # fails on 15.4
# os: macos-14
# device: "iPhone 14 Pro"
# setup_runtime: true
# fail-fast: false
# runs-on: ${{ matrix.os }}
# env:
# GITHUB_EVENT: ${{ toJson(github.event) }}
# ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
# XCODE_VERSION: ${{ matrix.xcode }}
# steps:
# - uses: actions/[email protected]
# - uses: ./.github/actions/bootstrap
# env:
# INSTALL_ALLURE: true
# INSTALL_YEETD: true
# INSTALL_IPSW: true
# SKIP_MINT_BOOTSTRAP: true
# - uses: ./.github/actions/setup-ios-runtime
# if: ${{ matrix.setup_runtime }}
# timeout-minutes: 60
# with:
# version: ${{ matrix.ios }}
# device: ${{ matrix.device }}
# - name: Build
# run: bundle exec fastlane build_test_app_and_frameworks
# timeout-minutes: 60
# - 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 }})"
# timeout-minutes: 90
# - 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
# - name: Parse xcresult
# if: failure()
# run: |
# brew install chargepoint/xcparse/xcparse
# xcparse logs fastlane/test_output/StreamChatSwiftUITestsApp.xcresult fastlane/test_output/logs/
# - uses: actions/upload-artifact@v4
# if: failure()
# with:
# name: Test Data E2E (iOS ${{ matrix.ios }})
# path: |
# fastlane/recordings
# fastlane/sinatra_log.txt
# fastlane/test_output/report.junit
# fastlane/test_output/logs/*/Diagnostics/**/*.txt
# fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*
build-apps:
name: Build Demo App
strategy:
matrix:
include:
# - xcode: 16.4
# os: macos-15
- xcode: 16.0
os: macos-15
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/ruby-cache
- uses: ./.github/actions/xcode-cache
- name: Build Demo App
run: bundle exec fastlane build_demo
env:
XCODE_VERSION: ${{ matrix.xcode }}
# build-old-xcode:
# name: Build SDKs (Xcode 15)
# runs-on: macos-14
# env:
# XCODE_VERSION: "15.4"
# steps:
# - name: Connect Bot
# uses: webfactory/[email protected]
# with:
# ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
# - uses: actions/[email protected]
# - uses: ./.github/actions/ruby-cache
# timeout-minutes: 25
# - name: Build SwiftUI
# run: bundle exec fastlane test_ui device:"iPhone 15" build_for_testing:true
# timeout-minutes: 25
# - name: Build XCFrameworks
# run: bundle exec fastlane build_xcframeworks
# timeout-minutes: 25
# env:
# MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
# APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
# automated-code-review:
# name: Automated Code Review
# runs-on: macos-14
# env:
# XCODE_VERSION: "15.4"
# steps:
# - uses: actions/[email protected]
# - uses: ./.github/actions/bootstrap
# - run: bundle exec fastlane rubocop
# - run: bundle exec fastlane run_swift_format strict:true
# - run: bundle exec fastlane pod_lint
# slack:
# name: Slack Report
# runs-on: ubuntu-latest
# needs: [test-e2e-debug, build-apps, build-old-xcode, automated-code-review]
# if: failure() && github.event_name == 'schedule'
# steps:
# - uses: 8398a7/action-slack@v3
# with:
# status: cancelled
# text: "You shall not pass!"
# job_name: "${{ github.workflow }}: ${{ github.job }}"
# fields: repo,commit,author,workflow
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_NIGHTLY_CHECKS }}