name: Unit Tests (Enterprise) on: workflow_dispatch: push: branches: [develop] pull_request: permissions: {} jobs: tests: name: Tests (Enterprise) runs-on: macos-26 timeout-minutes: 45 # 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: Configure Enterprise run: swift run -q pipeline configure-element-pro - name: Run tests run: swift run -q tools ci unit-tests --skip-previews - name: Archive artifacts uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # 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