diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 5b5019a..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: Backend CI - -on: - pull_request: - branches: [high-performance] - push: - branches: [high-performance] - -jobs: - test: - runs-on: ubuntu-latest - services: - postgres: - image: postgres:16-alpine - env: - POSTGRES_USER: nxtgauge - POSTGRES_PASSWORD: nxtgauge_dev - POSTGRES_DB: nxtgauge_db - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: ['5432:5432'] - redis: - image: redis:7-alpine - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: ['6379:6379'] - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt, clippy - - - name: Cache cargo registry - uses: Swatinem/rust-cache@v2 - - - name: Install test tools - run: | - cargo install cargo-nextest cargo-llvm-cov cargo-deny - - - name: Check formatting - run: cargo fmt -- --check - - - name: Run clippy - run: cargo clippy -- -D warnings - - - name: Run cargo-deny (dependency check) - run: cargo deny check - - - name: Build - run: cargo build --workspace - - - name: Unit tests with nextest - run: cargo nextest run --workspace --cargo-extra-args="--all-features" - - # Integration tests require DB up; run with scripts/init-db.sql - - name: Initialize database - env: - DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@localhost:5432/nxtgauge_db - run: | - psql $DATABASE_URL -f scripts/init-db.sql - - - name: Integration tests - env: - DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@localhost:5432/nxtgauge_db - REDIS_URL: redis://localhost:6379 - JWT_SECRET: testsecret - run: cargo nextest run --workspace --test '*' --cargo-extra-args="--all-features" - - - name: Generate coverage report - env: - DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@localhost:5432/nxtgauge_db - run: | - cargo llvm-cov nextest --workspace --all-features --lcov --output-path lcov.info - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 - with: - files: lcov.info - fail_ci_if_error: false - - - name: Archive load-test script (k6) - run: tar -czf load-tests.tar.gz load-tests/ - - - name: Upload load-test script artifact - uses: actions/upload-artifact@v4 - with: - name: load-tests - path: load-tests.tar.gz - - security: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Install Trivy - uses: aquasecurity/trivy-action@master - with: - scan-type: 'fs' - format: 'sarif' - output: 'trivy-results.sarif' - - name: Upload Trivy results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: 'trivy-results.sarif'