diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index bcc0da2..1a3df35 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -11,25 +11,11 @@ on: jobs: ci: - name: Lint, Test & Build - runs-on: ubuntu-24.04 - services: - postgres: - image: pgvector/pgvector:pg16 - env: - POSTGRES_USER: memento_test - POSTGRES_PASSWORD: memento_test - POSTGRES_DB: memento_test - options: >- - --health-cmd pg_isready - --health-interval 5s - --health-timeout 5s - --health-retries 5 + name: Lint, Unit Tests & Build + runs-on: docker-host defaults: run: working-directory: memento-note - env: - DATABASE_URL: "postgresql://memento_test:memento_test@postgres:5432/memento_test" steps: - name: Checkout uses: actions/checkout@v4 @@ -39,24 +25,20 @@ jobs: with: node-version: "22" + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: memento-note/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('memento-note/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Install dependencies run: npm ci - name: Generate Prisma client run: npx prisma generate - - name: Setup test database - run: | - if command -v sudo >/dev/null 2>&1; then SUDO="sudo"; else SUDO=""; fi - $SUDO apt-get update -qq && $SUDO apt-get install -y -qq postgresql-client - for i in $(seq 1 30); do - PGPASSWORD=memento_test pg_isready -h postgres -U memento_test -d memento_test && break - [ "$i" -eq 30 ] && exit 1 - sleep 2 - done - PGPASSWORD=memento_test psql -h postgres -U memento_test -d memento_test -c "CREATE EXTENSION IF NOT EXISTS vector;" - npx prisma migrate deploy - - name: Lint run: npm run lint @@ -76,7 +58,7 @@ Branch: ${{ github.ref_name }}" \ -d "parse_mode=Markdown" || true fi - - name: Unit tests + - name: Unit tests (Vitest - fast logic tests) run: npm run test:unit - name: Notify test failure @@ -140,15 +122,6 @@ Branch: ${{ github.ref_name }}" \ runs-on: docker-host steps: - - name: Install Node.js for Gitea Actions - run: | - if command -v apk >/dev/null 2>&1; then - apk add --no-cache nodejs || true - elif command -v apt-get >/dev/null 2>&1; then - if command -v sudo >/dev/null 2>&1; then SUDO="sudo"; else SUDO=""; fi - $SUDO apt-get update -qq && $SUDO apt-get install -y -qq nodejs || true - fi - - name: Sync deploy scripts on server run: | git config --global --add safe.directory /opt/memento || true @@ -162,7 +135,6 @@ Branch: ${{ github.ref_name }}" \ with: name: web-artifact - - name: Update .env.docker env: APP_URL: ${{ vars.APP_URL }} @@ -199,7 +171,7 @@ Branch: ${{ github.ref_name }}" \ BRAVE_SEARCH_API_KEY: ${{ secrets.BRAVE_SEARCH_API_KEY }} JINA_API_KEY: ${{ secrets.JINA_API_KEY }} AUTH_GOOGLE_ID: ${{ vars.AUTH_GOOGLE_ID }} - AUTH_GOOGLE_SECRET: ${{ secrets.AUTH_GOOGLE_SECRET }} + AUTH_GOOGLE_SECRET: ${{ vars.AUTH_GOOGLE_SECRET }} SOCKET_INTERNAL_KEY: ${{ secrets.SOCKET_INTERNAL_KEY }} SOCKET_PORT: ${{ vars.SOCKET_PORT }} SOCKET_HTTP_PORT: ${{ vars.SOCKET_HTTP_PORT }} @@ -254,18 +226,12 @@ Branch: ${{ github.ref_name }}" \ upsert AUTH_GOOGLE_SECRET "$AUTH_GOOGLE_SECRET" upsert SOCKET_INTERNAL_KEY "$SOCKET_INTERNAL_KEY" upsert SOCKET_PORT "$SOCKET_PORT" - upsert SOCKET_HTTP_PORT "$SOCKET_HTTP_PORT" + upsert SOCKET_HTTP_PORT "$SOCKET_SOCKET_HTTP_PORT" upsert SOCKET_INTERNAL_URL "$SOCKET_INTERNAL_URL" upsert NEXT_PUBLIC_SOCKET_URL "$NEXT_PUBLIC_SOCKET_URL" upsert TELEGRAM_BOT_TOKEN "$TELEGRAM_BOT_TOKEN" upsert TELEGRAM_CHAT_ID "$TELEGRAM_CHAT_ID" - - name: Install docker and compose inside runner - run: | - if command -v apk >/dev/null 2>&1; then - apk add --no-cache docker-cli docker-cli-compose jq curl git || true - fi - - name: Deploy on 192.168.1.190 env: ARTIFACT_TGZ: ${{ github.workspace }}/web-artifact.tgz