GitLab היא מערכת מבוססת Web לניהול קוד שמספקת בין היתר אפשרות להריץ Pipelines, לכתוב תיעוד ל-repo, לנהל ב-Board משימות ועוד. אחד מהפיצ’רים שהיא מספקת הוא GitLab Pages, שבעזרתו ניתן לבצע deploy לאתרים סטטיים בעזרת pipeline פשוט. זה חוסך התעסקות מיותרת כשרוצים להקים אתר עבור תיעוד או כל צורך אחר. נצטרך ליצור פרויקט שלנו, נצטרך לבחור ב (Static Site Generator(SSG כגון Gatsby, Jekyll, Hugo וכו’ שבעזרתו גיטלאב יוכל ליצור את האתר. חשוב להדגיש שעם כל SSG נעבוד בצורה קצת שונה והכול מתועד באינטרנט.
GitLab Pages יודע לקחת מה-Pipeline את ה (Artifacts(Jobs files/directories ומעלה אותם לאתר סטטי. יהיה לנו תיקייה ובה נשים את הקבצים הרלוונטיים שיעלו לאתר. כדי להגדיר Pipeline ב-GitLab נרשום קובץ yml ונקרא לו gitlab-ci.yml.
כשניצור את הפרויקט ב-GitLab נלחץ על Create from template ולאחר מכן נבחר פרויקט Pages כלשהו. אני אדגים עם Jykell.
אחרי שיצרנו את הפרויקט עם ה-template של Jykell, נסתכל על קובץ ה-ci שלנו שמגדיר את ה-Pipeline. זה התוכן שלו:
קורים כאן מספר דברים:
- משתמשים ב-docker image של ruby.
- מתקינים bundler שבעזרתו אפשר לנהל חבילות ruby.
- מוגדר job שמג’נרט אתר סטטי ושומר את זה בתיקייה test, לאחר מכן התיקייה הזאת נשמרת כ-artifacts. ה-job הזה רץ על כל branch שהוא לא master (כדי לבדוק אם האתר עובד לפני שעושים לו deploy).
- מוגדר Job שעושה את אותה פעולה אבל רק עבור master.
איך נוסיף תוכן לאתר?
בפרויקט נוצרה לנו תיקייה בשם posts_. בתוכה נרשום קבצים בפורמט Markdown (מוזמנים לקרוא עליו באינטרנט). נוכל לעשות preview על קבצי markdown שנכתוב כדי לבדוק שהם מתורגמים כפי שרצינו. בתוך התיקייה יהיה לנו קובץ לדוגמא, רצוי להיעזר בו כדי להבין איך רושמים Markdown. נכתוב קבצים לפי הפורמט הבא:
YYYY-MM-DD-name-of-post.markdown
אחרי שיצרנו שם את הקבצים שרצינו, נראה שה-pipeline שלהם עבר. לאחר מכן, נעביר את השינויים ל-master וברגע שה-Pipeline יסתיים האתר יתעדכן אוטומטית.
ב Settings -> Pages נוכל לקנפג את הכתובת של האתר שלנו. לאחר שהאתר יעלה הוא יכיל רשימה של פוסטים. דוגמא לתצוגה של פוסט:
יש עוד מגוון דברים שאפשר לערוך באתר כמו ה-css, header, footer ועוד.
מכירים את התיעוד של Python? הוא נעשה בעזרת הספרייה sphinx ואפשר להשתמש בה גם עם GitLab Pages וכך להקים אתרי תיעוד שהמבנה שלהם דומה לתיעוד של Python. יש לזה הרבה מדריכים באינטרנט אז אני מרשה לעצמי לדלג על זה. זה נראה כך:
יש עוד פיצ’רים חשובים ב-GitLab Pages כגון:
- מנגנון הרשאות לאתר (אפשר לבחור קבוצות/משתמשים מ-GitLab שהם היחידים שיהיו מורשים לראות את האתר)
- דומיין לאתר
- https
עוד דברים מגניבים שאפשר לעשות עם GitLab Pages זה להראות reports של test frameworks כגון Cypress על אתר סטטי.
לסיכום, ראינו והבנו מה היתרונות של GitLab Pages, איך אפשר להקים אתר כזה ואני מזמין אתכם לנסות בעצמכם! (כאן התיעוד של GitLab בנושא).