diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e69de29..3d133af 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -0,0 +1,35 @@ +name: Intergration Tests +on: + pull_request: + branches: + - main +jobs: + integration-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup runtime environment (Bun) + uses: oven-sh/setup-bun@v1 + with: + bun-version: latest + + - name: Install depedencies + run: bun install --frozen-lockfile + + - name: Index route sync + run: bun run route:sync + + - name: Linting test + run: bun run lint + + - name: Create dummy system account + run: bun run dummy:systemaccount + + - name: Generate prisma schema + run: bunx prisma generate + + - name: Build test + run: bun run build diff --git a/package.json b/package.json index 13ffa66..5f81bad 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "prisma:dbml": "bunx prisma db pull && bunx prisma dbml --output ./prisma/dbml/schema.dbml", "prisma:reset": "bunx prisma db push --force-reset", "prisma:seed": "bun run ./prisma/seed/index.ts", + "dummy:systemaccount": "bun run ./scripts/create-dummy-system-account.ts", "route:sync": "bun run ./scripts/sync-routes.ts", "env:publish": "bun run ./scripts/create-example-env.ts" }, diff --git a/scripts/create-dummy-system-account.ts b/scripts/create-dummy-system-account.ts new file mode 100644 index 0000000..5a088c6 --- /dev/null +++ b/scripts/create-dummy-system-account.ts @@ -0,0 +1,16 @@ +import { generateUUIDv7 } from "../src/helpers/databases/uuidv7"; +import { createFile } from "../src/helpers/files/createFile"; + +const createDummySystemAccount = async () => { + const file = await createFile( + `export const SystemAccountId = "${generateUUIDv7()}";`, + { + fileName: "system.ts", + targetDir: "src/config/account", + overwriteIfExists: true, + }, + ); + console.log(`Dummy system account created with id in file: ${file}`); +}; + +createDummySystemAccount(); diff --git a/src/helpers/files/createFile/index.ts b/src/helpers/files/createFile/index.ts index 11f0416..c483f63 100644 --- a/src/helpers/files/createFile/index.ts +++ b/src/helpers/files/createFile/index.ts @@ -25,4 +25,6 @@ export const createFile = async (content: string, config: CreateFileConfig) => { // Write content to the file await fs.promises.writeFile(targetFile, content, "utf8"); + + return targetFile; }; diff --git a/src/modules/media/index.ts b/src/modules/media/index.ts new file mode 100644 index 0000000..00a7dee --- /dev/null +++ b/src/modules/media/index.ts @@ -0,0 +1,6 @@ +import Elysia from "elysia"; + +export const mediaModule = new Elysia({ prefix: "/media" }).get( + "/", + () => "Media Module", +);