Инструменты пользователя

Инструменты сайта


service:gitlab

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:gitlab [31.05.2024 07:18] – [Релизы] viacheslavservice:gitlab [15.01.2025 13:46] (текущий) – [Deploy] viacheslav
Строка 75: Строка 75:
 Когда релиз создаётся, то Когда релиз создаётся, то
   * Гитлаб автоматически архивирует исходный код и ассоциирует его с релизом.   * Гитлаб автоматически архивирует исходный код и ассоциирует его с релизом.
-  * Гитлаб автоматически создаёт json-файл ([[https://docs.gitlab.com/ee/user/project/releases/release_evidence.html|release evidence]]), где перечислено всё, что входит в релиз, что нужно для сравнения релизов и их аудита.+  * Гитлаб автоматически создаёт json-файл ([[https://docs.gitlab.com/ee/user/project/releases/release_evidence.html|release evidence]]), где перечислено всё, что входит в релиз, что нужно для сравнения релизов и их аудита. Можно использовать API для генерации release evidence, их может быть несколько.
  
 После релиза можно После релиза можно
Строка 86: Строка 86:
 [[https://docs.gitlab.com/ee/user/project/releases/release_cicd_examples.html|Release CI/CD examples]]\\ [[https://docs.gitlab.com/ee/user/project/releases/release_cicd_examples.html|Release CI/CD examples]]\\
 [[https://docs.gitlab.com/ee/user/project/releases/release_cli.html|Release CLI tool]] [[https://docs.gitlab.com/ee/user/project/releases/release_cli.html|Release CLI tool]]
 +
 +В Гитлабе есть несколько функций для удобства развертывания и теста релизов.
 +
 +  * [[https://docs.gitlab.com/ee/ci/review_apps/|Review apps]] - предпросмотр изменений, сделанных в ветке, с помощью развёртывания динамического окружения для мердж-реквеста. [[https://www.youtube.com/watch?v=HblSiPFamDI|Youtube]]
 +  * [[https://docs.gitlab.com/ee/operations/feature_flags.html|Feature flags]] - переключатели, позволяющие включить и выключать функции для тех или иных групп пользователей.
 +  * [[https://docs.gitlab.com/ee/user/project/pages/index.html|Gitlab Pages]] - встроенный хостинг статических веб-страниц прямо из репозитория. Таким образом можно хостить портфолио, документацию, презентации и т. п. [[https://www.youtube.com/watch?v=TWqh9MtT4Bg|Youtube]]
 ===== Pipeline ===== ===== Pipeline =====
 Пайплайн - это файл ''.gitlab-ci.yml'' в корне git-репозитория. Состоит из последовательных этапов (stages), в каждом этапе есть задачи (jobs). По умолчанию, если не заданы условия, задачи выполняются параллельно. Если какая-то задача выполнилась с ошибкой, то весь пайплайн будет провален. Пайплайн - это файл ''.gitlab-ci.yml'' в корне git-репозитория. Состоит из последовательных этапов (stages), в каждом этапе есть задачи (jobs). По умолчанию, если не заданы условия, задачи выполняются параллельно. Если какая-то задача выполнилась с ошибкой, то весь пайплайн будет провален.
Строка 255: Строка 261:
         - ./scriptfile.sh         - ./scriptfile.sh
 </code> </code>
-Если скрипт что-то создал в каталоге, то можно это не удалять, т. к. пайплайн запускается каждый раз по новой и не использует старого окружения.+Если скрипт что-то создал в каталоге на раннере, то можно это не удалять, т. к. пайплайн запускается каждый раз по новой и не использует старого окружения.
  
 ==== only/except ==== ==== only/except ====
Строка 300: Строка 306:
  
 ==== Использование в Dockerfile образов из локального реестра образов ==== ==== Использование в Dockerfile образов из локального реестра образов ====
-В пайплайне нужно добавить ''--build-arg CI_REGISTRY_IMAGE=${CI_REGISTRY_IMAGE}'' в команду сборки.+В пайплайне нужно добавить ''%%--build-arg CI_REGISTRY_IMAGE=${CI_REGISTRY_IMAGE}%%'' в команду сборки.
  
 <code yaml> <code yaml>
Строка 361: Строка 367:
 {{:service:pasted:20230530-081539.png}} {{:service:pasted:20230530-081539.png}}
  
-Почистить кэш можно кнопкой "Clear runner caches" в CI/CD -> Pipelines. "Почистить" в этом случае значит просто не использовать кэшв следующих запусках пайплайна, физически кэш не удаляется. [[https://docs.gitlab.com/ee/ci/caching/#where-the-caches-are-stored|Где хранится кэш]]?+Почистить кэш можно кнопкой "Clear runner caches" в CI/CD -> Pipelines. "Почистить" в этом случае значит просто не использовать кэш в следующих запусках пайплайна, физически кэш не удаляется. [[https://docs.gitlab.com/ee/ci/caching/#where-the-caches-are-stored|Где хранится кэш]]?
  
 [[https://docs.gitlab.com/ee/ci/caching/|Справка по кэшу]] [[https://docs.gitlab.com/ee/ci/caching/|Справка по кэшу]]
Строка 404: Строка 410:
 </code> </code>
  
-Вышеприведённый вариант с Докером неудобен, т. к. контейнер не заменяется, и при повторном запуске пайпдайна будет ошибка, т. к. порт занят. Эту проблему решает docker-compose.+Вышеприведённый вариант с Докером неудобен, т. к. контейнер не заменяется, и при повторном запуске пайплайна будет ошибка, т. к. порт занят. Эту проблему решает docker-compose.
 <code yaml> <code yaml>
 deploy_to_dev: deploy_to_dev:
Строка 1024: Строка 1030:
 </code> </code>
 Решение: не раннере удалить всё в каталоге ''/home/gitlab-runner''. Решение: не раннере удалить всё в каталоге ''/home/gitlab-runner''.
 +===== Безопасность =====
 +Shifting Security Left - GitLab DevSecOps Overview: https://www.youtube.com/watch?v=XnYstHObqlA\\
 +
 +Гитлаб предлагает сканеры безопасности:
 +  * [[https://docs.gitlab.com/ee/user/application_security/sast/|Static Application Security Testing]] (SAST) - обнаружение проблем в самом исходном коде, например, пользовательский ввод позволяет выполнить инъекцию команды. [[https://www.youtube.com/watch?v=8sOjvlkl8QY|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/secret_detection/|Secret Detection]] - обнаружение вбитых паролей в исходном коде. [[https://www.youtube.com/watch?v=W2tjcQreDwQ|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/dast/|Dynamic Application Security Testing]] (DAST) - сканирование на уязвимости через вызов приложения или API. [[https://www.youtube.com/watch?v=ywme200L7LU|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/iac_scanning/|Infrastructure-as-Code (IaC) Scanning]] - сканирование IaC-файлов (Ansible, Terraform) на уязвимости.
 +  * [[https://docs.gitlab.com/ee/user/application_security/dependency_scanning/|Dependency Scanning]] - отчёт по уязвимостям зависимостей проекта по их версиям. [[https://www.youtube.com/watch?v=39RvTMLDszc|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/container_scanning/|Container Scanning]] - сканирование докер-образов на уязвимости. [[https://www.youtube.com/watch?v=C0jn2eN5MAs|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/api_fuzzing/|Fuzz Testing]] - шлёт на вход функций всякую ерунду на предмет неожиданных глюков. [[https://www.youtube.com/watch?v=oUHsfvLGhDk|Демо]]
 +
 +Отчёты / управление:
 +  * [[https://docs.gitlab.com/ee/user/application_security/security_dashboard/|Security Reports]] - сводный отчёт по уязвимостям. [[https://www.youtube.com/watch?v=QHQHN4luNpc|Демо]]
 +  * [[https://docs.gitlab.com/ee/user/application_security/vulnerability_report/|Vulnerability Management]] [[https://www.youtube.com/watch?v=8SJHz6BCgXM|Демо]] 
 +  * [[https://docs.gitlab.com/ee/user/application_security/policies/|Policies]] [[https://www.youtube.com/watch?v=IZbCIKXz-wM|Демо]] 
 +
 +
 ===== Прочее ===== ===== Прочее =====
 +
 +
 ==== Тестовый проект Gitlab from zero to hero ==== ==== Тестовый проект Gitlab from zero to hero ====
 https://gitlab.com/nanuchi/mynodeapp-cicd-project https://gitlab.com/nanuchi/mynodeapp-cicd-project
service/gitlab.1717139891.txt.gz · Последнее изменение: 30.07.2024 19:20 (внешнее изменение)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki