Построение рабочего процесса с помощью автоматизированных сборок - PullRequest
0 голосов
/ 17 октября 2018

У меня есть вопрос о рабочем процессе с docker и gitlab-ci или об автоматических сборках вообще.

Вот как я представляю, как должна выглядеть сборка ↓.
this i what i want

Как это сделать с помощью gitlab-ci?
Я знаю, как выполнить одну из этих задач, но не знаю, как это сделать.
Вмое воображение, мне нужно больше, чем одно базовое изображение.

Может быть, я неправильно понимаю, что такое дыра.
Как этот процесс должен быть выполнен в целом?

Thxчетыре твоя помощь ?

1 Ответ

0 голосов
/ 26 октября 2018

Поскольку ваш вопрос очень общий, я отвечу на него примером.

Рассмотрим воображаемый проект C ++, который содержит код, Makefile , который создает исполняемое приложение "app"и этот Dockerfile:

FROM ubuntu:16.04
ADD ./app /app
CMD ["/app"]

Чтобы построить приложение и образ докера, как вы сказали, вы можете использовать конфигурацию GitLab CI, например:

stages:
  - test
  - build
  - docker

test:
  stage: test
  script:
    - make test

build:
  stage: build
  script:
    - make
  artifacts:
    paths:
      - ./app

docker:
  stage: docker
  dependencies:
    - build
  script:
    - docker build -t your-repo/image-name:latest .
    - docker push your-repo/image-name:latest

Объяснение

Этот файл CI создает три задания: " test ", " build " и " docker ".«test» запускает «make test» для выполнения любых воображаемых тестов, которые может иметь наша кодовая база.Если это удастся, исполнитель GitLab выполнит следующее задание, «build».

«build» создает приложение, вызывая «make».Мы ожидаем, что make создаст файл "app" в текущем каталоге, который является нашим скомпилированным приложением, которое будет работать в контейнере.В разделе «Артефакты» указано, что мы хотим сохранить этот результирующий файл, поскольку он нам нужен для следующего задания.

В следующем задании «Докер» есть раздел «Зависимости»;в этом разделе мы утверждаем, что эта работа зависит от вывода задания под названием «сборка», которое ранее создавало наш файл «приложение».Затем мы сначала создаем образ докера, используя docker build и проталкиваем его как обычно.


Как уже было сказано, это всего лишь примеры, особенно сценарий разделы будут сильно различаться в зависимости от ваших проектов и конфигурации вашего бегуна.См. официальную документацию CI для всех возможностей.

...