среда, 15 апреля 2026 г.

gitlab-runner on macos

 Интересная задачка - настроить систему сборки через gitlab-runner под macos.

1. Подготовка (штатно работаем в консоли, от своего юзера, НЕ от рута):

sudo mkdir -m 0777 /usr/local/bin/

2. Качаем раннер:

sudo curl --output /usr/local/bin/gitlab-runner \

  "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-darwin-arm64"

(для М*) (дока)

и ставим бит выполнения

sudo chmod +x /usr/local/bin/gitlab-runner

3. Для запуска нужен user: On macOS, GitLab Runner runs as a user-mode LaunchAgent, not as a system-level LaunchDaemon. This is the only supported mode.

(дока)

Заводим:

sudo sysadminctl -addUser gitlab-runner -shell /bin/bash

Момент: если делать как в линуксе - там ставится признак system и UID добавляется начиная с 999 и вниз, как тут - опции такой не было найдено, но можно явно задать -UID 400 например.

Теперь переключаемся под него:

sudo -u gitlab-runner -i

4. Настройка как сервис

gitlab-runner install

(если запустить команду от рута, то будет ошибка FATAL: Please specify user that will run gitlab-runner service)

gitlab-runner start

И заводим раннер в гитлабе, готовим токен и потом

gitlab-runner register

Всё, проверяем.

gitlab-runner list

При необходимости, настраиваем фаервол (pfctl -s all и далее по докам)


Вариант 2: используя homebrew.

1. Ставим brew (не работает от рута, используйте своего юзера)

/bin/bash -c "$(curl "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh")"

Если теперь поставить раннер, то он поставится под текущим юзером, но может иметь смысл добавить выделенного как в линуксах - описано выше, п.3

Переключаемся в юзера gitlab-runner и ставим (brew ставится системно, отдельно ставить не нужно)

2. brew install gitlab-runner

3. Запуск

brew services start gitlab-runner

В ответе должно быть

==> Successfully started `gitlab-runner` (label: homebrew.mxcl.gitlab-runner)


Немного про размещения файлов.

Если запустить gitlab-runner register от рута, то конфиг будет в /etc/gitlab-runner/config.toml . Если запустить от гитлаб юзера то в /Users/gitlab-runner/.gitlab-runner/config.toml

Комментариев нет:

Отправить комментарий