Как сделать (где найти) скрипты для GitLab CI для запуска страниц GitLab? - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу развернуть статическую страницу, используя репозитории GitLab с простым HTML / CSS (на самом деле SCSS).Насколько я понял, статической странице нужна папка как минимум .gitlab-ci.yml и /public.Файл .gitlab-ci.yml будет иметь минимальное требование, подобное этому: ( пример из официального документа )

pages:
  stage: deploy
  script:
    - mkdir .public
    - cp -r * .public
    - mv .public public
  artifacts:
    paths:
      - public
  only:
    - master

И мой вопрос лежит в строке script.
(Я предполагаю, что приведенный ниже скрипт создаст имя скрытой папки .public и скопирует весь файл в нем, а затем переместит его из .public в публичную папку. Пожалуйста, исправьте меня, если я ошибаюсь.)

  script:
    - mkdir .public
    - cp -r * .public
    - mv .public public

Для меня это похоже на shell-скрипт Linux.В GitLab doc также подтверждается, что он управляется Runner.Но проблема в том, как узнать, сколько shell-скриптов установлено в GitLab?И можно ли сделать один?

Я бы хотел сделать 2 папки: src и public.GitLab CI запустит скрипт и скомпилирует SCSS из src, затем переместит его в public.

Кстати, я использую gitlab.com .

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Итак, несколько вещей для рассмотрения.Каждое задание в gitlab запускается в контейнере.Обычно вы указываете, какой вы хотите использовать.Pages - это особый случай, поэтому вам не нужно заботиться об изображении контейнера.

Задание pages заполнит вашу общую папку.Но вы можете изменить файл gitlab-ci.yml и добавить шаги.

Это создаст приложение с использованием узла:

build_stuff:
 stage: build
 image: node:11
 before_script:
 - npm install
 script:
 - npm run build
artifacts:
  paths:
 - build

pages:
  stage: deploy
  script:
    - mkdir .public
    - cp -r build/ .public
    - mv .public public
  artifacts:
    paths:
      - public
  only:
    - master

Форматирование выключено

Вещи, чтобы отметить.Первым шагом является выполнение шагов сборки, чтобы сгенерировать все ресурсы для вашей выходной папки.Затем он сохраняет все, что объявлено в блоке артефактов, в данном случае папку сборки, и передает его следующему заданию.Отрегулируйте этот шаг в соответствии с тем, что вам нужно для создания приложения.

Единственное, что я изменил на втором шаге, это то, что вы копируете содержимое папки сборки, а не весь репозиторий, в папку .public.Настройте это также в соответствии со своими потребностями.

Что касается сценариев оболочки, то здесь нет ни одного, кроме тех, которые вы приносите в хранилище.Бегун по умолчанию поддерживает Bash, поэтому вы можете выполнять команды bash так же, как и в своем терминале.

Если вы создадите файл foo.sh в своем репо и выполните bash foo.sh, он выполнит сценарий, если он исполняемый,Не забудьте chmod, прежде чем нажимать его.

0 голосов
/ 27 декабря 2018

В Gitlab не установлены "shell-скрипты".Gitlab поддерживает несколько оболочек , а часть скрипта в вашем примере - это просто команды bash.Поскольку вы, скорее всего, используете докер по умолчанию, вы можете выполнять команды bash из части скрипта, запускать скрипты на других языках, которые есть в вашем репо, устанавливать пакеты в контейнере докера и даже готовить и запускать ваши собственные образы докера.

...