Как проверить gitlab-ci.yml?

Я, наконец, сумел заставить его работать, чтобы при нажатии на задание на ветку запускалось, но я продолжаю ждать, пока он запустится около 3 минут, а затем у меня появятся ошибки, которые мне нужно исправить, а затем снова зафиксировать, а затем ожидание снова. Как я могу просто передать ssh этому публичному бегуну и проверить.gitlab-ci.yml "script" часть только в bash?

Ответ 1

Вы можете запускать сборки локально (если вы управляете бегуном, который есть), используя gitlab-runner exec как описано в официальных документах здесь.

Убедитесь, что вы также проверяете ограничения тестовых заданий таким образом.

Ответ 2

Установите gitlab-runner

OS=darwin
#OS=linux # Uncomment on linux
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-${OS}-amd64
sudo chmod +x /usr/local/bin/gitlab-runner

Официальные документы gitlab-runner здесь

Создать команду

Следующий .gitlab-ci.yml определяет задачу с именем build:

build:
  script:
    - echo "Hello World"

Запустите команду локально (применяются ограничения!)

gitlab-runner exec shell build

Когда я запускаю вышеупомянутое локально, я получаю следующий вывод:

Running with gitlab-runner 11.3.1~beta.4.g0aa5179e (0aa5179e)
Using Shell executor...
Running on cory-klein.local...
Cloning repository...
Cloning into '/Users/coryklein/code/prometheus-redis-exporter/builds/0/project-0'...
done.
Checking out 66fff899 as master...
Skipping Git submodules setup
$ echo "Hello World"
Hello World
Job succeeded

Ответ 3

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

enter image description here

В зависимости от того, какую IDE вы используете, вы можете найти плагины, которые проверяют правильность. Например, в VS Code вы можете использовать плагин gitlab-vscode-extension, который может проверять ваш файл .gitlab-ci.yml.

Ответ 4

Правильный ответ заключается в том, что вы не можете протестировать свой конвейер сборки, не передавая исходный код в ваш репозиторий. Вы можете проверить только одно задание - скорее всего, первое задание - вашего конвейера сборки с помощью gitlab-runner exec.

Поскольку вы не можете запускать несколько заданий, вы не можете связать какие-либо шаги подготовки или сборки ни с чем другим. Невозможно остановить gitlab-runner от создания чистой проверки и уничтожить шаги подготовки/сборки.

Лучшим/единственным способом тестирования является создание ветки и сохранение силы нажатия на.gitlab-ci.yml.