From 1cbee42faa745790a45db866c7d70f39b0d0cda1 Mon Sep 17 00:00:00 2001 From: Rephl3x Date: Wed, 17 Dec 2025 13:05:36 +1300 Subject: [PATCH] Updated ci.yml to new version and removed FUNDING --- .github/workflows/ci.yml | 158 +++++++------------------------ .github/workflows/ci.yml.chatgpt | 42 -------- 2 files changed, 32 insertions(+), 168 deletions(-) delete mode 100644 .github/workflows/ci.yml.chatgpt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a97553..2ef7313 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,42 +6,22 @@ on: pull_request: types: [opened, synchronize] -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - jobs: lint-and-typecheck: name: Lint & Typecheck runs-on: ubuntu-latest + container: + image: node:22-bookworm timeout-minutes: 10 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - - name: Cache Turborepo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}- - ${{ runner.os }}-turbo- + - name: Enable pnpm + run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile @@ -55,6 +35,8 @@ jobs: test: name: Test (${{ matrix.group }}) runs-on: ubuntu-latest + container: + image: node:22-bookworm timeout-minutes: 15 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} @@ -66,28 +48,10 @@ jobs: group: [unit, services, routes, security] steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - - name: Cache Turborepo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}- - ${{ runner.os }}-turbo- + - name: Enable pnpm + run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile @@ -98,22 +62,21 @@ jobs: - name: Run ${{ matrix.group }} tests run: pnpm --filter @tracearr/server test:${{ matrix.group }} - # Integration tests require real database - run separately from unit tests test-integration: name: Test (integration) runs-on: ubuntu-latest + container: + image: node:22-bookworm timeout-minutes: 15 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} - TEST_DATABASE_URL: postgresql://test:test@localhost:5433/tracearr_test - TEST_REDIS_URL: redis://localhost:6380 + TEST_DATABASE_URL: postgresql://test:test@timescale:5432/tracearr_test + TEST_REDIS_URL: redis://redis:6379 services: timescale: image: timescale/timescaledb:latest-pg15 - ports: - - 5433:5432 env: POSTGRES_USER: test POSTGRES_PASSWORD: test @@ -126,8 +89,6 @@ jobs: redis: image: redis:7-alpine - ports: - - 6380:6379 options: >- --health-cmd "redis-cli ping" --health-interval 5s @@ -135,28 +96,10 @@ jobs: --health-retries 5 steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - - name: Cache Turborepo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}- - ${{ runner.os }}-turbo- + - name: Enable pnpm + run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile @@ -167,39 +110,21 @@ jobs: - name: Run integration tests run: pnpm --filter @tracearr/server test:integration - # Separate job for coverage reporting (runs all tests together for accurate coverage) - # Runs in parallel with test matrix - if tests pass there, coverage will too test-coverage: name: Test Coverage runs-on: ubuntu-latest + container: + image: node:22-bookworm timeout-minutes: 15 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - - name: Cache Turborepo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}- - ${{ runner.os }}-turbo- + - name: Enable pnpm + run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile @@ -219,45 +144,26 @@ jobs: retention-days: 7 if-no-files-found: warn - - name: Report coverage to PR - if: github.event_name == 'pull_request' - uses: davelosert/vitest-coverage-report-action@v2 - with: - working-directory: apps/server - vite-config-path: vitest.config.ts - build: name: Build runs-on: ubuntu-latest + container: + image: node:22-bookworm timeout-minutes: 15 - needs: [lint-and-typecheck, test, test-integration, test-coverage] + needs: + - lint-and-typecheck + - test + - test-integration + - test-coverage env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - - name: Cache Turborepo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}- - ${{ runner.os }}-turbo- + - name: Enable pnpm + run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/ci.yml.chatgpt b/.github/workflows/ci.yml.chatgpt deleted file mode 100644 index 940bfbf..0000000 --- a/.github/workflows/ci.yml.chatgpt +++ /dev/null @@ -1,42 +0,0 @@ -name: CI - -on: - push: - branches: ["main"] - pull_request: - branches: ["main"] - -jobs: - test: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '22' - - - name: Install pnpm - run: npm install -g pnpm - - - name: Install dependencies - run: pnpm install - - - name: Run lint (optional) - run: pnpm lint - - - name: Run tests - run: pnpm test - - docker-build: - runs-on: ubuntu-latest - needs: test - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Build Docker images - run: docker compose -f docker/docker-compose.yml build