Я хочу создать небольшой рецепт Capistrano для развертывания версии сайтов, управляемой в Git.
В дополнение к некоторым другим вещам, над которыми я работаю над добавлением, моя первая задача - пометить текущую версию текущей датой... и когда этот тег уже существует (например, несколько выпусков за день), добавьте письмо.
Я написал некоторый рабочий код, и я протестировал его в своем production.rb(используя многоступенчатый в capistrano-ext)... но я должен думать, что мог бы написать это лучше. Во-первых, существует огромное количество повторений в фактической проверке существования тега. Однако, независимо от того, какой порядок я перемещаю, это единственная конфигурация, которая дает результаты.
Любые идеи? Спасибо заранее.
before 'deploy' do
# Tag name is build_YYYYMMDD
tag_name = "build_#{Time.now.strftime('%Y%m%d')}"
check_tag = `git tag -l #{tag_name}`
# If the tag exists, being appending letter suffix
if not check_tag.empty?
suffix = 'a'
check_tag = `git tag -l #{tag_name}#{suffix}`
while not check_tag.empty? do
suffix.next!
check_tag = `git tag -l #{tag_name}#{suffix}`
end
tag_name = "#{tag_name}#{suffix}"
end
# Tag with computed tag name
p "Tagging #{tag_name}" # TODO How to output via Capistrano?
system "git tag #{tag_name}"
# Push tags to origin remote
p "Pushing tag to origin" # TODO How to output via Capistrano?
system "git push origin master --tags"
end