Skip to content

چک‌لیست ریلیز ​

ریلیز به هر سروری می‌رسد که در پنلش Update را بزند، w-ui update را اجرا کند یا تازه نصب شود. هیچ‌کدام از این مراحل اختیاری نیست.

۱. قبل از هر تگی ​

۲. main سبز است ​

۳. آزمایش روی dev-latest ​

پیش‌انتشار dev-latest با هر push سبز به main دوباره ساخته می‌شود. قبل از تگ:

۴. تگ ​

bash
git tag -a vX.Y.Z -m "W-UI X.Y.Z"
bash
git push origin vX.Y.Z

فقط وقتی مرحلهٔ ۲ سبز است. گردش‌کار ریلیز به‌هرحال چک می‌کند: اولین جابش منتظر می‌ماند CI روی main برای دقیقاً همان کامیتِ تگ تمام شود، هر ۳۰ ثانیه و تا ۳۰ دقیقه نگاه می‌کند، و تا سبز تمام نشود چیزی ساخته نمی‌شود. اگر قرمز تمام شد، اصلاً اجرا نشده بود یا وقت انتظار تمام شد و هنوز در حال اجرا بود، ریلیز متوقف می‌شود؛ وقتی CI سبز شد گردش‌کار را از تب Actions دوباره اجرا کنید. بدون کلید امضا هم منتشر نمی‌کند.

۵. بعد از انتشار ​

تست محافظ ریلیز بدون انتشار ​

چکی که گردش‌کار ریلیز اول اجرا می‌کند را می‌شود دستی اجرا کرد؛ فقط می‌خواند:

bash
GITHUB_TOKEN=<توکنی که Actions را بخواند> go run ./tools/release ci-passed -repo AbolfazlTafakori/w-ui -sha "$(git rev-parse HEAD)"

تا وقتی CI در حال اجراست منتظر می‌ماند (-every، -timeout)، بعد اجرای سبز را چاپ می‌کند یا می‌گوید چرا نیست. تست‌هایش (go test ./tools/release) اجرای سبز، قرمز، در حال اجرا که بعد سبز یا قرمز می‌شود، اجرایی که از وقت انتظار بیشتر طول می‌کشد، اجرای دوباره، شاخهٔ دیگر و کامیت دیگر را پوشش می‌دهند و چک می‌کنند release.yml منتظرش می‌ماند و بدون کلید امضا شکست می‌خورد.

Released under the AGPL-3.0 License.