Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

Gitlab เชฎเชพเช‚ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ เช˜เชฃเซ€ เชœเช—เซเชฏเชพเช เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

  1. เชœเซ‚เชฅ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚
  2. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚
  3. เช…เช‚เชฆเชฐ .gitlab-ci.yml

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชœเซ‚เชฅ เช…เชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชšเชฒเซ‹เชจเซ‡ "เชซเชพเช‡เชฒ" เช…เชฅเชตเชพ "เชฐเซ‡เช—เซเชฏเซเชฒเชฐ เชตเซ‡เชฐเซ€เชเชฌเชฒ" เชคเชฐเซ€เช•เซ‡ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชจเซ‡ "เชธเช‚เชฐเช•เซเชทเชฟเชค" เช…เชจเซ‡ "เชฎเชพเชธเซเช•" เชšเซ‡เช•เชฌเซ‹เช•เซเชธเชจเซ‡ เชšเซ‡เช• เช•เชฐเซ‹.

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

เชšเชพเชฒเซ‹ เชธเชฐเชณ เชตเชพเชฐเชธเชพเชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เช เช…เชจเซ‡ เชคเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชตเชงเซ เชœเชŸเชฟเชฒ เชฌเชจเชถเซ‡.

เช…เช—เซเชฐเชคเชพ เชธเซเชคเชฐเซ‹เชจเซ€ เช…เช‚เชคเชฟเชฎ เชธเซ‚เชšเชฟ เชฆเชธเซเชคเชพเชตเซ‡เชœเชจเชพ เช…เช‚เชคเซ‡ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡.

เชœเซ‚เชฅเซ‹ เชธเชพเชฅเซ‡ เชตเชพเชฐเชธเซ‹ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เชœเซ‚เชฅเซ‹เชฎเชพเช‚เชฅเซ€ เชšเชฒเซ‹ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เชฎเชณเซ‡ เช›เซ‡, เช† เชจเชฟเชฏเชฎ เชธเชพเชฅเซ‡ เช•เซ‡ เชœเซ‚เชฅ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เชจเชœเซ€เช• เชธเซเชฅเชฟเชค เช›เซ‡, เชคเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชตเชงเซ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

$ echo $MSG
B

เชœเซ‹ เชœเซ‚เชฅ B เชฎเชพเช‚ เชšเชฒเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เชจ เช•เชฐเซเชฏเซ‹ เชนเซ‹เชค, เชคเซ‹ เช†เชชเชฃเซ‡ เชฎเซ‚เชฒเซเชฏ A เชœเซ‹เชฏเซเช‚ เชนเซ‹เชค.

.gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐ เชตเซ‡เชฐเซ€เชเชฌเชฒเซเชธเชจเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เชฒเชˆ เชฐเชนเซเชฏเชพ เช›เซ‡ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชเช•เชฆเชฎ เชธเชฐเชณ เช›เซ‡: เชคเชฎเซ‡ เชตเซˆเชถเซเชตเชฟเช• เชธเซเชคเชฐเซ‡ เชšเชฒ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชฅเชตเชพ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชœเซ‹เชฌเชจเซ€ เช…เช‚เชฆเชฐ เช“เชตเชฐเชฐเชพเชˆเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

เชšเชพเชฒเซ‹ เชนเชตเซ‡ 2 เชจเซ‹เช•เชฐเซ€เช“ เชฌเชจเชพเชตเซ€เช, เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชเช•เชฎเชพเช‚ เช…เชฎเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ $MSG เชธเซ‚เชšเชตเซ€เชถเซเช‚.

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Custom in global .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Custom in job .gitlab-ci.yml"
  script:
    - echo $MSG

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    Custom in global .gitlab-ci.yml
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

