Skip to content

refactor: introduce Dependencies container and remove singletons (#142) #479

refactor: introduce Dependencies container and remove singletons (#142)

refactor: introduce Dependencies container and remove singletons (#142) #479

Workflow file for this run

name: Build and Test
on:
pull_request:
branches:
- main
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build
runs-on: macos-26
timeout-minutes: 60
steps:
- name: Checkout Code
uses: actions/checkout@v7
with:
submodules: true
- name: Install Dependencies
run: brew bundle --file Brewfile-ci
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- run: bundle exec fastlane build_ci
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_PRIVATE_KEY: ${{ secrets.MATCH_GIT_PRIVATE_KEY }}
LICENSE_PLIST_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Logs
uses: actions/upload-artifact@v7
with:
name: build-logs
path: |
raw-build-ios.log
retention-days: 1
- name: Run CI Diagnostics
if: failure()
run: ./Scripts/ci-diagnostics.sh
test:
name: Test
runs-on: macos-26
timeout-minutes: 60
steps:
- name: Checkout Code
uses: actions/checkout@v7
with:
submodules: true
- name: Install Dependencies
run: brew bundle --file Brewfile-ci
- name: Wait for iOS Simulator
uses: kula-app/wait-for-services-action/ios-simulator@v1.3.0
with:
device: iPhone 17 Pro
boot: true
warm-xcodebuild-settings: true
project: Flinky.xcodeproj
scheme: App
- name: Test
run: make test-ios "DEVICE_NAME=iPhone 17 Pro"
env:
LICENSE_PLIST_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Logs
uses: actions/upload-artifact@v7
if: failure()
with:
name: test-logs
path: |
raw-test-ios.log
retention-days: 1
- name: Upload Test Results
uses: actions/upload-artifact@v7
if: failure()
with:
name: test-results
path: |
~/Library/Developer/Xcode/DerivedData/**/Logs/Test/*.xcresult
retention-days: 7
- name: Run CI Diagnostics
if: failure()
run: ./Scripts/ci-diagnostics.sh
test-ui:
name: Test UI
runs-on: macos-26
timeout-minutes: 60
steps:
- name: Checkout Code
uses: actions/checkout@v7
with:
submodules: true
- name: Install Dependencies
run: brew bundle --file Brewfile-ci
- name: Wait for iOS Simulator
uses: kula-app/wait-for-services-action/ios-simulator@v1.3.0
with:
device: iPhone 17 Pro
boot: true
warm-xcodebuild-settings: true
project: Flinky.xcodeproj
scheme: UITests
- name: Test UI
run: make test-ui-ios "DEVICE_NAME=iPhone 17 Pro"
env:
LICENSE_PLIST_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Logs
uses: actions/upload-artifact@v7
if: failure()
with:
name: ui-test-logs
path: |
raw-test-ui-ios.log
retention-days: 1
- name: Upload Test Results
uses: actions/upload-artifact@v7
if: failure()
with:
name: ui-test-results
path: |
~/Library/Developer/Xcode/DerivedData/**/Logs/Test/*.xcresult
retention-days: 7
- name: Run CI Diagnostics
if: failure()
run: ./Scripts/ci-diagnostics.sh