צנרת CI/CD טובה היא לא זו שרצה מהר. היא זו שאפשר לסמוך עליה גם כשלא מסתכלים. הנה חמישה עקרונות שחוזרים אצלי בכל פרויקט.

1. כל build חייב להיות ניתן לשחזור

אם הרצת אותו build פעמיים נותנת תוצאה שונה, אין לך צנרת - יש לך הגרלה. נעל גרסאות, השתמש ב-lockfiles, ובנה בתוך סביבה נקייה.

# נעל את ה-runner ואת ה-toolchain, לא רק את התלויות של האפליקציה
runs-on: ubuntu-24.04
steps:
  - uses: actions/setup-node@v4
    with:
      node-version: "20.19.5"
      cache: npm
  - run: npm ci   # ci ולא install - מכבד את ה-lockfile בדיוק

2. הבדיקות רצות לפני הדיפלוי, לא אחריו

בדיקה שרצה אחרי שהקוד כבר בפרודקשן היא לא בדיקה, היא התראה. שים את שער האיכות לפני השחרור.

3. rollback צריך להיות מהיר יותר מ-forward fix

כשמשהו נשבר בפרודקשן, הדבר האחרון שאתה רוצה זה לתקן קדימה תחת לחץ. rollback בלחיצה אחת שווה יותר מכל תיקון חכם.

4. סודות לא נמצאים בקוד

מפתחות, טוקנים וסיסמאות עוברים דרך ניהול סודות - לא דרך משתני סביבה שנשכחים ב-git. זו לא פרנויה, זו היגיינה.

5. הצנרת עצמה היא קוד

אם ה-pipeline מוגדר בלחיצות בממשק, אף אחד לא יודע מה הוא עושה בעוד חצי שנה. הגדרה בקוד, ב-review, בגיט.

חמשת אלה לא מסובכים. הם פשוט דורשים משמעת. וזה בדיוק ההבדל.