เชœเซ‚เชฅเซ‹ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เช…เช‚เชฆเชฐเชจเซ‹ เชตเชพเชฐเชธเซ‹ .gitlab-ci.yml [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เชšเชพเชฒเซ‹ เช…เช—เชพเช‰เชจเชพ 2 เช‰เชฆเชพเชนเชฐเชฃเซ‹เชจเซ‡ เชœเซ‹เชกเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช. เช—เซเชฐเซเชช เชตเซ‡เชฐเซ€เชเชฌเชฒเซเชธ .gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐเชจเชพ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ เชชเชฐ เช…เช—เซเชฐเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Custom in global .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Custom in job .gitlab-ci.yml"
  script:
    - echo $MSG

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    Y
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    Y
    Job succeeded

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชšเชฒเซ‹เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€เชจเซ‡ เชตเชพเชฐเชธเซ‹ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชšเชฒเซ‹ เชนเช‚เชฎเซ‡เชถเชพ เชธเชฐเซเชตเซ‹เชšเซเชš เช…เช—เซเชฐเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡! เช…เชจเซ‡ .gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชšเชฒเซ‹ เช•เซ‹เชˆ เชญเซ‚เชฎเชฟเช•เชพ เชญเชœเชตเชคเชพ เชจเชฅเซ€.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

เช—เซเชฐเซ‚เชช เชตเซ‡เชฐเซ€เชเชฌเชฒเซเชธเชจเซ€ เช…เช—เซเชฐเชคเชพ เช“เช›เซ€ เช›เซ‡.
Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

เชšเชพเชฒเซ‹ เชชเชนเซ‡เชฒเชพเชจเชพเช‚ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚เชฅเซ€ เชซเชพเชˆเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช. เช…เชนเซ€เช‚ เชซเชฐเซ€เชฅเซ€ .gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเซ‚เชฅเซ‹เชจเซ€ เช…เช‚เชฆเชฐเชจเชพ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ เชนเชœเซ เชชเชฃ เชคเซ‡เชฎเชจเชพ เชชเชฐ เช…เช—เซเชฐเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Custom in global .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Custom in job .gitlab-ci.yml"
  script:
    - echo $MSG

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    project-3
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    project-3
    Job succeeded

เช–เชพเชฒเซ€ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡เชจเซ‹ เชตเชพเชฐเชธเซ‹ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เช–เชพเชฒเซ€ เชฎเซ‚เชฒเซเชฏ เชชเชฃ เชเช• เชฎเซ‚เชฒเซเชฏ เช›เซ‡
เช–เชพเชฒเซ€ เชฎเซ‚เชฒเซเชฏ เชจเชฒ เชจเชฅเซ€

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Custom in global .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Custom in job .gitlab-ci.yml"
  script:
    - echo $MSG

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    Job succeeded

เชธเชฎเชพเชตเซ‡เชถ เช…เชจเซ‡ เชœเซ‚เชฅเซ‹ เชธเชพเชฅเซ‡ เชตเชพเชฐเชธเซ‹ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ-2 เชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ-3เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถเซเช‚
เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชœเซ‚เชฅเซ‹เชจเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เช›เซ‡.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

เช…เชจเซ‡ .gitlab-ci.yml เชฎเชพเช‚ เชตเซˆเชถเซเชตเชฟเช• เชธเซเชคเชฐเซ‡ เชตเซ‡เชฐเซ€เชเชฌเชฒ เชธเซ‡เชŸ เช•เชฐเซ‹

variables:
 MSG: "With  include  .gitlab-ci.yml"
include:
 - project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
   file: '.gitlab-ci.yml'

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    B
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    B
    Job succeeded

เชธเชฎเชพเชตเซ‡เชถ เชธเชพเชฅเซ‡ เชตเชพเชฐเชธเซ‹ [เชธเซเชคเซเชฐเซ‹เชคเซ‹]

เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ-2 เชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ-3เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถเซเช‚.
เชถเชฐเชค เชธเชพเชฅเซ‡ เช•เซ‡: เชจ เชคเซ‹ เชœเซ‚เชฅเซ‹ เช…เชจเซ‡ เชจ เชคเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช•เซ‹เชˆ เชšเชฒ เชจเชฅเซ€.

เชšเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชœเซ‚เชฅเซ‹

Gitlab-CI เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เช†เชชเซ‡ เช›เซ‡?

.gitlab-ci.yml

เชชเชพเช›เชฒเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ€ เชœเซ‡เชฎ เชœ

variables:
 MSG: "With  include  .gitlab-ci.yml"
include:
 - project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
   file: '.gitlab-ci.yml'

เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฐเชฟเชฃเชพเชฎ

  • เชฌเชนเชพเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซเช‚:
    $ echo $MSG
    With include .gitlab-ci.yml
    Job succeeded
  • vars เชธเชพเชฅเซ‡ เชชเชกเช˜เซ‹:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพเช“:

  1. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชšเชฒเซ‹
  2. เชœเซ‚เชฅเซ‹เชฎเชพเช‚ เชšเชฒเซ‹
  3. เชœเซ‹เชฌเชจเซ€ เช…เช‚เชฆเชฐ เชธเช–เชค เชฐเซ€เชคเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ (เชธเชฎเชพเชตเซ‡เชฒ เชซเชพเช‡เชฒเซ‹ เชธเชนเชฟเชค)
  4. .gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐ เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹
  5. เชซเชพเชˆเชฒเซ‹เชจเซ€ เช…เช‚เชฆเชฐ เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹

เชจเชฟเชทเซเช•เชฐเซเชท

เชธเซŒเชฅเซ€ เช…เชธเซเชชเชทเซเชŸ เชฎเซเชฆเซเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชจเชฟเชฏเชฎ "เชšเชฒ เช•เซ‹เชกเชจเซ€ เชœเซ‡เชŸเชฒเซ‹ เชจเชœเซ€เช• เช›เซ‡, เชคเซ‡เชŸเชฒเซ‹ เชคเซ‡ เชตเชงเซ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡" เชชเชนเซ‡เชฒเชพ เชœเซ‚เชฅเซ‹ เชฎเชพเชŸเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡ เชœ เชจเชฟเชฏเชฎ .gitlab-ci.yml เชจเซ€ เช…เช‚เชฆเชฐเชจเชพ เชตเซ‡เชฐเซ€เชเชฌเชฒ เชฎเชพเชŸเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเชพเชคเซเชฐ เชถเชฐเชค เชนเซ‡เช เชณ. เช•เซ‡ เชœเซ‚เชฅเซ‹เชฎเชพเช‚เชจเชพ เชšเชฒเซ‹ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจเชฅเซ€.
เช†เช—เชณ, เชเช• เชฎเชนเชคเซเชตเชจเซ‹ เชฎเซเชฆเซเชฆเซ‹ เช เชธเชฎเชœเชตเชพเชจเซ‹ เช›เซ‡ เช•เซ‡ เชฎเซเช–เซเชฏ เช…เชจเซ‡ เชธเชฎเชพเชตเชฟเชทเซเชŸ .gitlab-ci.yml เชฎเชพเชŸเซ‡เชจเซ€ เชตเซˆเชถเซเชตเชฟเช• เชœเช—เซเชฏเชพ เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡. เช…เชจเซ‡ เชœเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เช…เช—เซเชฐเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