KM-13582 Remove UI-related code from PIALibrary and modularize UI components #231
Workflow file for this run
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: ios_build_and_test | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: macos-26 | |
| env: | |
| TEST_RUNNER_PIA_TEST_USER: ${{ secrets.PIA_ACCOUNT_USERNAME}} | |
| TEST_RUNNER_PIA_TEST_PASSWORD: ${{ secrets.PIA_ACCOUNT_PASSWORD }} | |
| TEST_RUNNER_PIA_TEST_DEDICATEDIP: ${{ secrets.PIA_TEST_DEDICATEDIP }} | |
| steps: | |
| - name: Setup Git credentials | |
| run: | | |
| git config --global url."https://${{ secrets.ORG_GITHUB_USERNAME }}:${{ secrets.ORG_GITHUB_TOKEN }}@github.com/".insteadOf "git@github.com:" | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode version | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: latest-stable | |
| - name: Download iOS Platform | |
| run: | | |
| # Check if iOS platform is already installed | |
| if xcodebuild -showsdks | grep -q "iphoneos"; then | |
| echo "iOS platform already installed, skipping download" | |
| exit 0 | |
| fi | |
| # Retry up to 3 times if download fails | |
| max_attempts=3 | |
| attempt=1 | |
| while [ $attempt -le $max_attempts ]; do | |
| echo "Attempt $attempt of $max_attempts: Downloading iOS platform..." | |
| if xcodebuild -downloadPlatform iOS; then | |
| echo "iOS platform downloaded successfully" | |
| exit 0 | |
| else | |
| echo "Download failed on attempt $attempt" | |
| if [ $attempt -lt $max_attempts ]; then | |
| echo "Retrying in 10 seconds..." | |
| sleep 10 | |
| fi | |
| fi | |
| attempt=$((attempt + 1)) | |
| done | |
| echo "Failed to download iOS platform after $max_attempts attempts" | |
| exit 1 | |
| - name: Set up Ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: 3.3.5 | |
| - name: Install Fastlane | |
| run: gem install fastlane | |
| - name: Run iOS unit tests | |
| run: bundle exec fastlane iOStests | |
| - name: Upload iOS test results | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ios-test-results | |
| path: | | |
| fastlane/test_output/ | |
| **/*.xcresult | |
| build/reports/ | |
| retention-days: 30 | |
| if-no-files-found: warn | |