name: Integration Tests (Manual)
on:
workflow_dispatch:
permissions:
contents: read
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
jobs:
integration:
name: Integration Tests
runs-on: ubuntu-latest
environment: scratch
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: Swatinem/rust-cache@v2
- name: Verify credentials
env:
SF_AUTH_URL: ${{ secrets.SF_AUTH_URL }}
run: |
if [ -z "$SF_AUTH_URL" ]; then
echo "::error::SF_AUTH_URL secret is not configured"
exit 1
fi
- name: Run integration tests with coverage
env:
SF_AUTH_URL: ${{ secrets.SF_AUTH_URL }}
run: cargo llvm-cov --workspace --all-features --test integration --lcov --output-path lcov-integration.info -- --nocapture
- name: Generate summary
if: always()
env:
SF_AUTH_URL: ${{ secrets.SF_AUTH_URL }}
run: |
echo "### Integration Tests (Manual)" >> "$GITHUB_STEP_SUMMARY"
cargo llvm-cov report --summary-only 2>&1 | tail -20 >> "$GITHUB_STEP_SUMMARY" || true
- name: Upload coverage to Codecov
if: always()
uses: codecov/codecov-action@v5
with:
files: lcov-integration.info
flags: integration-tests
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}