Схема Carthage Building приводит к тайм-ауту Bitrise через 90 минут

Я использую Bitrise, и я обновил свою машину для разработки и стек bitrise до Xcode 11.

При запуске сборки зависимости Carthage необходимо регенерировать, и, поскольку я использую зависимости AWS, даже в моем Mac book pro, их сборка занимает много времени, и из-за них время сборки Bitrise истекает.

Вот пример того, как настроен мой bitrise.yml:

...
workflows:
  test:
    steps:
    - gitlab-status:
        run_if: not (enveq "BITRISE_GIT_COMMIT" "")
        inputs:
        - private_token: "$GITLAB_STATUS_TOKEN"
        - preset_status: running
        - api_base_url: https://gitlab.company.cloud/api/v4
    - activate-ssh-key:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone: {}
    - cache-pull:
        inputs:
        - is_debug_mode: 'true'
    - certificate-and-profile-installer: {}
    - carthage:
        inputs:
        - verbose_log: 'yes'
        - carthage_options: "--platform ios --no-use-binaries --cache-builds"
    - cocoapods-install: {}
    - xcode-test:
        inputs:
        - scheme: CompanyApp
        - project_path: CompanyApp.xcworkspace
        - simulator_device: iPhone 8
    - xcode-test:
        inputs:
        - project_path: CompanyApp.xcworkspace
        - simulator_device: iPhone 8
        - scheme: CompanyAppUITests
    - gitlab-status:
        run_if: not (enveq "BITRISE_GIT_COMMIT" "")
        inputs:
        - private_token: "$GITLAB_STATUS_TOKEN"
        - api_base_url: https://gitlab.company.cloud/api/v4
    - cache-push:
        is_always_run: true
        inputs:
        - is_debug_mode: 'true'
    - deploy-to-bitrise-io: {}
...

На всякий случай, это последние 2 строчки из лога сборки

*** Building scheme "AWSLogs" in AWSiOSSDKv2.xcodeproj
*** Building scheme "AWSMachineLearning" in AWSiOSSDKv2.xcodeproj

Любые идеи???


person Reimond Hill    schedule 22.10.2019    source источник
comment
Это полностью противоположно тому, как вы должны использовать Carthage, единственная причина, по которой все построено на фреймворках, — это не пересобирать его каждый раз, тогда попробуйте какао-бобы.   -  person Lu_    schedule 22.10.2019
comment
Да, я согласен с вами. Однако .gitignore не позволяет создавать фреймворки из Carthage. Я выбрал этот проект от другого разработчика. Как вы думаете, если я позволю им, у меня не будет этой проблемы?   -  person Reimond Hill    schedule 22.10.2019
comment
Я считаю, что в этом случае вы должны удалить это из gitignore и отправить библиотеки в репозиторий.   -  person Lu_    schedule 22.10.2019
comment
Отлично. большое спасибо, я собираюсь попробовать это   -  person Reimond Hill    schedule 22.10.2019
comment
@Lu_ После изменения моего .gitignore, чтобы он принял Carthge/Build, я сделал свою работу. Опубликовать как ответ!   -  person Reimond Hill    schedule 30.10.2019


Ответы (2)


Решение состоит в том, чтобы не пересобирать библиотеки в CI, после добавления их в репозиторий и пропуска части сборки в CI вы увидите значительное сокращение времени сборки.

person Lu_    schedule 31.10.2019

Попробуйте удалить --no-use-binaries.

Выбирая не использовать двоичные файлы, большие зависимости не могут предоставить вам предварительно скомпилированные двоичные файлы, чтобы значительно сократить время компиляции. Если вы уберете этот флаг, то заметите, что компиляция ускорилась.

person M3nd3z    schedule 03.06.2020