Skip to content

Commit fe1175c

Browse files
authored
Refactor: docker/prisma configs to actions + tests (#14)
1 parent 103bbc1 commit fe1175c

26 files changed

Lines changed: 115 additions & 573 deletions

.env.example

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
#Setup Databases Containers for Prisma/App outside
2-
DATABASE_URL_APP="postgresql://POSTGRES_USER_DOCKER:POSTGRES_PASSWORD_DOCKER@localhost:5432/POSTGRES_DATABASE_DOCKER?schema=public"
3-
DATABASE_URL_TESTS="postgresql://POSTGRES_USER_DOCKER2:POSTGRES_PASSWORD_DOCKER2@localhost:5433/POSTGRES_DATABASE_DOCKER2?schema=public"
2+
DATABASE_URL="postgresql://POSTGRES_USER_DOCKER:POSTGRES_PASSWORD_DOCKER@localhost:5432/POSTGRES_DATABASE_DOCKER?schema=public"
3+
DATABASE_URL="postgresql://POSTGRES_USER_DOCKER2:POSTGRES_PASSWORD_DOCKER2@localhost:5433/POSTGRES_DATABASE_DOCKER2?schema=public"
44

55
#Setup Databases Containers for Prisma Containers inside docker
6+
DATABASE_URL_APP="postgresql://POSTGRES_USER_DOCKER:POSTGRES_PASSWORD_DOCKER@POSTGRES_HOST_DOCKER:5432/POSTGRES_DATABASE_DOCKER?schema=public"
7+
# DATABASE_URL_TESTS="postgresql://POSTGRES_USER_DOCKER2:POSTGRES_PASSWORD_DOCKER2@POSTGRES_HOST_DOCKER2:5432/POSTGRES_DATABASE_DOCKER2?schema=public"
8+
69
DATABASE_URL_DOCKER="postgresql://POSTGRES_USER_DOCKER:POSTGRES_PASSWORD_DOCKER@POSTGRES_HOST_DOCKER:5432/POSTGRES_DATABASE_DOCKER?schema=public"
710
DATABASE_URL_DOCKER2="postgresql://POSTGRES_USER_DOCKER2:POSTGRES_PASSWORD_DOCKER2@POSTGRES_HOST_DOCKER2:5432/POSTGRES_DATABASE_DOCKER2?schema=public"
811

@@ -24,8 +27,6 @@ SECRET=
2427
EXPIRES_IN=
2528

2629
# Setup Tests
27-
TESTS_PORT=8082
28-
2930
INVALID_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI74687683jshjkahdjkgbssgafsag6IkpXVCJ9.eyJkYXRhcyI6eyJ1c2VyX2lkIjoiN2NhYzQ5ODUtZjA1NC00Yzc2LThkM2YtNWY4MWE3MjA4MTRjIiwidXNlcm5hbWUiOiJNYWNtaWxsZXIiLCJlbWFpbCI6Im1hY2FtYWOjM5LU2NTkzMTA4LCJleHAiOjE3NTY1OTM3MDgsImF1ZCI6InVzZXJzIiwiaXNzIjoiQURNSU4iLCJzdWIiOiI3Y2FjNDk4NS1mMDU0LTRjNzYtOGQzZi01ZjgxYTcyMDgxNGMifQ.4C2BNK73vJ0Tsns0v_cR-f5mnf2HEFbGi5JXG5sMIlo"
3031

3132
FAKE_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhcyI6eyJ1c2VyX2lkIjoiN2NhYzQ5ODUtZjA1NC00Yzc2LThkM2YtNWY4MWE3MjA4MTRjIiwidXNlcm5hbWUiOiJNYWNtaWxsZXIiLCJlbWFpbCI6Im1hY2FtYWdvbGZAZ21haWwuY29tIiwicGFzc3dvcmQiOiIkMmIkMDgkSkxGdmZsbnMuVktSbEFVc3o0VnZ0Lm5QdU85azZNazY1cktHS3YwcTh3MTl6T2w3UjVEelMiLCJjcmVhdGVkQXQiOiIyMDI1LTA4LTMwVDIyOjMxOjM5LjY4N1oifSwiaWF0IjoxNzU2NTkzMTA4LCJleHAiOjE3NTY1OTM3MDgsImF1ZCI6InVzZXJzIiwiaXNzIjoiQURNSU4iLCJzdWIiOiI3Y2FjNDk4NS1mMDU0LTRjNzYtOGQzZi01ZjgxYTcyMDgxNGMifQ.4C2BNK73vJ0Tsns0v_cR-f5mnf2HEFbGi5JXG5sMIle"

.github/workflows/workflow.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,22 @@ jobs:
2828
run: yarn install
2929

3030
- name: "Set up Docker"
31-
run: docker compose up -d
31+
run: docker compose -f docker-compose.actions.yml up -d
3232
env:
3333
POSTGRES_USER: ${{ vars.POSTGRES_USER_DOCKER }}
3434
POSTGRES_PASSWORD: ${{ vars.POSTGRES_PASSWORD_DOCKER }}
3535
POSTGRES_DB: ${{ vars.POSTGRES_DATABASE_DOCKER }}
36-
POSTGRES_USER_DOCKER: ${{ vars.POSTGRES_USER_DOCKER }}
37-
POSTGRES_PASSWORD_DOCKER: ${{ vars.POSTGRES_PASSWORD_DOCKER }}
38-
POSTGRES_DATABASE_DOCKER: ${{ vars.POSTGRES_DATABASE_DOCKER }}
39-
POSTGRES_HOST_DOCKER: ${{ vars.POSTGRES_HOST_DOCKER }}
4036
POSTGRES_USER_DOCKER2: ${{ vars.POSTGRES_USER_DOCKER2 }}
4137
POSTGRES_PASSWORD_DOCKER2: ${{ vars.POSTGRES_PASSWORD_DOCKER2 }}
4238
POSTGRES_DATABASE_DOCKER2: ${{ vars.POSTGRES_DATABASE_DOCKER2 }}
4339
POSTGRES_HOST_DOCKER2: ${{ vars.POSTGRES_HOST_DOCKER2 }}
44-
DATABASE_URL_DOCKER: ${{ vars.DATABASE_URL_DOCKER }}
4540
DATABASE_URL_DOCKER2: ${{ vars.DATABASE_URL_DOCKER2 }}
46-
DATABASE_URL_APP: ${{ vars.DATABASE_URL_APP }}
47-
DATABASE_URL_TESTS: ${{ vars.DATABASE_URL_TESTS }}
41+
DATABASE_URL: ${{ vars.DATABASE_URL }}
4842

4943
- name: Set up Prisma
50-
run: yarn setup:prisma_tests
44+
run: yarn setup:prisma
5145
env:
52-
DATABASE_URL_TESTS: ${{ vars.DATABASE_URL_TESTS }}
46+
DATABASE_URL: ${{ vars.DATABASE_URL_TESTS }}
5347

5448
- name: "Run API and Tests"
5549
run: |
@@ -63,10 +57,9 @@ jobs:
6357
6458
yarn test:actions
6559
env:
66-
DATABASE_URL_TESTS: ${{ vars.DATABASE_URL_TESTS }}
60+
DATABASE_URL: ${{ vars.DATABASE_URL_TESTS }}
6761
HOST: ${{ vars.HOST }}
6862
PORT: ${{ vars.PORT }}
69-
TESTS_PORT: ${{ vars.TESTS_PORT }}
7063
SECRET: ${{ secrets.SECRET }}
7164
EXPIRES_IN: ${{ vars.EXPIRES_IN }}
7265
FAKE_TOKEN: ${{ vars.FAKE_TOKEN }}

docker-compose.actions.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
services:
2+
3+
postgres_db_tests:
4+
image: postgres
5+
container_name: database_tests
6+
user: postgres
7+
restart: always
8+
ports:
9+
- "5433:5432"
10+
environment:
11+
- POSTGRES_USER=${POSTGRES_USER_DOCKER2}
12+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD_DOCKER2}
13+
- POSTGRES_DB=${POSTGRES_DATABASE_DOCKER2}
14+
healthcheck:
15+
test: [ "CMD", "pg_isready" ]
16+
interval: 10s
17+
timeout: 5s
18+
retries: 5
19+
networks:
20+
- prisma-network
21+
22+
prisma_tests:
23+
build:
24+
dockerfile: Dockerfile
25+
container_name: prisma_tests
26+
environment:
27+
- DATABASE_URL=${DATABASE_URL_DOCKER2}
28+
command: yarn setup:prisma
29+
depends_on:
30+
postgres_db_tests:
31+
condition: service_healthy
32+
networks:
33+
- prisma-network
34+
35+
networks:
36+
prisma-network:
37+
name: prisma-network
38+

docker-compose.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010
environment:
1111
- POSTGRES_USER=${POSTGRES_USER_DOCKER}
1212
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD_DOCKER}
13-
- POSTGRES_DB=${POSTGRES_DATABASE_DOCKER}
13+
- POSTGRES_DB=${POSTGRES_DATABASE_DOCKER}
1414
healthcheck:
1515
test: [ "CMD", "pg_isready" ]
1616
interval: 10s
@@ -41,9 +41,9 @@ services:
4141
prisma_app:
4242
build: .
4343
container_name: prisma_app
44-
environment:
45-
- DATABASE_URL_APP=${DATABASE_URL_DOCKER}
46-
command: yarn setup:prisma_app
44+
environment:
45+
- DATABASE_URL=${DATABASE_URL_DOCKER}
46+
command: yarn setup:prisma
4747
depends_on:
4848
postgres_db_app:
4949
condition: service_healthy
@@ -54,8 +54,8 @@ services:
5454
build: .
5555
container_name: prisma_tests
5656
environment:
57-
- DATABASE_URL_TESTS=${DATABASE_URL_DOCKER2}
58-
command: yarn setup:prisma_tests
57+
- DATABASE_URL=${DATABASE_URL_DOCKER2}
58+
command: yarn setup:prisma
5959
depends_on:
6060
postgres_db_tests:
6161
condition: service_healthy

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
"main": "src/server.js",
66
"type": "module",
77
"scripts": {
8-
"dev": "npx prisma generate --schema prisma/schema2.prisma && node --watch --env-file=.env src/server.js",
8+
"dev": "node --watch --env-file=.env src/server.js",
99
"dev:actions": "node --watch src/server.js",
1010
"dev:debug": "node --inspect --env-file=.env src/server.js",
1111
"test": "node --test --experimental-test-coverage --env-file=.env",
1212
"test:actions": "node --test --experimental-test-coverage",
13-
"dc:up": "docker compose up -d && docker compose logs -f prisma_app",
13+
"dc:up": "docker compose up -d && docker compose logs -f prisma_tests",
1414
"dc:down": "docker compose down --volumes --remove-orphans",
15-
"setup:prisma_app": "npx prisma generate --schema prisma/schema.prisma && npx prisma migrate deploy --schema prisma/schema.prisma && npx prisma db push --schema prisma/schema.prisma",
16-
"setup:prisma_tests": "npx prisma generate --schema prisma/schema2.prisma && npx prisma migrate deploy --schema prisma/schema2.prisma && npx prisma db push --schema prisma/schema2.prisma"
15+
"setup:prisma": "npx prisma migrate deploy && npx prisma db push"
1716
},
1817
"repository": {
1918
"type": "git",

prisma/migrations/20250824202107_tables_app/migration.sql

Lines changed: 0 additions & 13 deletions
This file was deleted.

prisma/migrations/20250907184148_tables_tests/migration.sql

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-- CreateTable
2+
CREATE TABLE "public"."Users" (
3+
"user_id" TEXT NOT NULL,
4+
"username" TEXT NOT NULL,
5+
"email" TEXT NOT NULL,
6+
"password" TEXT NOT NULL,
7+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
8+
9+
CONSTRAINT "Users_pkey" PRIMARY KEY ("user_id")
10+
);
11+
12+
-- CreateTable
13+
CREATE TABLE "public"."UserTokens" (
14+
"id" TEXT NOT NULL,
15+
"user_id" TEXT NOT NULL,
16+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
17+
18+
CONSTRAINT "UserTokens_pkey" PRIMARY KEY ("id")
19+
);
20+
21+
-- CreateIndex
22+
CREATE UNIQUE INDEX "Users_email_key" ON "public"."Users"("email");
23+
24+
-- AddForeignKey
25+
ALTER TABLE "public"."UserTokens" ADD CONSTRAINT "UserTokens_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."Users"("user_id") ON DELETE CASCADE ON UPDATE CASCADE;

prisma/schema.prisma

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ generator client {
44

55
datasource db {
66
provider = "postgresql"
7-
url = env("DATABASE_URL_APP")
7+
url = env("DATABASE_URL")
88
}
99

1010
model Users {

prisma/schema2.prisma

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)