С момента покупки GitHub майкрософтом, на сайте появилось много полезных сервисов. Один из них - GitHub Actions. Сервис предоставляет набор функций для CI/CD. Дает возможность собирать проекты, запускать тесты и выполнять развертывание приложения.

GitHub дает возможность выполнять сборку как на внутренних серверах так и добавлять собственные и проводить сборку на них.

Ниже издложена инструкция по добавлению Docker droplet с Digital Ocean в качестве ранера к существующему проекту:

  1. После создания дроплета Docker 5:19.03.1~3 on 18.04 заходим на него через ssh
  2. Первое, что нужно сделать - добавить пользователя, так как GitHub Runner не позволяет запустить агент от root
    $ adduser github
    
  3. Вводим пароль и заполняем информацию о пользователе или можно оставить ее пустой
  4. Добавляем пользователя в группы sudo и docker
    $ adduser github sudo
    $ sudo usermod -aG docker github
    $ newgrp docker
    
  5. Логинимся только что созданным пользователем
    $ sudo su - github
    
  6. Скачиваем и устанавливаем ранер, как указанно в инструкции Settings -> Actions -> Add runner. Имя ранера и рабочей директории можно оставить со значениями по умолчанию.
  7. Чтобы запустить ранер как сервис, останавливаем текущий скрипт Ctrl+C
  8. Устанавливаем сервиса ранера
    $ ./svc.sh install
    
  9. Запускаем ранер как сервис
    $ ./svc.sh start
    
  10. В workflow yaml файле меняем runs-on: ubuntu-latest на runs-on: self-hosted

result