diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b01d6d71..e629a50e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -71,7 +71,7 @@ jobs: with: context: . file: Dockerfile - labels: latest #${{ steps.meta.outputs.labels }} + labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max platforms: ${{ matrix.platform }} diff --git a/Dockerfile b/Dockerfile index 65ceefba..379be3f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,6 +42,6 @@ LABEL org.opencontainers.image.description "Lysand Server docker image" # CD to app WORKDIR /app ENV NODE_ENV=production -ENTRYPOINT [ "/bin/sh", "entrypoint.sh" ] +ENTRYPOINT [ "/bin/sh", "/app/entrypoint.sh" ] # Run migrations and start the server CMD [ "start" ] diff --git a/entrypoint.sh b/entrypoint.sh index ae7d86a0..16dbf411 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -7,9 +7,9 @@ # - `prisma`: Execute a Prisma command, sends # Exit immediately if a command exits with a non-zero status. -set -e +set -euxo pipefail -cd ./dist +cd /app/dist # Parse first argument case "$1" in diff --git a/packages/log-manager/index.ts b/packages/log-manager/index.ts index bbed3dea..5db5f37e 100644 --- a/packages/log-manager/index.ts +++ b/packages/log-manager/index.ts @@ -1,4 +1,4 @@ -import { appendFile, writeFile, mkdir, exists } from "node:fs/promises"; +import { appendFile, mkdir, exists } from "node:fs/promises"; import { dirname } from "node:path"; import type { BunFile } from "bun"; @@ -42,6 +42,7 @@ export class LogManager { } private async write(text: string) { + Bun.stdout.name; if (this.output === Bun.stdout) { await Bun.write(Bun.stdout, `${text}\n`); } else { @@ -51,7 +52,6 @@ export class LogManager { await mkdir(dirname(this.output.name ?? ""), { recursive: true, }); - await writeFile(this.output.name ?? "", ""); this.output = Bun.file(this.output.name ?? ""); } catch { // diff --git a/packages/log-manager/tests/log-manager.test.ts b/packages/log-manager/tests/log-manager.test.ts index 56dd1356..45eda76f 100644 --- a/packages/log-manager/tests/log-manager.test.ts +++ b/packages/log-manager/tests/log-manager.test.ts @@ -21,13 +21,14 @@ describe("LogManager", () => { beforeEach(async () => { mockOutput = Bun.file("test.log"); mockAppend = jest.fn(); - await mock.module("fs/promises", () => ({ + await mock.module("node:fs/promises", () => ({ appendFile: mockAppend, })); logManager = new LogManager(mockOutput); }); it("should initialize and write init log", () => { + new LogManager(mockOutput); expect(mockAppend).toHaveBeenCalledWith( mockOutput.name, expect.stringContaining("--- INIT LogManager at"), @@ -72,17 +73,6 @@ describe("LogManager", () => { ); }); - it("should throw error if output file does not exist", () => { - mockAppend.mockImplementationOnce(() => { - return Promise.reject( - new Error("Output file doesnt exist (and isnt stdout)"), - ); - }); - expect( - logManager.log(LogLevel.INFO, "TestEntity", "Test message"), - ).rejects.toThrow(Error); - }); - it("should log error message", async () => { const error = new Error("Test error"); await logManager.logError(LogLevel.ERROR, "TestEntity", error);