דלגו לתוכן

פרסום גרסה

מומחה

הפוך build שנבדק לגרסה. הדף הזה מיועד למתחזקים.

  • כל הבדיקות בבדיקות עוברות, כולל ריצת end-to-end מלאה והריצות הארוכות וריצות התקלות.
  • ב-CHANGELOG.md יש את הגרסה החדשה.
  • Python 3 מותקן בשביל סקריפטי הגרסה.
  1. כתוב releases/notes-<version>.toml, למשל releases/notes-1.0.0.toml. ראה קובץ הערות הגרסה.

  2. בדוק אותו:

    Terminal window
    python deploy/release/notes.py 1.0.0 --check

    אתה אמור לראות שאין שגיאות. מילה אסורה, מקף ארוך (em dash), תאריך, דיבורי השקה או הדגשה שחוזרת על עצמה מסיימים עם קוד 1.

  3. בנה את טקסטי הגרסה:

    Terminal window
    python deploy/release/notes.py 1.0.0

    אתה אמור למצוא 7 קבצים ב-releases/out/1.0.0/.

  4. בנה את ה-image והפעל אותו על תיקיית הגדרות חדשה:

    Terminal window
    docker build --file deploy/Dockerfile .

    אתה אמור לראות את אשף ההפעלה הראשונה.

  5. הרץ כל בדיקה בבדיקות על המחשב שלך. הבדיקות רצות מקומית, לא ב-GitHub.

  6. העבר את הגרסה למתחזק. המתחזק דוחף את tag הגרסה על main, וזה מתחיל את הפרסום.

שמות של גרסה ושל tag

קישור אל שמות של גרסה ושל tag
דבר שם
tag של Git (נדחף על ידי המתחזק) 1.0.0 (מספרים פשוטים, בלי v)
תגית ה-image וה-version בהערות 1.0.0

ה-workflow מתחיל רק עבור tag בצורת X.Y.Z ונעצר כשה-tag שונה מהקובץ VERSION.

כל גרסה דוחפת את תגית הגרסה שלה ואת :latest.

  1. דחוף את הגרסה הבאה עם התיקון.
  2. סמן את הגרסה הפגומה ברשימת העדכונים, כדי שהתקנות לא יציעו אותה.
  3. השאר את ה-tag.

תסמין. notes.py --check מסתיים בקוד 1. סיבה. קובץ ההערות שובר כלל. ההודעה מציינת את השורה. פתרון. ערוך את קובץ ההערות, אף פעם לא את הקבצים ב-releases/out, והרץ שוב.

תסמין. ה-workflow נעצר עם VERSION says. סיבה. ה-tag והקובץ VERSION שונים. פתרון. תקן את VERSION על main ודחוף tag של הגרסה הבאה.

קובץ הערות הגרסה

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

שדה תוכן
version X.Y.Z פשוט
theme שורה אחת
images רשימה של {registry, name}. רק Docker Hub holyarrs/holyarrs
docs_url אופציונלי. ריק אומר שאין קישור למסמכים
[[highlights]] בדיוק 3, כל אחד עם line, issues ו-shot. ה-issues שלהם לא מופיעים באף שורה של קבוצה
[groups] שורות לכל מקום. New הוא ברירת המחדל. האחרות מתחילות ב-Changed: , Fixed: או Docs: . כל אחת מסתיימת ב-issue שלה, כמו (#46). מקום עם פחות מ-3 שורות עובר ל-Also new
אופציונלי [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. חלקים ריקים מוסתרים

השתמש בשם משתמש של GitHub רק כשהוא ידוע, בקובץ ההערות או ב-releases/credits-map.json.

סדר הגוף: theme, Highlights, מקומות (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, שורת הסטטיסטיקה.

פלט ב-releases/out/<version>/ משמש ל
changelog.md הרשומה ביומן השינויים
github.md גוף הגרסה ב-GitHub
update-notes.json ההערות שהאפליקציה מציגה
reddit.txt הפוסט ב-Reddit
discord-dm.txt, discord-announce.md Discord. כל אחד נשאר מתחת ל-1,000 תווים
roadmap-card.json הכרטיס במפת הדרכים

notes.py מקבל את --file (קובץ הערות אחר), --map (מפת קרדיטים אחרת), --out (תיקיית פלט אחרת) ו---date. הדגל --check מזהיר על שורות ארוכות ועל חזרות כמעט זהות.

ה-workflow של ה-image

ה-workflow בשם HolyArrs - Release מתחיל כשנדחף tag של גרסה. יש בו שלושה שלבים:

  1. לבנות ולדחוף את ה-image עבור linux/amd64, linux/arm64 ו-linux/arm/v7, עם תגית הגרסה ועם latest.
  2. לעדכן את התיאור ב-Docker Hub מתוך README.md.
  3. לפרסם את הגרסה ב-GitHub עם הקטע של הגרסה הזו מתוך CHANGELOG.md.
רשימת העדכונים

האפליקציה קוראת רשימת עדכונים חתומה. כל גרסה מוסיפה לה רשומה וחותמת אותה. מפתח החתימה אף פעם לא נכנס לריפו. HolyArrs דוחה רשימה שהיא לא מצליחה לאמת.

אחרי גרסה, בדוק שתווית הגרסה של ה-image תואמת ל-tag, ועקוב אחרי issues חדשים ביום הראשון:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
תבנית בדיקה ל-Unraid

deploy/release/nas-template.py כותב תבנית משתמש של Unraid עבור image מדויק אחד. הוא לא מוריד, לא מתקין ולא מפרסם שום דבר.

Terminal window
python deploy/release/nas-template.py --image 'holyarrs/holyarrs@sha256:<digest>' --config '/mnt/<pool>/appdata/holyarrs-test' --movies /mnt/user/holyarrs-test-data/movies --downloads /mnt/user/holyarrs-test-data/downloads --port 6262 --output holyarrs-test.xml

החלף את <digest> ואת <pool>.

דגל הערות
--image ה-digest של ה-manifest ברג’יסטרי, לא מזהה image של Docker
--config נתיב של pool. הכלי מסרב ל-/mnt/user ול-/mnt/user0
--movies, --tv, --music, --downloads אופציונליים. נתיבים נפרדים הם mounts נפרדים, ולכן ייבוא מעתיק
--port ברירת המחדל 6262
--allowed-hosts אופציונלי, שמות מארחים מופרדים בפסיקים
--output קובץ ה-XML לכתיבה

התבנית מגדירה PUID=99, PGID=100 ו-UMASK=022. תן לחשבון הזה הרשאת כתיבה למדיה של הבדיקה. שים את הקובץ ב-/boot/config/plugins/dockerMan/templates-user/ ובחר אותו תחת Docker > Add Container > Template.

HolyArrs חינמי. אם זה חסך לך זמן, תן לו כוכב ב-GitHub, תמוך בפרויקט או קנה לי קפה.