From df56754c553856ebe82066340de5ccd1d48bbb42 Mon Sep 17 00:00:00 2001 From: ramvignesh-b Date: Tue, 5 May 2026 18:08:09 +0530 Subject: [PATCH] ci: introduce tmp filespace to prevent postgres persist and migrate to custom artiifact upload --- .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 348f271..d2a30af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,13 @@ on: pull_request: branches: [ main ] +env: + # WHY?: services are executed way before the env can be sourced from .env file + # NOTE: still inlining these values because of gitea misbehaving with env loads + DB_NAME: piku_test_db + DB_USER: test + DB_PASSWORD: password123 + jobs: setup-environment: name: Generate Certificates @@ -19,11 +26,12 @@ jobs: mkcert -install mkcert -cert-file certs/localhost.pem -key-file certs/localhost-key.pem localhost 127.0.0.1 ::1 - - name: Cache certificates - uses: actions/cache/save@v4 + - name: Upload certificates + uses: christopherHX/gitea-upload-artifact@v4 with: - path: certs - key: certs-${{ runner.os }}-${{ github.sha }} + name: ssl-certs + path: certs/ + retention-days: 1 frontend: name: Frontend CI @@ -37,10 +45,10 @@ jobs: - uses: oven-sh/setup-bun@v2 - name: Restore certificates - uses: actions/cache/restore@v4 + uses: christopherHX/gitea-download-artifact@v4 with: - path: certs - key: certs-${{ runner.os }}-${{ github.sha }} + name: ssl-certs + path: certs/ - name: Install dependencies run: bun install --frozen-lockfile @@ -64,12 +72,12 @@ jobs: postgres: image: postgres:16-alpine env: - POSTGRES_DB: piku - POSTGRES_USER: user + POSTGRES_DB: piku_test_db + POSTGRES_USER: test POSTGRES_PASSWORD: password123 ports: - - 5432:5432 - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + - 5442:5432 + options: --tmpfs /var/lib/postgresql/data --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 defaults: run: working-directory: ./backend @@ -82,10 +90,10 @@ jobs: cache-dependency-glob: "backend/uv.lock" - name: Restore certificates - uses: actions/cache/restore@v4 + uses: christopherHX/gitea-download-artifact@v4 with: - path: certs - key: certs-${{ runner.os }}-${{ github.sha }} + name: ssl-certs + path: certs/ - name: Setup Environment run: | @@ -94,6 +102,14 @@ jobs: - name: Lint & Test run: | + if [ "$GITEA_ACTIONS" = "true" ]; then + export DB_HOST="postgres" + export DB_PORT="5432" + else + export DB_HOST="127.0.0.1" + export DB_PORT="5442" + fi + uv run ruff check uv run python manage.py test @@ -101,24 +117,28 @@ jobs: name: E2E Tests runs-on: ubuntu-latest needs: setup-environment + # Skipping on Gitea pushes until cache server is configured + if: github.server_url == 'https://github.com' || github.event_name == 'pull_request' steps: - uses: actions/checkout@v4 - name: Restore Certificates - uses: actions/cache/restore@v4 + uses: christopherHX/gitea-download-artifact@v4 with: - path: certs - key: certs-${{ runner.os }}-${{ github.sha }} + name: ssl-certs + path: certs/ - name: Setup Tools uses: astral-sh/setup-uv@v5 - uses: oven-sh/setup-bun@v2 - - name: Cache Playwright id: playwright-cache - uses: actions/cache@v4 + # Disable cache when not using GitHub Actions because the runner spends ~3mins trying to upload the cache and failing + # TODO: setup cache server in Gitea + if: github.server_url == 'https://github.com' + uses: actions/cache@v3 with: path: ~/.cache/ms-playwright key: ${{ runner.os }}-playwright-${{ hashFiles('frontend/bun.lock') }} @@ -140,7 +160,7 @@ jobs: - name: Upload Playwright Report if: always() - uses: actions/upload-artifact@v4 + uses: christopherHX/gitea-upload-artifact@v4 with: name: playwright-report path: frontend/playwright-report/