name: CI on: push: branches: - main - develop pull_request: branches: - main jobs: lint: name: 🔍 Lint & Type Check runs-on: ubuntu-latest steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🟢 Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: 📦 Cache node_modules uses: actions/cache@v4 with: path: ~/.npm key: npm-${{ hashFiles('package-lock.json') }} restore-keys: | npm- - name: 📥 Install dependencies run: npm ci - name: 🔍 Lint run: npm run lint docker: name: 🐳 Build & Push Image needs: lint if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🔐 Login Registry Gitea run: | docker login git.leonmorival.xyz \ -u "${{ secrets.REGISTRY_USER }}" \ -p "${{ secrets.REGISTRY_PASSWORD }}" - name: 🏗️ Build image run: | docker build \ -t git.leonmorival.xyz/leonm/landing-server:latest \ -t git.leonmorival.xyz/leonm/landing-server:${{ github.sha }} \ . - name: 📤 Push image run: | docker push git.leonmorival.xyz/leonm/landing-server:latest docker push git.leonmorival.xyz/leonm/landing-server:${{ github.sha }}