#git #jenkins #gitlab #gitlab-ci #gitlab-ci-runner
#git #дженкинс #gitlab #gitlab-ci #gitlab-ci-runner
Вопрос:
Мое требование — извлечь список SQL-скриптов (.sql-файлов) из репозитория git, которые недавно были переданы в репозиторий, и запустить их в базе данных (Oracle) через SQLPLUS через Jenkins или GitLab CI / CD runner. У меня есть Gitlab в качестве контроля версий. Хотя я знаю, что мы можем использовать расширение SQLPLUS в Jenkins, но я не уверен, как я могу получить список зафиксированных SQL-файлов из репозитория Gitlab или как я могу добиться этого в Gitlab CI / CD runner. Может ли кто-нибудь помочь мне с примерами сценариев оболочки, которые могут этого достичь?
Я искал его в Google, но не смог найти никакого определенного ответа.
Спасибо
Ответ №1:
Я бы рекомендовал использовать Gitlab CI/CD
runner вместо Jenkins, потому что:
- Это даст вам доступ к среде по вашему выбору через образ docker.
- Он хорошо интегрирован с GitLab.
- Вам не придется
git clone
использовать свой проект.
Это пример .gitlab-ci.yml
того, как начать:
image: debian:latest
variables:
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://docker:2375
services:
- docker:dind
stages:
- migrate
migrate:
stage: migrate
script:
- find . -type f -name '*.sql'
only:
- master # or tags
tags:
- docker
Я использую
docker:dind
сервис, потому что мой gitlab ci runner — это контейнер docker, который может запускать docker в своем контейнере docker (dind = docker в docker). Это не является обязательным требованием.
Я бы также посоветовал использовать соответствующие инструменты миграции базы данных. (Например, flyway для вашей Java и т. Д.)