פרסום גרסה
מומחה
הפוך build שנבדק לגרסה. הדף הזה מיועד למתחזקים.
לפני שמתחילים
קישור אל לפני שמתחילים- כל הבדיקות בבדיקות עוברות, כולל ריצת end-to-end מלאה והריצות הארוכות וריצות התקלות.
- ב-
CHANGELOG.mdיש את הגרסה החדשה. - Python 3 מותקן בשביל סקריפטי הגרסה.
להכין גרסה
קישור אל להכין גרסה-
כתוב
releases/notes-<version>.toml, למשלreleases/notes-1.0.0.toml. ראה קובץ הערות הגרסה. -
בדוק אותו:
Terminal window python deploy/release/notes.py 1.0.0 --checkאתה אמור לראות שאין שגיאות. מילה אסורה, מקף ארוך (em dash), תאריך, דיבורי השקה או הדגשה שחוזרת על עצמה מסיימים עם קוד 1.
-
בנה את טקסטי הגרסה:
Terminal window python deploy/release/notes.py 1.0.0אתה אמור למצוא 7 קבצים ב-
releases/out/1.0.0/. -
בנה את ה-image והפעל אותו על תיקיית הגדרות חדשה:
Terminal window docker build --file deploy/Dockerfile .אתה אמור לראות את אשף ההפעלה הראשונה.
-
הרץ כל בדיקה בבדיקות על המחשב שלך. הבדיקות רצות מקומית, לא ב-GitHub.
-
העבר את הגרסה למתחזק. המתחזק דוחף את tag הגרסה על main, וזה מתחיל את הפרסום.
אפשרויות
קישור אל אפשרויותשמות של גרסה ושל tag
קישור אל שמות של גרסה ושל tag| דבר | שם |
|---|---|
| tag של Git (נדחף על ידי המתחזק) | 1.0.0 (מספרים פשוטים, בלי v) |
תגית ה-image וה-version בהערות |
1.0.0 |
ה-workflow מתחיל רק עבור tag בצורת X.Y.Z ונעצר כשה-tag שונה מהקובץ VERSION.
תגיות של image
קישור אל תגיות של imageכל גרסה דוחפת את תגית הגרסה שלה ואת :latest.
לבטל גרסה
קישור אל לבטל גרסה- דחוף את הגרסה הבאה עם התיקון.
- סמן את הגרסה הפגומה ברשימת העדכונים, כדי שהתקנות לא יציעו אותה.
- השאר את ה-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 של גרסה. יש בו שלושה שלבים:
- לבנות ולדחוף את ה-image עבור
linux/amd64,linux/arm64ו-linux/arm/v7, עם תגית הגרסה ועםlatest. - לעדכן את התיאור ב-Docker Hub מתוך
README.md. - לפרסם את הגרסה ב-GitHub עם הקטע של הגרסה הזו מתוך
CHANGELOG.md.
רשימת העדכונים
האפליקציה קוראת רשימת עדכונים חתומה. כל גרסה מוסיפה לה רשומה וחותמת אותה. מפתח החתימה אף פעם לא נכנס לריפו. HolyArrs דוחה רשימה שהיא לא מצליחה לאמת.
אחרי גרסה, בדוק שתווית הגרסה של ה-image תואמת ל-tag, ועקוב אחרי issues חדשים ביום הראשון:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsתבנית בדיקה ל-Unraid
deploy/release/nas-template.py כותב תבנית משתמש של Unraid עבור image מדויק אחד. הוא לא מוריד, לא מתקין ולא מפרסם שום דבר.
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, תמוך בפרויקט או קנה לי קפה.