name: Unit Tests (Enterprise) on: workflow_dispatch: push: branches: [develop] pull_request: permissions: {} jobs: tests: name: Tests (Enterprise) runs-on: xcode-27 timeout-minutes: 60 # Skip in forks # HealthChat: this job can never pass in this fork — it needs # secrets.ELEMENT_BOT_TOKEN (Element's bot, absent here) and recursively # checks out the private element-hq/element-ios-enterprise submodule, which # Novaloop cannot obtain. The guard below only asks whether the PR comes # FROM a fork, not whether this repo IS one, so it does not skip us. Gate on # the upstream repo as post-release.yml does. Gated rather than deleted so # the file keeps rebasing cleanly against upstream. if: ${{ github.repository == 'element-hq/element-x-ios' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} concurrency: # Only allow a single run of this workflow on each branch, automatically cancelling older runs. group: ${{ format('unit-tests-enterprise{0}', github.ref) }} cancel-in-progress: true steps: - uses: nschloe/action-cached-lfs-checkout@385a8ecc719e50b8c71af6ab01a624b486b7c3bc # v1.2.5 with: submodules: recursive token: ${{ secrets.ELEMENT_BOT_TOKEN }} persist-credentials: false - name: Setup environment run: source ci_scripts/ci_common.sh && setup_github_actions_environment - name: Restore compilation cache uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/Library/Developer/Xcode/CompilationCache.noindex key: compilation-cache-unit-tests-enterprise-${{ github.sha }} restore-keys: compilation-cache-unit-tests-enterprise- - name: Configure Enterprise run: swift run -q pipeline configure-element-pro - name: Run tests run: swift run -q tools ci unit-tests --skip-previews - name: Save compilation cache # Only develop populates the cache, all of the other runs simply read from it. if: ${{ !cancelled() && github.event_name == 'push' && github.ref == 'refs/heads/develop' }} uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/Library/Developer/Xcode/CompilationCache.noindex key: compilation-cache-unit-tests-enterprise-${{ github.sha }} - name: Archive artifacts uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 # We only care about artefacts if the tests fail if: failure() with: name: Results path: test_output/UnitTests.zip retention-days: 1 if-no-files-found: ignore