Этот учебник предназначен для базового использования gitlab и конвейеров, он поможет вам создать небольшой рабочий процесс для тестирования и сборки вашего приложения (в этом случае мы будем использовать реакцию и nodejs). Основная цель этого руководства — воспользоваться функциями, которые gitlab предоставляет разработчикам.

Итак, давайте начнем с этого небольшого примера, для этого вам понадобятся nodejs и npm, установленные на вашем компьютере.

Сначала давайте создадим наше приложение, используя create-react-app:

create-react-app будет отвечать за установку всех зависимостей в целях тестирования.

После создания приложения давайте напишем небольшой тест для приложения:

import React from "react";
import renderer from "react-test-renderer";
import App from "./App";

describe("App match snapshot", () => {
  test("snapshot renders", () => {
    const component = renderer.create(<App />);
    let tree = component.toJSON();
    expect(tree).toMatchSnapshot();
  });
});

Как только мы создадим наш небольшой тест, нам нужно создать файл yml для записи нашего потока, давайте создадим этот файл и определим наши этапы конвейера:

Сначала нам нужно перейти в корневую папку и создать файл, вы можете назвать файл будет имя: .gitlab-ci.yml

В файле .gitlab-ci.yml вы настраиваете, что CI делает с вашим проектом. Он живет в корне вашего репозитория.

image: node:latest

stages:
  - build
  - test

cache:
  paths:
    - node_modules/

install_dependencies:
  stage: build
  script:
    - npm install
  artifacts:
    paths:
      - node_modules/

testing_testing:
  stage: test
  script: npm test

  artifacts:
    paths:
      - ./

Теперь, что делают эти строки?
Итак, в части этапы мы определяем, что будет делать наш конвейер. Там будет 2 шага: сначала создайте наше приложение, а затем затем запустите наш тест

install_dependencies: это наш первый этап, здесь мы собираемся запустить npm install, чтобы создать и добавить все зависимости, которые потребности приложения.

testing_testing: это наш второй и последний этап, здесь мы собираемся запустить все тесты, которые находятся в корневой папке.

кэш: будет хранить зависимости нашего проекта.

артефактыиспользуются для результатов этапов, которые будут передаваться между этапами.

Затем при любой отправке в ваш репозиторий GitLab будет искать файл .gitlab-ci.yml и запускать задания на Runners в соответствии с содержимым файла для этого коммита.

Поскольку .gitlab-ci.yml находится в репозитории и контролируется версиями, старые версии по-прежнему успешно создаются, форки могут легко использовать CI, ветки могут иметь разные конвейеры и задания, и у вас есть единый источник достоверной информации для CI.

Вот и все, здесь мы создаем небольшой поток CI/CD для нашего репозитория и приложения.

Дополнительная информация: https://docs.gitlab.com/ee/ci/README.html

Следите за нами в Twitter🐦и Facebook👥и присоединяйтесь к нашей Группе Facebook💬.

Чтобы присоединиться к нашему сообществу Slack🗣️ и читать наши еженедельные темы о фавнах🗞️, нажмите здесь⬇

Если этот пост был полезен, пожалуйста, нажмите кнопку аплодисментов 👏 несколько раз, чтобы выразить свою поддержку автору! ⬇