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 .