Неопределенный метод загрузки apk с Fastlane - PullRequest
0 голосов
/ 29 мая 2019

Я получаю сообщение об ошибке при развертывании / загрузке сервера gitlab ci apk в Fabric с помощью Fastlane.Странно то, что это работает, если я запускаю задачу из моего локального.Fastlane является одинаковой версией в обоих случаях 2.123.0.

Метод задачи, которая не выполняется:

31 desc "Generate QA release notes"
32 private_lane :qa_release_notes do 
33 commit = last_git_commit 
34 short_hash = commit[:abbreviated_commit_hash] 
35 author = commit[:author] 
36 message = commit[:message] 
37 "Release notes of commit " + short_hash + " by " + author +":\n " + message 
38 end

И ошибка, напечатанная в журнале ci:

[15:43:34]: Error in your Fastfile at line 34
[15:43:34]: 32:  private_lane :qa_release_notes do
[15:43:34]: 33:  commit = last_git_commit
[15:43:34]: => 34:   short_hash = commit[:abbreviated_commit_hash]
[15:43:34]: 35:  author = commit[:author]
[15:43:34]: 36:  message = commit[:message]

(...)

Fastfile:34:in block (2 levels) in parsing_binding': [!] undefined method []' for nil:NilClass (NoMethodError)
    from /var/lib/gems/2.3.0/gems/fastlane-2.123.0/fastlane/lib/fastlane/lane.rb:33:in `call'

Кажется, проблема в методе commit[:abbreviated_commit_hash] Но я не знаю, в чем проблема ... Есть идеи?

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Я думаю, что сообщение об ошибке говорит вам, что commit = last_git_commit на самом деле не установил commit на что-либо, поэтому использование [...] на нем поднимает [!] undefined method []' for nil:NilClass (NoMethodError).

Вы можете попробовать отладить, простовывод commit между строками 33 и 34: puts(commit).Запуск переулка с --verbose может также дать дополнительный, надеюсь, полезный вывод, чтобы понять, что происходит.

Код, выполняемый в фоновом режиме, на самом деле https://github.com/fastlane/fastlane/blob/4c468b9873f9a2bd68e8ef21b2502d32f2024d32/fastlane/lib/fastlane/helper/git_helper.rb#L53-L74,, но я не вижуочевидный способ, почему это не сработает на gitlab CI.

0 голосов
/ 30 мая 2019

Ошибка состояла в том, что last_git_commit получал пустой результат (как @janpio сказал здесь ), потому что по какой-то причине git отсутствовал в образе Docker.

...