Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


GitLab CI устраняем дублирование кода и повторно используем куски


GitLab CI устраняем дублирование кода и повторно используем куски

Простейший пример подключаемого файла

.templates.gitlab-ci.yml

.basic_check1:
  script:
    - echo "basic check1"

.basic_check2:
  script:
    - echo "basic check2"

.gitlab-ci.yml

include:
  - .templates.gitlab-ci.yml

job1:
  stage: test
  script:
    - !reference [.basic_check1, script]
    - !reference [.basic_check2, script]

Еще живой пример

Делаем файл, в котором описываем какой-либо шаблон-набор, который хотим использовать в джобах повторно

.templates.gitlab-ci.yml
.basic_commands:
  before_script:
    - apk add --no-cache openssh-client
    - mkdir -p ~/.ssh
    - echo "${SSH_PRIVATE_KEY}" | base64 -d | tr -d '\r' > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${VM_USER}@${VM_IP} "sudo apt install dos2unix -y"

ПОдключаем в главный манифест и далее с помощью !reference где-либо указываем

.gitlab-ci.yml
include:
  - .templates.gitlab-ci.yml

rollback:
  stage: rollback
  image: alpine:3.20
  before_script:
    - !reference [.basic_commands, before_script]
    - scp -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ./rollback.sh ${VM_USER}@${VM_IP}:/home/${VM_USER}/rollback.sh
    - ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${VM_USER}@${VM_IP} "chmod +x /home/${VM_USER}/rollback.sh && dos2unix /home/${VM_USER}/rollback.sh"
  script:
    - ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${VM_USER}@${VM_IP} "export VERSION_ROLLBACK=${VERSION_ROLLBACK}; /home/${VM_USER}/rollback.sh"
  when: manual

Все :)

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект