chore: Update localization - WPB-15278 #33005
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: Test Pull Request Changes | |
| on: | |
| pull_request: | |
| types: [opened, reopened, synchronize, ready_for_review, labeled, unlabeled] | |
| merge_group: | |
| types: [checks_requested] | |
| # This is what will cancel the workflow | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # This job will tell us which frameworks have source code changes. | |
| # We'll use the results to run tests only for changed frameworks. | |
| detect-changes: | |
| name: Detect PR Changes | |
| if: ${{ github.event.pull_request.draft != true }} | |
| runs-on: ubuntu-24.04 | |
| # Set job outputs to values from filter step | |
| outputs: | |
| folders: ${{ steps.filter.outputs.changes }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| if: ${{ github.event_name == 'merge_group' }} # on PR, paths-filter can access list of changed files from event payload | |
| with: | |
| lfs: 'false' # as long as we use lfs only for snapshotTesting it should not be useful here | |
| - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 | |
| id: filter | |
| with: | |
| filters: | | |
| WireAnalytics: | |
| - 'WireAnalytics/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireAnalyticsAll.xcscheme' | |
| WireAuthentication: | |
| - 'WireAuthentication/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireAuthenticationAll.xcscheme' | |
| WireBackup: | |
| - 'WireBackup/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireBackupAll.xcscheme' | |
| WireCalling: | |
| - 'WireCalling/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireCallingAll.xcscheme' | |
| WireData: | |
| - 'WireData/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireDataAll.xcscheme' | |
| WireDomain: | |
| - 'WireDomain/**' | |
| WireFoundation: | |
| - 'WireFoundation/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireFoundationAll.xcscheme' | |
| WireLogging: | |
| - 'WireLogging/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireLoggingAll.xcscheme' | |
| WireMessaging: | |
| - 'WireMessaging/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireMessagingAll.xcscheme' | |
| WireNetwork: | |
| - 'WireNetwork/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireNetworkAll.xcscheme' | |
| WireUI: | |
| - 'WireUI/**' | |
| - 'wire-ios-mono.xcworkspace/xcshareddata/xcschemes/WireUIAll.xcscheme' | |
| carthage: | |
| - 'Cartfile.resolved' | |
| fastlane: | |
| - 'fastlane/**' | |
| scripts: | |
| - 'scripts/**' | |
| wire-ios: | |
| - 'wire-ios/**' | |
| wire-ios-data-model: | |
| - 'wire-ios-data-model/**' | |
| wire-ios-images: | |
| - 'wire-ios-images/**' | |
| wire-ios-link-preview: | |
| - 'wire-ios-link-preview/**' | |
| wire-ios-mocktransport: | |
| - 'wire-ios-mocktransport/**' | |
| wire-ios-request-strategy: | |
| - 'wire-ios-request-strategy/**' | |
| wire-ios-share-engine: | |
| - 'wire-ios-share-engine/**' | |
| wire-ios-sync-engine: | |
| - 'wire-ios-sync-engine/**' | |
| wire-ios-system: | |
| - 'wire-ios-system/**' | |
| wire-ios-testing: | |
| - 'wire-ios-testing/**' | |
| wire-ios-transport: | |
| - 'wire-ios-transport/**' | |
| wire-ios-utilities: | |
| - 'wire-ios-utilities/**' | |
| # ββ Strategy decision ββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Decides whether to run tests sequentially or in parallel. | |
| # Parallel is used when: | |
| # - the `parallel-testing` label is on the PR, OR | |
| # - SMART_TESTING_ENABLED=1 (repo variable) AND the number of frameworks | |
| # to test is >= 4 (number of available macOS runners). | |
| # Set SMART_TESTING_ENABLED in Settings β Variables β Actions. | |
| decide-strategy: | |
| name: Decide test strategy | |
| needs: detect-changes | |
| if: ${{ github.event.pull_request.draft != true }} | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| use_parallel: ${{ steps.decide.outputs.use_parallel }} | |
| steps: | |
| - name: Decide parallel vs sequential | |
| id: decide | |
| env: | |
| FOLDERS: ${{ needs.detect-changes.outputs.folders }} | |
| SMART_TESTING_ENABLED: ${{ vars.SMART_TESTING_ENABLED }} | |
| HAS_PARALLEL_LABEL: ${{ contains(github.event.pull_request.labels.*.name, 'parallel-testing') }} | |
| run: | | |
| if [ "$HAS_PARALLEL_LABEL" = "true" ]; then | |
| echo "use_parallel=true" >> "$GITHUB_OUTPUT" | |
| echo "Parallel: parallel-testing label is set" | |
| elif [ "$SMART_TESTING_ENABLED" = "1" ]; then | |
| COUNT=$(echo "$FOLDERS" | jq '[.[] | select(. != "fastlane" and . != "scripts" and . != "carthage")] | length') | |
| echo "Framework count: $COUNT (threshold: 4 runners)" | |
| if [ "$COUNT" -ge 4 ]; then | |
| echo "use_parallel=true" >> "$GITHUB_OUTPUT" | |
| echo "Parallel: $COUNT frameworks >= 4 runners" | |
| else | |
| echo "use_parallel=false" >> "$GITHUB_OUTPUT" | |
| echo "Sequential: $COUNT frameworks < 4 runners, setup overhead not worth it" | |
| fi | |
| else | |
| echo "use_parallel=false" >> "$GITHUB_OUTPUT" | |
| echo "Sequential: smart testing not enabled" | |
| fi | |
| # ββ Sequential ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| trigger_tests_pr: | |
| needs: [detect-changes, decide-strategy] | |
| name: PR Tests | |
| if: ${{ needs.decide-strategy.outputs.use_parallel != 'true' }} | |
| uses: ./.github/workflows/_reusable_run_tests.yml | |
| with: | |
| folders: ${{ join(fromJson(needs.detect-changes.outputs.folders), ',') }} | |
| test_dependencies: ${{ github.event_name != 'pull_request' || startsWith(github.base_ref, 'release/cycle') }} | |
| run_critical_flows: false # separate workflow | |
| notify: failure | |
| secrets: | |
| ZENKINS_USERNAME: ${{ secrets.ZENKINS_USERNAME }} | |
| DD_API_KEY: ${{ secrets.DD_API_KEY }} | |
| OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.WIRE_IOS_CI_WEBHOOK }} | |
| # ββ Parallel ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| trigger_tests_pr_parallel: | |
| needs: [detect-changes, decide-strategy] | |
| name: PR Tests | |
| if: ${{ needs.decide-strategy.outputs.use_parallel == 'true' }} | |
| uses: ./.github/workflows/_reusable_run_tests_parallel.yml | |
| with: | |
| folders: ${{ join(fromJson(needs.detect-changes.outputs.folders), ',') }} | |
| test_dependencies: ${{ github.event_name != 'pull_request' || startsWith(github.base_ref, 'release/cycle') }} | |
| notify: failure | |
| secrets: | |
| ZENKINS_USERNAME: ${{ secrets.ZENKINS_USERNAME }} | |
| DD_API_KEY: ${{ secrets.DD_API_KEY }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.WIRE_IOS_CI_WEBHOOK }} |