GitLab CI
GitLab CI/CD را از اولین فایل gitlab-ci.yml. تا پایپلاینهای چندمرحلهای با آرتیفکتها، محیطها و دیپلویمنتها یاد بگیرید.
11 درس، به ترتیب
- 120 دقیقه
CI/CD چیست
تیمی را تصور کنید که یک برنامهی وب را به شیوهی قدیمی منتشر میکند. یکی قابلیتی را تمام میکند، تستها را روی لپتاپ خودش اجرا میکند (یا اجرا...
Continuous integrationContinuous deliveryContinuous deploymentPipelinesStagesJobs+2 - 225 دقیقه
اولین پایپلاین (pipeline) شما
حالا واژگانش را بلدید: پایپلاین، مرحله، جاب، رانر. اما بلد بودن واژهها با اطمینان داشتن یکی نیست. «GitLab اسکریپت شما را روی هر پوش خودکار اجرا...
.gitlab-ci.yml locationMinimal pipelineSingle jobScript keywordPipeline UIJob logs - 330 دقیقه
جابها (jobs) و استیجها (stages)
خط لوله (pipeline) درس قبل یک کار (job) داشت. پروژههای واقعی هیچوقت اینقدر کوچک نمیمانند. یک پروژه واقعی کد را کامپایل میکند، مجموعه آزمونهای...
Default stagesStage keywordParallel jobs in same stageStages keywordNeeds for DAGJob ordering - 430 دقیقه
متغیرها و اسرار
خط لولهای (pipeline) که هر بار دقیقاً یکجور رفتار کند، فرقی نکند چه کسی آن را پوش (push) کرده و روی کدام شاخه، نمیتواند محیط آزمایشی را از محیط...
Variables blockPredefined CI variablesCI_COMMIT_SHACI_PROJECT_DIRMasked variablesProtected variables+1 - 530 دقیقه
آرتیفکتها (artifacts) و کشها (caches)
هر جاب در یک پایپلاین از یک نسخه تمیز و تازه از مخزن شما شروع میشود و داخل محیطی یکبارمصرف اجرا میشود که همان لحظه پایان جاب دور ریخته میشود....
Artifacts pathsArtifacts expire_inDownloading artifactsCache keyCache pathsArtifacts vs caches - 630 دقیقه
Rules و جابهای (jobs) شرطی
هر کاری (job) که تا اینجا نوشتهاید روی تکتک پوشها (push) اجرا میشود، فرقی نمیکند روی کدام شاخه نشسته یا خط لوله (pipeline) اصلاً چرا شروع شده...
Rules keywordIf conditionsCI_COMMIT_BRANCHCI_PIPELINE_SOURCEWhen manualChanges paths+1 - 735 دقیقه
جابهای (jobs) و سرویسهای (services) Docker
رانر پایپلاین یک ماشین لخت است و به طور پیشفرض هیچ خبری ندارد که پروژهٔ شما به Python نسخهٔ 3.12 نیاز دارد، یا به نسخهٔ خاصی از Node، یا اصلاً به...
Image keywordServices keywordPostgres serviceRedis serviceDocker-in-dockerService networking - 830 دقیقه
محیطها و استقرارها
کار (job) استقرار شما کار میکند. scp یا kubectl apply یا یک نمایشنامه Ansible را اجرا میکند، سبز میشود، و نسخه تازه بالا میآید. بعد یک نفر پرسشی...
Environment keywordEnvironment nameEnvironment urlDeployment trackingManual production deployDynamic environments+1 - 930 دقیقه
اینکلودها (includes) و تمپلیتها (templates)
تا پروژه سومتان، فایلهای .gitlab-ci.yml کمکم شبیه هم میشوند. همان کار (job) وارسی سبک. همان آمادهسازی آزمون با همان کلید انباره. همان وردِ...
Include localInclude projectInclude remoteInclude templateExtends keywordYAML anchors+1 - 1030 دقیقه
رانرها (runners)
هر چه تا اینجای این دوره بوده توصیف کار بوده است. خطهای script: را نوشتید، گیتلب (GitLab) خواندشان، و یکجوری کانتینری پیدا شد، آزمونهایتان را...
Shared runnersGroup runnersProject runnersDocker executorShell executorKubernetes executor+2 - 1160 دقیقه
پروژه نهایی: ساخت، تست، مستقرسازی
هر درس این دوره یک کلیدواژه را روی یک کار (job) اسباببازی یاد داد. یادگیری یک کلیدواژه همینطور است ولی روبهرو شدن با آن اینطور نیست. یک خط لوله...
Multi-stage pipelineBuild artifactPostgres service testDocker image build and pushManual production deployRules on main
GitLab CI را به زبان خودت یاد بگیر
هر درس، آزمون و پاسخ مربی به زبان شما نمایش داده میشود. مربی هوشمند به همان زبانی پاسخ میدهد که شما سوال میکنید.
Roles that use GitLab CI
See how hiring teams interview engineers on GitLab CI, in production-like environments.
CI/CD Engineer
Hire CI/CD engineers who keep your release train on time. Interview them in real GitHub Actions, GitLab CI and Jenkins workspaces with builds that fail the way they do in production.
See the interviewRelease/Build Engineer
Hire release and build engineers who make shipping boring. Real repos, real artifact stores, real signing flows. We record every step they take.
See the interviewDevOps Engineer
Hire DevOps engineers who actually ship. Run live or take-home interviews in production-like Linux environments with Docker, Kubernetes, Terraform and CI/CD. See how they debug, automate, and work alongside AI.
See the interview