Я пытаюсь установить свои зависимости в свой сценарий рабочего процесса. Однако некоторые из них являются частными модулями, и когда я пытаюсь сделать bundle exec pod install
, я получаю эту ошибку:
Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs`
Cloning spec repo `keterauk` from `https://github.com/KeteraUK/Strive-Pod-Specs`
[!] Unable to add a source with url `https://github.com/KeteraUK/Strive-Pod-Specs` named `keterauk`.
You can try adding it manually in `/Users/runner/.cocoapods/repos` or via `pod repo add`.
##[error]Process completed with exit code 1.
pod repo add...
приводит к следующей ошибке: fatal: could not read Username for 'https://github.com': Device not configured
даже если у меня добавлен личный токен доступа (секрет).
Вот мой полный сценарий:
name: Swift
on:
push:
branches:
- master
- enhancement/*
- develop
- develop/*
- release
- release/*
jobs:
test:
name: Test
runs-on: macOS-latest
strategy:
matrix:
destination: ['platform=iOS Simulator,OS=13.3,name=iPhone 11']
xcode: ['/Applications/Xcode_11.6.app/Contents/Developer']
steps:
- name: Checkout
uses: actions/[email protected]
with:
token: ${{ secrets.STRIVE_ACTIONS_SECRET }} # PAT
- name: Bundle Update
run: gem install bundler:1.17.2
- name: Bundle Install
run: bundle install
# Currently fails here...
- name: Specs Repo
run: pod repo add Strive-Pod-Specs https://github.com/KeteraUK/Strive-Pod-Specs.git
- name: Dependencies
run: bundle exec pod install
env:
DEVELOPER_DIR: ${{ matrix.xcode }}
- name: Build and test
run: bundle exec fastlane scan --destination "${destination}" --scheme "CI"
env:
destination: ${{ matrix.destination }}
DEVELOPER_DIR: ${{ matrix.xcode }}
Как я могу установить частные модули с моим сценарием действий GitHub для рабочего процесса?
Примечание: я также пытаюсь сделать это через организацию.
Вам просто не хватает имени пользователя / пароля в URL-адресе команды добавления репозитория модуля. Я привел примеры рабочих процессов и успешный запуск рабочего процесса, чтобы вы могли убедиться, что он работает. — person Luke97 schedule 02.09.2020
Первое, что я хотел бы попробовать, это обновить actions/checkout
до v2
. Со времени v1
было внесено много улучшений, и некоторые из них были связаны с сохранением учетных данных, чтобы на дальнейших этапах было проще использовать команды git. — person Luke97 schedule 07.09.2020
Вы не указали токен API в команде
pod repo add https://github...
, и, скорее всего, он не работает из-за этого. Добавьте свой личный токен API в URL-адрес github, например<token>@github.com
. Вы можете использоватьsecrets
иenv
, чтобы сделать то же самое.Скорее всего, следующее поможет устранить возникшую ошибку:
Измененные строки:
Убедитесь, что вы определили секретный POD_GITHUB_API_TOKEN с вашим личным токеном доступа.
Привет, @manishg, у меня есть эта строка в моем источнике подфайла «github.com {private podspec url}». при попытке установить pod. после добавления pod repo он продолжает работать с фатальной ошибкой: не удалось прочитать имя пользователя для github.com: устройство не настроено — person Luke97; 08.01.2021
Ошибка говорит о том, что
git
требуется ваша аутентификация или авторизация. Так что у вас есть несколько вариантов для этого.Первый и наиболее рекомендуемый вариант — использовать
SSH
вместоHTTPS
. Таким образом, машина будет использовать ключ автоматически и не будет запрашивать имя пользователя. и пароль каждый раз. Таким образом, URL-адрес будет иметь вид:ssh://<user>@github.com/KeteraUK/Strive-Pod-Specs.git
Второй вариант — жестко запрограммировать имя пользователя и пароль git. Это НЕ рекомендуется и очень небезопасно. (Но все же вариант) Прочтите этот документ для получения более подробного описания Таким образом, URL-адрес будет похож на
https://<user:pass>@github.com/KeteraUK/Strive-Pod-Specs.git
Другой вариант — установить вспомогательное приложение, которое вводит пароль в процессе. Возможно, он уже настроен, но
git
может просто не найти его. На приведенной выше странице документа также есть информация об этой опции. Вы можете кэшировать его глобально с помощьюgit config --global credential.helper cache
или постоянно хранитьgit config credential.helper store
Вам нужно добавить имя пользователя и токен в репозиторий модуля. Проверьте настройку ниже с примерами
Пример рабочего процесса с успешным запуском
Пример кода рабочего процесса
ПРИМЕЧАНИЕ. В этом примере я сделал ColorMatchTabs частным репо, чтобы я мог настроить для этого конвейер. Дайте мне знать, если у вас возникнут дополнительные вопросы, но я думаю, что этого вполне достаточно для вашего вопроса
, которая вас заботит о
Кроме того, вам не нужно создавать переменные env для всех ваших секретов. Вы можете просто использовать их прямо во время бега. Единственная причина добавить их в env — это действия или команды, которые захватывают их прямо из envs.