Могу ли я выполнить развертывание с помощью Capistrano без SCM?

#ruby-on-rails #ruby #git #capistrano #capistrano3

#ruby-on-rails #ruby #git #capistrano #capistrano3

Вопрос:

Конфигурационный файл Capistrano содержит конфигурацию

установите:scm,:git и :repo_url и:branch

Могу ли я выполнить развертывание с помощью Capistrano без scm?

 set :scm, :none            
set :repository,  "."       
  

В чем преимущество конфигурации scm при развертывании Capistrano?

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

1. почему вы хотите это сделать? Лично я никогда бы не захотел написать ни одной строки кода без scm…

2. scm — это хорошо, но я имею в виду, почему я должен настраивать scm в capistrano? Capistrano будет развертывать код с github вместо локального компьютера?

3. @joni Одна из причин, которую я имею в виду, заключается в том, что capistrano извлекает «голый» исходный код из vcs, что означает, что все задачи сборки должны выполняться на каждом сервере. Для некоторых задач (например, создания ресурсов или загрузки зависимостей) это не требуется. Вы также можете использовать этап автоматической сборки для создания архива, который затем используется всеми серверами.

Ответ №1:

С Capistrano 2 вы могли бы это сделать. С Capistrano 3 вы не можете.

Один из приемов, который вы можете сделать, это разместить репозиторий Git на том же сервере, на котором размещено приложение, поскольку «разместить» репозиторий означает просто иметь файлы репозитория где-нибудь в каталоге. Вы можете отправлять туда обновления со своего локального компьютера через SSH, а для Capistrano URL-адрес репозитория будет просто путем к репозиторию на сервере.

Вам не нужна сторонняя служба для размещения репозиториев, и вам также не нужно никакого специального серверного программного обеспечения.

Что касается преимуществ наличия кода под управлением версиями — их слишком много, поэтому все его используют, поэтому разработчики Capistrano даже не утруждают себя поддержкой развертывания без SCM.

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

1. «именно поэтому все его используют» — конечно, я использую его, но только до процесса сборки, который является частью нашего конвейера CI. Например, задача сборки запускает webpack, а затем мы хотим выполнить развертывание на другой машине. Чем здесь полезен scm? Я не понимаю смысла Capistrano

Ответ №2:

Ответ №3:

Во-первых, нет

Capistrano должен работать с scm.

создайте учетную запись на github или bitbucket и загрузите свой код. Что для вас еще важнее. Затем настройте capistrano для загрузки кода из этого репозитория.

Ответ №4:

Это может быть полезно, например, для статических сайтов, созданных с помощью чего-то вроде jekyll / middleman / nanoc и т. Д. Эти инструменты обычно генерируют код для загрузки в какой-то каталог «сборки», который не включен в репозиторий, есть только исходные файлы. Итак, в этом случае вы можете использовать Capistrano с scm = none и репозиторием = «./build».

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

1. К сожалению, эта возможность была потеряна в Capistrano 3.