Skip to main content

راهنمای استفاده از فایل gitlab-ci.yml

این مستند شامل اطلاعات مفید در رابطه با کانفیگ فایل gitlab-ci.yml می‌باشد (برگرفته از مستندات رسمی Gitlab).

keywordهای پرکاربرد

before_script

از before_script برای تعیین دستوراتی که باید قبل از script جاب اجرا شوند استفاده کنید. از این keyword تنها می‌توانید به عنوان بخشی از جاب و یا در داخل بخش default استفاده کنید. استفاه از این keyword خارج از اسکوپ جاب و default منقضی شده است. مثال:

job:
before_script:
- echo "Execute this command before any 'script:' commands."
script:
- echo "This command executes after the job's 'before_script' commands."

after_script

از after_script برای تعیین دستوراتی که باید بعد از اجرای جاب، حتی جاب‌های fail شده، اجرا شوند، استفاده کنید. همانند keyword قبلی، این keyword نیز باید در اسکوپ جاب و یا default استفاده شود. مثال:

job:
script:
- echo "An example script section."
after_script:
- echo "Execute this command after the `script` section completes."

artifacts

artifacts و یا job artifacts لیستی از فایل‌ها و یا دایرکتوری‌هایی هستند که بعد از اتمام جاب از طریق لینک جاب، قابل دانلود و استفاده هستند. اطلاعات بیشتر در رابطه با artifacts را می‌توانید در این لینک مشاهده کنید. مثال:

job:
artifacts:
name: "job1-artifacts-file"
public: false
paths:
- binaries/
- .config
exclude:
- binaries/**/*.o
expire_in: 1 week
expose_as: 'artifact 1'
when: on_failure

cache

از cache می‌توانید برای مشخص کردن فایل‌ها و یا دایرکتوری‌هایی که نیاز است بین جاب‌های مختلف کش شوند، استفاده کنید. مثال:

cache-job:
script:
- echo "This job uses a cache."
cache:
key:
files:
- Gemfile.lock
- package.json
paths:
- vendor/ruby
- node_modules

image

قابل استفاده برای تنظیم داکر ایمیجی که جاب در آن اجرا می‌شود. مثال:

default:
image: ruby:2.7

rspec:
script: bundle exec rspec

rspec 3.0:
image:
name: ruby:3.0
pull_policy: if-not-present
script: bundle exec rspec

needs

با استفاده از needs می‌توانید جاب‌ها را، چه خود جاب و چه artifacts، به هم وابسته کنید (در صفحه پایپلاین می‌توانید ارتباط بین جاب‌ها را از طریق directed acyclic graph مشاهده کنید). مثال:

linux:build:
stage: build
script: echo "Building linux..."

mac:build:
stage: build
script: echo "Building mac..."

lint:
stage: test
needs: []
script: echo "Linting..."

linux:rspec:
stage: test
needs: ["linux:build"]
script: echo "Running rspec on linux..."

mac:rspec:
stage: test
needs: ["mac:build"]
script: echo "Running rspec on mac..."

production:
stage: deploy
script: echo "Running production..."
environment: production

اگر سوال و یا ابهامی در رابطه با تنظیم فایل .gitlab-ci.yml وجود داشت، آن را از طریق تیکت، با تیم پشتیبانی هم‌روش مطرح کنید.