name: Code coverage on: push: branches: [main] pull_request: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: code_coverage: name: Code Coverage runs-on: "ubuntu-latest" if: github.event_name == 'push' || !github.event.pull_request.draft steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Load cache uses: Swatinem/rust-cache@v2 with: save-if: ${{ github.ref == 'refs/head/main' }} - name: Install tarpaulin uses: taiki-e/install-action@v2 with: tool: cargo-tarpaulin # set up backend for integration tests - uses: actions/setup-python@v4 with: python-version: 3.8 - uses: gnunicorn/setup-matrix-synapse@main with: uploadLogs: true httpPort: 8228 disableRateLimiting: true serverName: "matrix-sdk.rs" - name: Run tarpaulin run: | cargo tarpaulin --out Xml -e sliding-sync-integration-test - name: Upload to codecov.io uses: codecov/codecov-action@v3 with: # Work around frequent upload errors, for runs inside the main repo (not PRs from forks). # Otherwise not required for public repos. token: ${{ secrets.CODECOV_UPLOAD_TOKEN }} # The upload sometimes fails due to https://github.com/codecov/codecov-action/issues/837. # To make sure that the failure gets flagged clearly in the UI, fail the action. fail_ci_if_error: true