From b94761e9d9e746b839a7d1b54afb4dc1a12d4f16 Mon Sep 17 00:00:00 2001 From: vlitvintseva <24_LitvintsevaVD@iux.local> Date: Mon, 18 May 2026 02:26:18 +0300 Subject: [PATCH] feat: add dockerfile and ci workflow --- .github/workflows/ci.yml | 55 ++++++++++++++++++++++++++++++++++++++++ Dockerfile | 6 +++++ 2 files changed, 61 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..646af46 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: Node.js CI for Gitea + +on: + push: + branches: [ "main" ] + +jobs: + # 1. Этап проверки стиля кода (Линтер) + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install dependencies + run: npm ci + + - name: Run ESLint + run: npm run lint + + # 2. Этап запуска тестов (зависит от lint) + test: + runs-on: ubuntu-latest + needs: lint + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install dependencies + run: npm ci + + - name: Run Tests + run: npm run test + + # 3. Этап сборки Docker-образа (зависит от test) + build: + runs-on: ubuntu-latest + needs: test + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Прямая и надежная сборка через стандартную команду docker build + - name: Build Docker Image + run: docker build -t docker_lab:latest . diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9e57c55 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM node:18-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm ci --only=production +COPY . . +CMD ["node", "index.js"]