راهنمای استفاده از فایل 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
وجود داشت، آن را از طریق تیکت، با تیم پشتیبانی همروش مطرح کنید.