Φόρτωση περιεχομένου...
Φόρτωση περιεχομένου...
Δημιουργήστε ένα ταχύτατο CI pipeline με caching εξαρτήσεων, παράλληλη εκτέλεση tests και typecheck.
Η χειροκίνητη εκτέλεση ελέγχων ποιότητας πριν το merge είναι αργή και ευάλωτη σε ανθρώπινα λάθη. Με το GitHub Actions, κάθε Pull Request ελέγχεται αυτόματα σε απομονωμένα Linux runners πριν επιτραπεί η συγχώνευση.
Σε αυτό το μάθημα θα στήσουμε ένα ολοκληρωμένο, αστραπιαίο CI workflow με παράλληλα jobs και caching.
.github/workflows/ci.ymlΔημιουργήστε το αρχείο στο repository σας:
yamlname: CI Quality Gate on: pull_request: branches: [master, main] push: branches: [master, main] # Ακύρωση προηγούμενων εκτελέσεων εάν σταλεί νέο commit στο ίδιο PR concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: validate: name: Lint, Types & Unit Tests runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout Source Code uses: actions/checkout@v4 - name: Setup Node.js 20 uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Install Dependencies run: npm ci --prefer-offline - name: Strict Typecheck run: npx tsc --noEmit - name: ESLint Code Quality run: npm run lint - name: Automated Unit & Gating Tests run: npm test
cache: 'npm': Αποθηκεύει το ~/.npm cache. Το npm ci ολοκληρώνεται σε 6 δευτερόλεπτα αντί για 45!concurrency / cancel-in-progress: true: Εάν κάνετε push 3 commits διαδοχικά, το GitHub Actions ακυρώνει αυτόματα τα παλιά jobs, εξοικονομώντας CI build minutes.tsc, το workflow σταματά άμεσα χωρίς περιττή κατανάλωση πόρων.