From ae41f11bef2f5c006f66dcbc066577863ff4edc4 Mon Sep 17 00:00:00 2001 From: "Vladimir (unknowableshade) Eremin" <60275123+unknowableshade@users.noreply.github.com> Date: Tue, 9 May 2023 03:22:57 +0300 Subject: [PATCH] Docker & Versions --- .dockerignore | 4 +- .github/workflows/{docker.yml => actions.yml} | 45 ++++++++++++++++--- .github/workflows/mocha.yml | 40 ----------------- Dockerfile | 31 +++++++++++-- package.json | 3 +- src/modules/server/module.ts | 2 +- 6 files changed, 71 insertions(+), 54 deletions(-) rename .github/workflows/{docker.yml => actions.yml} (50%) delete mode 100644 .github/workflows/mocha.yml diff --git a/.dockerignore b/.dockerignore index 80404ca..6b5fa47 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,9 +6,11 @@ # Source !src/ +!prisma/ # Dependencies -!package*.json +!package.json +!pnpm-lock.yaml # Typescript compiller config !tsconfig.json diff --git a/.github/workflows/docker.yml b/.github/workflows/actions.yml similarity index 50% rename from .github/workflows/docker.yml rename to .github/workflows/actions.yml index 0b0d003..772ffac 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/actions.yml @@ -1,15 +1,48 @@ -name: Docker +name: actions on: - workflow_run: - workflows: ["Mocha"] - types: - - completed + push: + tags: + - "*" jobs: - build: + mocha: runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + pnpm-version: [8] + + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + with: + version: ${{ matrix.pnpm-version }} + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: pnpm install + + - name: ESLint & Prettier + run: pnpm run lint + + - name: Build + run: pnpm run build + + - name: Test + run: pnpm run --if-present test + + docker: + runs-on: ubuntu-latest + needs: mocha + steps: - name: Check out the repo uses: actions/checkout@v3 diff --git a/.github/workflows/mocha.yml b/.github/workflows/mocha.yml deleted file mode 100644 index d10952a..0000000 --- a/.github/workflows/mocha.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Mocha - -on: - push: - tags: - - "*" - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18.x] - pnpm-version: [8] - - steps: - - name: Check out the repo - uses: actions/checkout@v3 - - - uses: pnpm/action-setup@v2 - with: - version: ${{ matrix.pnpm-version }} - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: ESLint && Prettier - run: pnpm run lint --if-present - - - name: Install dependencies - run: pnpm ci - - - name: Build - run: pnpm run build --if-present - - - name: Test - run: pnpm test --if-present diff --git a/Dockerfile b/Dockerfile index 6656547..3e05c9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,17 @@ +FROM node:18-alpine as builder + +RUN npm install -g pnpm + +WORKDIR /usr/src/app + +COPY package.json pnpm-lock.yaml ./ + +RUN pnpm install + +COPY . . + +RUN pnpm run build + FROM node:18-alpine RUN apk update @@ -8,13 +22,22 @@ RUN apk add --no-cache python3 RUN npm install -g pnpm +ENV NODE_ENV production +USER node + WORKDIR /usr/src/app RUN mkdir bin -RUN curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/src/app/bin/youtube-dl -RUN chmod a+rx /usr/src/app/bin/youtube-dl +RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/src/app/bin/yt-dlp +RUN chmod a+rx /usr/src/app/bin/yt-dlp -COPY . . -RUN pnpm install +COPY prisma/ . +COPY package.json pnpm-lock.yaml ./ + +RUN pnpm install --prod + +RUN pnpx prisma generate + +COPY --from=builder /usr/src/app/dist ./dist CMD [ "pnpm", "start" ] diff --git a/package.json b/package.json index 89bacf1..babd9e4 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,7 @@ "build": "pnpm exec tsc --build", "clean": "pnpm exec tsc --build --clean", "lint": "pnpm exec eslint --fix . && pnpm exec prettier --write .", - "preinstall": "pnpx only-allow pnpm", - "prebuild": "pnpm exec prisma migrate deploy" + "preinstall": "pnpx only-allow pnpm" }, "dependencies": { "@discordjs/opus": "^0.9.0", diff --git a/src/modules/server/module.ts b/src/modules/server/module.ts index ba5bb1d..c2165ee 100644 --- a/src/modules/server/module.ts +++ b/src/modules/server/module.ts @@ -4,7 +4,7 @@ import { fileURLToPath } from "url"; const name = "server"; const description = "Server utilities module"; const author = "unknowableshade"; -const tag = "1.0.0"; +const tag = "0.0.1"; const rootDir = path.dirname(fileURLToPath(import.meta.url));