אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » Node.js » ביצוע משימות CI של אפליקציות node.js על חלונות עם AppVeyor

ביצוע משימות CI של אפליקציות node.js על חלונות עם AppVeyor

רן בר-זיק ספטמבר 4, 2016 7:07 am אין תגובות

יש לכם אפליקצית node.js שרצה על חלונות? ככה תבדקו אותה

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אוהבים את מדריך Node.js? רוצים לדעת עוד?

ספר מקיף על Node.js, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - גם על מודולים אסינכרוניים וגם על CLI וסטרימים ומידע רב יותר על Node.js ניתן להורדה ממש פה.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

בעוונותי אני איש לינוקס. כיוון שיש לי רקע ב-PHP, התרגלתי לעבוד על לינוקס (דביאן בכלל ואובונטו בפרט). המערכת הזו לטעמי יותר יציבה ויותר נעימה מחלונות. ברבות הימים, השימוש במקים התרחב בקרב קהילת המפתחים והעבודה במק היתה דומה גם היא לעבודה על לינוקס. כך שבמשך שנים התרגלתי להסביר במדריכים שלי על לינוקס/מק בלבד ולהתעלם, בבוז מופגן פחות או יותר ממשתמשי מערכת ההפעלה חלונות.
א-מ-מ-ה, כשהתחלתי להשתמש ב-node.js, גיליתי לתדהמתי/זוועתי שיש אנשים שמריצים את node.js גם בחלונות. ככל שהתמיכה ב-node השתפרה יותר ויותר, כך מתכנתי node שמשתמשים בחלונות הפכו להיות נפוצים יותר ויותר. בשנה האחרונה, במיוחד במדריכי ה-node שאני כותב, אני כן משתדל להריץ דברים על חלונות ולהתייחס לחלונות. הודות לעבודה של מיקרוסופט, העבודה על אפליקציות node מאוד מאוד זהה לעבודה על לינוקס. בלינוקס עובדים על הקונסולה ואילו בחלונות עובדים על cmd או על git bash או אפילו powershell.

אבל לינוקס וחלונות לא זהות במאה אחוז ולעיתים יש הבדל משמעותי בין השתיים – במיוחד במודולים ספציפיים. תמיד אפשר להתעלם מזה ולעשות deployment רק על לינוקס. זה מה שקורה במוצר שלי ב-HPE. אנחנו יכולים לפתח על לינוקס או על חלונות, אבל המערכת עצמה רצה על לינוקס. אבל לא כל מוצר הוא מוצר שאנחנו יכולים להכתיב היכן הוא ירוץ. יש מוצרים שהם מוצרי קצה שהמשתמש יכול להריץ אותם בכל פלטפורמה שהיא. כך למשל ה-slackbot שבניתי לא מזמן. באופן עקרוני, הוא יכול לרוץ על סביבת לינוקס ו/או על סביבת חלונות.

במאמרים הקודמים דיברתי על תהליך CI עם מוצר שנקרא TravisCI. מדובר במוצר שמתקין את המוצר, מריץ משימות שונות (כתבתי באופן מפורש על בדיקות אוטומטיות וניתוח סטטי של קוד) ואם הכל תקין הוא נותן חיווי חיובי. מאוד מקובל להשתמש בו יחד עם github על מנת לוודא שכל ה-pull request למוצר עוברים את תהליך ה-CI כמו שצריך. הבעיה היא ש-TravisCI בודק אך ורק על לינוקס. איך אני בודק על סביבת חלונות?

בדיוק בשביל זה יש שירות שנקרא AppVeyor – שזה כלי CI המיועד לרוץ בסביבת חלונות. הכלי הזה מיועד לאפליקציות דוט נט, אבל אפשר וצריך להשתמש בו גם על מוצרי node.js ובמיוחד כאלו שאמורים לרוץ על חלונות. אם הבדיקות עוברות בסביבת חלונות, אז סימן שהמוצר יעבוד גם בחלונות בלי בעיה. כמובן בהתחשב בעובדה שכתבתם בדיקות כמו שצריך.

העבודה עם AppVeyor היא קלה ונעימה. אפשר לחבר אותו בקלות להמון כלים שיש בשוק ובראשם גיטהאב. הוא חינמי למוצרי קוד פתוח. במוצרים שאמורים לעבוד גם בחלונות וגם בלינוקס, אני מקשר את המוצר גם אליו וגם ל-TravisCI.

אז איך מתחילים לעבוד איתו? הדבר הראשון שעושים זה להתחבר לAppVeyor עם פרופיל הגיטהאב שלכם ואז לבחור את הפרויקט שלכם.

הוספת פרויקט ל-Appveyor
הוספת פרויקט ל-Appveyor

אחרי זה, כל מה שנותר לעשות זה ליצור קובץ yaml ששמו הוא appveyor.yml ובו יש הנחיות איך להתקין ולהריץ את המוצר שלכם. הקובץ אמור להיות ב-root של הפרויקט והוא נראה ככה:

# Test against this version of Node.js
environment:
  nodejs_version: "6"

# Install scripts. (runs after repo cloning)
install:
  # Get the latest stable version of Node.js or io.js
  - ps: Install-Product node $env:nodejs_version
  - npm install -g eslint
  # install modules
  - npm install

# Post-install test scripts.
test_script:
  # Output useful info for debugging.
  - node --version
  - npm --version
  # run tests
  - npm test
  - npm run eslint

# Don't actually build.
build: off

זה קובץ אמיתי, אפשר לראות שאני מתקין כאן גם את node וגם את eslint באופן גלובלי. אחרי ההתקנה אני מריץ בבדיקות את npm test ואת npm run eslint, אבל זה יכולה להיות כל בדיקה. אם אתם משתמשים ב-grunt או ב-gulp כדי להריץ את הבדיקות שלכם, אתם יכולים פשוט לכתוב gulp test – רק חשוב לוודא להתקין אותם קודם גלובלית.
מאוד חשוב באפליקציות node.js לעשות build:off.

יש עוד דברים שאפשר לבדוק, כמו למשל על חלונות 64 ביט ו-32 ביט על או על גרסאות שונות של node. את כל הפרטים איך כותבים את קובץ ה-yaml על מנת לעשות את זה, אפשר למצוא בדוקומנטציה של appveyor.yml.

מהרגע הזה, כל pull request יריץ את הבדיקות שיש שם. כשלון בבדיקות יוצג באופן ברור.

pull request with appveyor and travis

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אוהבים את מדריך Node.js? רוצים לדעת עוד?

ספר מקיף על Node.js, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - גם על מודולים אסינכרוניים וגם על CLI וסטרימים ומידע רב יותר על Node.js ניתן להורדה ממש פה.
למאמר הקודם בסדרת המדריכים על Node.jsביצוע בדיקת קוד סטטית על node.js והרצה שלה ב-travis CI
למאמר הבא בסדרת המדריכים על Node.jsנעילת גרסאות ב-Node.js
לכל המאמרים במדריך
node.js

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד