refactor: introduce Dependencies container and remove singletons (#142) #479
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |