شما می توانید نحوه اجرای خطوط لوله برای پروژه خود را سفارشی کنید.
تغییر دهید که کاربران می توانند خطوط لوله شما را مشاهده کنند
- خطوط لوله
- گزارش های خروجی کار
- مصنوعات شغلی
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- برای پروژه های عمومی، برای همه.
- برای پروژه های داخلی، برای همه کاربران وارد شده به جز کاربران خارجی.
- برای پروژه های خصوصی، برای همه اعضای پروژه (مهمان یا بالاتر).
- برای پروژههای عمومی، گزارشهای کار، مصنوعات شغلی، داشبورد امنیتی خط لوله، و آیتمهای منوی CI/CD فقط برای اعضای پروژه (گزارشگر یا بالاتر) قابل مشاهده هستند. سایر کاربران، از جمله کاربران مهمان، فقط می توانند وضعیت خطوط لوله و مشاغل را مشاهده کنند و تنها هنگام مشاهده درخواست های ادغام یا تعهدات.
- برای پروژه های داخلی، خطوط لوله برای همه کاربران وارد شده به جز کاربران خارجی قابل مشاهده است. ویژگی های مرتبط فقط برای اعضای پروژه (گزارشگر یا بالاتر) قابل مشاهده است.
- برای پروژه های خصوصی، خطوط لوله و ویژگی های مرتبط فقط برای اعضای پروژه (گزارشگر یا بالاتر) قابل مشاهده است.
تغییر دید خط لوله برای اعضای غیر پروژه در پروژه های عمومی
شما می توانید نمایان بودن خطوط لوله را برای اعضای غیر پروژه در پروژه های عمومی کنترل کنید.
- قابلیت مشاهده پروژه روی Internal یا Private تنظیم شده است، زیرا اعضای غیر پروژه نمی توانند به پروژه های داخلی یا خصوصی دسترسی داشته باشند.
- تنظیم خطوط لوله عمومی غیرفعال است.
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >عمومی .
- قابلیت مشاهده، ویژگیهای پروژه، مجوزها را گسترش دهید.
- برای CI/CD، انتخاب کنید:
- فقط اعضای پروژه: فقط اعضای پروژه می توانند خطوط لوله را مشاهده کنند.
- Everyone With Access: اعضای غیر پروژه نیز می توانند خطوط لوله را مشاهده کنند.
- ذخیره تغییرات را انتخاب کنید.
جدول مجوزهای CI/CD ویژگی های خط لوله را فهرست می کند که اعضای غیر پروژه می توانند با انتخاب Everyone With Access به آن دسترسی داشته باشند.
لغو خودکار خطوط لوله اضافی
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- چک باکس لغو خودکار خطوط لوله اضافی را انتخاب کنید.
- ذخیره تغییرات را انتخاب کنید.
از کلمه کلیدی وقفه دار برای نشان دادن اینکه آیا یک کار در حال اجرا می تواند قبل از اتمام آن لغو شود استفاده کنید.
از کارهای استقرار قدیمی جلوگیری کنید
- در GitLab 12. 9 معرفی شد.
- در GitLab 15. 5، رفتار برای جلوگیری از اجرای کارهای قدیمی تغییر کرد.
پروژه شما ممکن است چندین کار استقرار همزمان داشته باشد که قرار است در یک بازه زمانی اجرا شوند.
این می تواند منجر به موقعیتی شود که در آن یک کار استقرار قدیمی بعد از یک کار جدیدتر اجرا شود، که ممکن است آن چیزی نباشد که شما می خواهید.
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- چک باکس Prevent Olded Deployment jobs را انتخاب کنید.
- ذخیره تغییرات را انتخاب کنید.
برای اطلاعات بیشتر ، به ایمنی استقرار مراجعه کنید.
یک پرونده پیکربندی CI/CD سفارشی را مشخص کنید
پشتیبانی از مکان های خارجی . gitlab-ci. yml معرفی شده در GITLAB 12. 6.
GITLAB انتظار دارد پرونده پیکربندی CI/CD (. gitlab-ci. yml) را در فهرست اصلی پروژه پیدا کند. با این حال ، می توانید یک مسیر نام خانوادگی جایگزین ، از جمله مکان های خارج از پروژه را مشخص کنید.
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- در قسمت پرونده پیکربندی CI/CD ، نام پرونده را وارد کنید. اگر پرونده:
- در فهرست ریشه نیست ، مسیر را شامل می شود.
- در یک پروژه متفاوت ، شامل گروه و نام پروژه است.
- در یک سایت خارجی قرار دارد ، URL کامل را وارد کنید.
- ذخیره تغییرات را انتخاب کنید.
شما نمی توانید از ویرایشگر خط لوله پروژه خود برای ویرایش پرونده های پیکربندی CI/CD در سایر پروژه ها یا در یک سایت خارجی استفاده کنید.
نمونه های فایل پیکربندی CI/CD سفارشی
- من/مسیر/. gitlab-ci. yml
- من/مسیر/. my-custom-file. yml
- http://example. com/generate/ci/config. yml
- پرونده باید در شاخه پیش فرض خود وجود داشته باشد ، یا شعبه را به عنوان refname مشخص کند.
- مسیر باید نسبت به دایرکتوری ریشه در پروژه دیگر باشد.
- مسیر باید توسط یک نماد @ و مسیر کامل و مسیر پروژه دنبال شود.
- . gitlab-ci. [email protected]/یک پروژه دیگر
- my/path/. my-custom-file. [email protected]/sub-group/another-project
- my/path/. my-custom-file. [email protected]/sub-group1/sub-group2/another-project: refname
- برای میزبانی پرونده پیکربندی یک پروژه عمومی ایجاد کنید.
- مجوزهای نوشتن را فقط به کاربرانی که مجاز به ویرایش پرونده هستند ، ارائه دهید.
سپس سایر کاربران و پروژه ها می توانند بدون اینکه بتوانند آن را ویرایش کنند ، به پرونده پیکربندی دسترسی پیدا کنند.
استراتژی پیش فرض GIT را انتخاب کنید
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- تحت استراتژی GIT ، گزینه ای را انتخاب کنید:
- کلون Git کندتر است زیرا مخزن را از ابتدا برای هر کار کلون می کند. با این حال ، کپی کاری محلی همیشه بکر است.
- Git Fetch سریعتر است زیرا از نسخه محلی کار می کند (و اگر وجود نداشته باشد به کلون می رسد). این توصیه می شود ، به خصوص برای مخازن بزرگ.
استراتژی GIT پیکربندی شده را می توان با متغیر Git_strategy در پرونده . gitlab-ci. yml نادیده گرفت.
تعداد تغییرات ناشی از کلون را محدود کنید
- معرفی شده در Gitlab 12. 0.
- تغییر ارزش عمق Git در Gitlab 14. 7.
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- تحت استراتژی GIT ، تحت کلون کم عمق Git ، یک مقدار را وارد کنید. حداکثر مقدار 1000 است. برای غیرفعال کردن کلون کم عمق و ایجاد Gitlab CI/CD هر بار همه شاخه ها و برچسب ها را واکشی کنید ، مقدار را خالی نگه دارید یا روی 0 تنظیم کنید.
در نسخه های Gitlab 14. 7 و بعد از آن ، پروژه های تازه ایجاد شده دارای ارزش عمق پیش فرض 20 هستند. نسخه های Gitlab 14. 6 و پیش از این دارای ارزش عمق پیش فرض 50 هستند.
این مقدار را می توان با متغیر git_depth در پرونده . gitlab-ci. yml رد کرد.
محدودیتی را برای مدت طولانی کار تعیین کنید
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- در قسمت Timeout ، تعداد دقیقه ها یا یک مقدار قابل خواندن انسانی مانند 2 ساعت را وارد کنید. باید 10 دقیقه یا بیشتر و کمتر از یک ماه باشد. پیش فرض 60 دقیقه است.
مشاغلی که از زمان وقوع فراتر رفته اند به عنوان شکست خورده مشخص می شوند.
می توانید این ارزش را برای دوندگان جداگانه نادیده بگیرید.
نتایج پوشش آزمون درخواست ادغام
اگر در کد خود از پوشش تست استفاده می کنید ، می توانید از یک عبارت معمولی برای یافتن نتایج پوشش در ورود به سیستم استفاده کنید. سپس می توانید این نتایج را در درخواست ادغام در GitLab وارد کنید.
اگر خط لوله موفق شود ، پوشش در ویجت درخواست ادغام و جدول مشاغل نشان داده می شود. اگر چندین شغل در خط لوله گزارش های پوشش داشته باشد ، به طور متوسط.
نتایج پوشش آزمون را با استفاده از کلمه کلیدی پوشش اضافه کنید
برای افزودن نتایج پوشش آزمایش به یک درخواست ادغام با استفاده از پرونده . gitlab-ci. yml پروژه ، یک عبارت منظم را با استفاده از کلمه کلیدی پوشش ارائه دهید.
نمونه های پوشش آزمون
از این Regex برای ابزارهای آزمایشی متداول استفاده کنید.
- SimpleCov (روبی). مثال: / \ (\ d+. \ d+\ ٪ \) تحت پوشش /.
- Pytest-Cov (پایتون). مثال: /(؟i)Total.*؟(100 (؟: \. 0+)؟ \ ٪ | [1-9]؟ \ d (؟: \. \ d+)؟ \ ٪) $/.
- Scoverage (Scala). مثال: / پوشش بیانیه [a-za-z \.*] \ s*: \ s*([^٪]+) /.
- آف ت-پوش ش-رنگ = هرگز (PHP). مثال: /^\S*Cov:\S* \D+\ .\D+؟٪ $/.
- phpunit-پوشش-متن-رنگ = هرگز (PHP). مثال: /^\SPLINES:\S*\D+.\D+\٪/.
- GCOVR (C/C ++). مثال: /^total.*\S+(\D+\٪) $/.
- شیر-پوشش-گزارش = متن-تابستان (Nodejs). مثال: /^عبارات \ s*: \ s*([^٪]+) /.
- تست NPM NYC (NodeJS). مثال: / همه پرونده ها [^|]*\ | [^|]*\ s+([\ d \.]+) /.
- JES T-C I-پوشش (Nodejs). مثال: / همه پرونده ها [^|]*\ | [^|]*\ s+([\ d \.]+) /.
- Excoveralls (Elixir). به عنوان مثال: /\OciationTotal\ \S+(\D+\.\D+)٪/.
- تست مخلو ط-پوشش (اکسیر). مثال: /\D+.\D+\٪ \S+\|\S+TOTAL/.
- Jacoco (جاوا/کوتلین). به عنوان مثال: /total. mociation0-؟ 9ociation )٪/.
- GO TES T-COVER (GO). مثال: / پوشش: \ d+. \ d+٪ بیانیه ها /.
- . NET (OpenCover). مثال: / (نقاط بازدید شده).*\ ((.*) \) /.
- دات نت (پوشش خط تست dotnet). مثال: /Total\s*\|\s*(\d+(?:\.\d+)?)/ .
- برزنت (زنگ). مثال: /^\d+.\d+% پوشش/ .
- Pester (PowerShell). مثال: /Covered (\d+\.\d+%)/.
مشاهده تاریخچه پوشش کد
- قابلیت دانلود csv. را در GitLab 12. 10 معرفی کرد.
- نمودار معرفی شده در GitLab 13. 1.
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Analytics >مخزن .
داده های تاریخی برای هر شغل در لیست کشویی بالای نمودار ذکر شده است.
برای مشاهده یک فایل CSV از دادهها، دانلود دادههای خام (csv.) را انتخاب کنید.
قانون تأیید چک پوشش
- در GitLab 14. 0 معرفی شد.
- قابل تنظیم در تنظیمات پروژه در GitLab 14. 1.
زمانی که ادغام درخواست ادغام باعث کاهش پوشش آزمایشی پروژه میشود، میتوانید تأییدیههای درخواست ادغام را برای نیاز به تأیید توسط کاربران منتخب یا گروهی اجرا کنید.
- برای تمام کارهایی که میخواهید در مقدار پوشش کلی گنجانده شود، یک عبارت منظم پوشش تنظیم کنید.
- Go to your project and select Settings >درخواست های ادغام
- در قسمت تأییدیههای درخواست ادغام، فعال کردن را در کنار قانون تأیید پوشش بررسی انتخاب کنید.
- شاخه Target را انتخاب کنید.
- تعداد تأییدیه های مورد نیاز را بیشتر از صفر تنظیم کنید.
- کاربران یا گروه هایی را برای ارائه تایید انتخاب کنید.
- افزودن قانون تأیید را انتخاب کنید.
کدهای رنگ را از پوشش کد حذف کنید
برخی از ابزارهای پوشش تست با کدهای رنگی ANSI که به درستی توسط عبارت معمولی تجزیه نمی شوند، خروجی می گیرند. این باعث می شود تجزیه پوشش با شکست مواجه شود.
برخی از ابزارهای پوشش گزینه ای برای غیرفعال کردن کدهای رنگ در خروجی ارائه نمی دهند. اگر چنین است، خروجی ابزار پوشش را از طریق یک اسکریپت کوچک یک خطی که کدهای رنگ را حذف می کند، لوله کنید.
نشان های خط لوله
نشان های خط لوله وضعیت خط لوله و مقدار پوشش آزمایشی پروژه شما را نشان می دهد. این نشان ها توسط آخرین خط لوله موفق تعیین می شوند.
آخرین نشان انتشار
نشان آخرین نسخه آخرین نام تگ انتشار را برای پروژه شما نشان می دهد. بهطور پیشفرض، نشان، نسخه را با استفاده از release_at time مرتبسازی میکند. پشتیبانی از مرتب سازی semver در این شماره پیگیری می شود.
کد وضعیت خط لوله، گزارشهای پوشش، و نشانهای آخرین نسخه را مشاهده کنید
- On the top bar, select Main menu >پروژه ها را انجام دهید و پروژه خود را پیدا کنید.
- On the left sidebar, select Settings >CI/CD.
- خطوط لوله عمومی را گسترش دهید.
- در بخش وضعیت خط لوله، گزارش پوشش، یا آخرین نسخه، نشانیهای اینترنتی تصاویر را مشاهده کنید.
نشان وضعیت خط لوله
- انتظار
- در حال اجرا
- گذشت
- ناموفق
- پرش کرد
- لغو شد
- ناشناخته
با استفاده از پیوند زیر می توانید به تصویر نشان وضعیت خط لوله دسترسی پیدا کنید:
فقط وضعیت عدم رد شدن را نمایش دهید
برای اینکه نشان وضعیت خط لوله فقط آخرین وضعیت عدم رد شدن را نشان دهد، از پارامتر ? ignore_skipped=true query استفاده کنید:
نشان گزارش پوشش آزمون
می توانید بیان منظم را برای گزارش پوشش تعریف کنید که هر ورود به سیستم در برابر آن مطابقت دارد. این بدان معنی است که هر کار در خط لوله می تواند مقدار درصد پوشش آزمون را تعریف کند.
برای دسترسی به نشان پوشش آزمون ، از لینک زیر استفاده کنید:
برای دریافت گزارش پوشش از یک کار خاص ، پارامتر Coverage_Job_name را به URL اضافه کنید. به عنوان مثال ، می توانید از کد مشابه موارد زیر استفاده کنید تا نشان گزارش پوشش آزمون کار پوشش را به یک پرونده Markdown اضافه کنید:
گزارش پوشش آزمایش رنگ و محدودیت های نشان
- 95 تا 100 ٪ - خوب ( #4C1)
- 90 تا 95 ٪ - قابل قبول ( #A3C51C)
- 75 تا 90 ٪ - متوسط ( #DFB317)
- 0 تا 75 ٪ - کم ( #E05D44)
- بدون پوشش - ناشناخته ( #9F9F9F)
- min_good (پیش فرض 95 ، می تواند از هر مقدار بین 3 تا 100 استفاده کند)
- min_acbleable (پیش فرض 90 ، می تواند از هر مقدار بین 2 و min_good-1 استفاده کند)
- min_medium (پیش فرض 75 ، می تواند از هر مقدار بین 1 و min_acbleable-1 استفاده کند)
اگر یک مرز نامعتبر تنظیم شود ، GitLab به طور خودکار آن را تنظیم می کند تا معتبر باشد. به عنوان مثال ، اگر min_good 80 تنظیم شده باشد ، و min_acbleable روی 85 (خیلی زیاد) تنظیم شده است ، gitlab به طور خودکار min_acbleable را به 79 تنظیم می کند (min_good - 1).
آخرین نشان انتشار
وقتی نسخه ای در پروژه شما وجود دارد ، آخرین نام برچسب انتشار را نشان می دهد. اگر نسخه ای وجود نداشته باشد ، هیچ کدام را نشان نمی دهد.
با استفاده از لینک زیر می توانید به آخرین تصویر نشان انتشار دسترسی پیدا کنید:
تنظیم ترجیحات
به طور پیش فرض ، آخرین نشان نسخه با استفاده از زمان انتشار_ات ، نسخه را واگذار می کند. استفاده از پارامتر پرس و جو؟ order_by = Release_at اختیاری است ، و پشتیبانی از آن؟ Order_By = semver در این شماره ردیابی می شود: