name: Integration tests on: schedule: - cron: "0 2 * * 1-5" workflow_dispatch: permissions: {} jobs: integration_tests: name: Integration Tests runs-on: macos-26 timeout-minutes: 45 concurrency: # Only allow a single run of this workflow on each branch, automatically cancelling older runs. group: integration-tests-${{ github.head_ref }} cancel-in-progress: false steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Setup environment run: source ci_scripts/ci_common.sh && setup_github_actions_environment - name: Run tests run: swift run -q tools ci integration-tests env: INTEGRATION_TESTS_HOST: ${{ secrets.INTEGRATION_TESTS_HOST }} INTEGRATION_TESTS_USERNAME: ${{ secrets.INTEGRATION_TESTS_USERNAME }} INTEGRATION_TESTS_PASSWORD: ${{ secrets.INTEGRATION_TESTS_PASSWORD }} - 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/IntegrationTests.xcresult.zip retention-days: 7 if-no-files-found: ignore - name: Upload coverage to Codecov # Skip if not successful and in forks if: ${{ success() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 with: report_type: coverage files: test_output/integration-cobertura.xml disable_search: true fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} flags: integrationtests - name: Upload test results to Codecov # Skip if cancelled and in forks if: ${{ !cancelled() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 continue-on-error: true with: report_type: test_results files: test_output/integration-junit.xml disable_search: true fail_ci_if_error: false token: ${{ secrets.CODECOV_TOKEN }} flags: integrationtests